разделение значений и помещение его в текстовое поле в AS3 - PullRequest
0 голосов
/ 28 марта 2011

Я ввожу набор из 4 значений в одно текстовое поле и отображаю его разбитым способом в 4 других небольших текстовых полях, используя этот код:

array.push(Number(t1.text));
array.push(Number(t2.text));
array.push(Number(t3.text));
array.push(Number(t4.text));

b2.addEventListener(MouseEvent.CLICK, act2);
//ACTION OF THE THE FIRST BUTTON CLICK
function act1(event:MouseEvent):Array 
{
    var input:String = tt.text;
    array = input.split(" ");
    t1.text=array[0];
    t2.text=array[1];
    t3.text=array[2];
    t4.text=array[3];
}

Но теперь мне нужно знать, как сделать то же самое для любого введенного динамического значения.

Скажем, у меня есть текстовое поле tt1 и кнопка b1. Когда я ввожу любое значение (скажем, 6), создается это количество текстовых полей (6 новых текстовых полей с именами t0, t1 .... t5)

У меня есть еще одно текстовое поле tt2 и кнопка b2. Когда я ввожу в него набор значений (скажем, 10,66,33,45,2,4), мне нужно, чтобы эти значения отображались в этих текстовых полях t0, t1, t2 ..

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 28 марта 2011

Возможно:

b1.addEventListener(MouseEvent.CLICK, createTextFields);
b2.addEventListener(MouseEvent.CLICK, showValues);

var textFields:Array = [];

function createTextFields(event:MouseEvent):void
{
    var quantity:uint = uint(tt1.text);
    for (var i:int = 0; i < quantity; i++)
        textFields.push(createTextField(i));
}
function showValues(event:MouseEvent):void
{
    const SEPARATOR:String = " ";  // or "," or whatsoever
    var values:Array = tt2.text.split(SEPARATOR);
    for (var i:int = 0; i < values.length; i++)
        textFields[i].text = values[i];
}
function createTextField(i:int):TextField
{
    // create the text field and add it to the stage if you want
}

Я рекомендую проверить, является ли количество введенных значений числом только что созданных текстовых полей.

0 голосов
/ 28 марта 2011

Этот фрагмент создаст ваши текстовые поля

// this will hold our new textfields
var textfields:Array = new Array();

function handleCreateFields(e:Event):void {
    // assuming your textfield for the number of fields to be created 
    // is named tfNumfields
    var count:int = parseInt(tfNumfields.text);

    for( var i:int = 0; i < count; i++){
        var tf:TextField = new TextField();
        tf.x = 100;
        tf.y = 100 + i * 30;
        addChild(tf);
    }
}

Этот фрагмент разделит содержимое вашего текстового поля на несколько текстовых полей

function handleCreateFields(e:Event):void {
    // assuming your textfield for the values is named tfValues
    var values:Array = tfValues.split(" ");

    for( var i:int = 0; i < textfields.length && i < values.length; i++){
        textfields[i].text = values[i];
    }
}
...