ActionScript 3 - выкарыстоўваць TextField тэкст для цыклу

У мяне ёсць 5 дынамічных TextFields на сцэне. Яны маюць імёнаў асобнікаў txtField_1 , txtField_2 праз txt_Field_5 .

калі б я хацеў, каб адсачыць дадзеныя ў ім нешта такое я б напісаць:

trace(txtField_1.text);
trace(txtField_2.text);
.
.
.
trace(txtField_5.text);

што, калі я хацеў бы зрабіць гэта ў цыкле?

Я шукаю нешта накшталт:

for (i=1 ; i<=5 ; i++)
{
   trace(txtField_[i].text);
}
0

9 адказы

Вы можаце выкарыстоўваць гэта [ «имяПеременный»] сінтаксіс.

var fields:uint = 5;

for ( var i:uint = 1; i <= fields; i++ ) {
    trace( this[ "txtField_" + i ].text ); //you may need to cast as a TextField to avoid compiler errors
}

this["variableName"] is the same as accessing this.variableName, but it allows you to use a variable within the variable name.

2
дададзена

Вы можаце выкарыстоўваць гэта [ «имяПеременный»] сінтаксіс.

var fields:uint = 5;

for ( var i:uint = 1; i <= fields; i++ ) {
    trace( this[ "txtField_" + i ].text ); //you may need to cast as a TextField to avoid compiler errors
}

this["variableName"] is the same as accessing this.variableName, but it allows you to use a variable within the variable name.

2
дададзена

Вы можаце выкарыстоўваць гэта [ «имяПеременный»] сінтаксіс.

var fields:uint = 5;

for ( var i:uint = 1; i <= fields; i++ ) {
    trace( this[ "txtField_" + i ].text ); //you may need to cast as a TextField to avoid compiler errors
}

this["variableName"] is the same as accessing this.variableName, but it allows you to use a variable within the variable name.

2
дададзена

Вы можаце зрабіць гэта, калі вашы Тэкставыя поля знаходзяцца ў масіве.

var _textFields:Array = new Array();
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields[0].text = "text field 1 text";
_textFields[1].text = "text field 2 text";
_textFields[2].text = "text field 3 text";
_textFields[3].text = "text field 4 text";
_textFields[4].text = "text field 5 text";

тады:

for (var loop:uint=0;loop<_textFields.length;loop++) {
    trace(_textFields[loop].text);
}
0
дададзена
@MiladGhattavi Вы маглі б ... Пакладзіце іх у масіў.
дададзена аўтар Marty, крыніца
на жаль TextFields знаходзяцца на стадыі, а не ў масіве. Вы прапануеце што-небудзь яшчэ?
дададзена аўтар Milad, крыніца

Вы можаце зрабіць гэта, калі вашы Тэкставыя поля знаходзяцца ў масіве.

var _textFields:Array = new Array();
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields[0].text = "text field 1 text";
_textFields[1].text = "text field 2 text";
_textFields[2].text = "text field 3 text";
_textFields[3].text = "text field 4 text";
_textFields[4].text = "text field 5 text";

тады:

for (var loop:uint=0;loop<_textFields.length;loop++) {
    trace(_textFields[loop].text);
}
0
дададзена
@MiladGhattavi Вы маглі б ... Пакладзіце іх у масіў.
дададзена аўтар Marty, крыніца
на жаль TextFields знаходзяцца на стадыі, а не ў масіве. Вы прапануеце што-небудзь яшчэ?
дададзена аўтар Milad, крыніца

Вы можаце зрабіць гэта, калі вашы Тэкставыя поля знаходзяцца ў масіве.

var _textFields:Array = new Array();
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields.push(new TextField());
_textFields[0].text = "text field 1 text";
_textFields[1].text = "text field 2 text";
_textFields[2].text = "text field 3 text";
_textFields[3].text = "text field 4 text";
_textFields[4].text = "text field 5 text";

тады:

for (var loop:uint=0;loop<_textFields.length;loop++) {
    trace(_textFields[loop].text);
}
0
дададзена
@MiladGhattavi Вы маглі б ... Пакладзіце іх у масіў.
дададзена аўтар Marty, крыніца
на жаль TextFields знаходзяцца на стадыі, а не ў масіве. Вы прапануеце што-небудзь яшчэ?
дададзена аўтар Milad, крыніца

Іншы падыход:

private function getTextFields():void{
    for(var i:uint = 0; i < stage.numChildren; i++){
        if(stage.getChildAt(i) is TextField){
           //Whatever needs to be done with the text. e.g. putting it to an array ;);
            trace(TextField(stage.getChildAt(i)).text;
        }
    }
}
0
дададзена

Іншы падыход:

private function getTextFields():void{
    for(var i:uint = 0; i < stage.numChildren; i++){
        if(stage.getChildAt(i) is TextField){
           //Whatever needs to be done with the text. e.g. putting it to an array ;);
            trace(TextField(stage.getChildAt(i)).text;
        }
    }
}
0
дададзена

Іншы падыход:

private function getTextFields():void{
    for(var i:uint = 0; i < stage.numChildren; i++){
        if(stage.getChildAt(i) is TextField){
           //Whatever needs to be done with the text. e.g. putting it to an array ;);
            trace(TextField(stage.getChildAt(i)).text;
        }
    }
}
0
дададзена