Цикл, показывающий только последний элемент массива ActionScript3

#actionscript-3

#actionscript-3

Вопрос:

Это мой код ActionScript3, в котором я создал два текстовых поля и присвоил им текстовые форматы, а также два массива. Я хочу, чтобы значение массива находилось в новом текстовом поле при каждой итерации цикла for.Но он показывает только последнее значение элемента массива.Я думаю, что есть какая-то проблема с позицией y.Заранее спасибо.

 var heading:Array = ["Home","About","Services","Contact"];
var subheading:Array = ["MyData","AboutUs","ServicesProvided","ContactUS"];
var i:int = 0;
var j:int = 0;

var headformat:TextFormat = new TextFormat();
headformat.size = 20;
headformat.color = 0xFFFFFF;
headformat.align = TextFormatAlign.CENTER;

var subformat:TextFormat = new TextFormat();
subformat.size = 15;
subformat.color = 0x000000;
subformat.align = TextFormatAlign.CENTER;

var headtext:TextField = new TextField();
headtext.width = 200;
headtext.text
headtext.height = 50;
headtext.background = true;
headtext.defaultTextFormat = headformat;
headtext.backgroundColor = 0x0000FF;


var subtext:TextField = new TextField();
subtext.width = 200;
subtext.height = 50;
subtext.background = true;
subtext.backgroundColor = 0xCCCCCC;
subtext.defaultTextFormat = subformat;



for(i=0;i<heading.length;i  )
{
    headtext.text = heading[i];
    headtext.y = j;
    addChild(headtext);
    j = 60;
    subtext.text = subheading[i];
    subtext.y = j;
    addChild(subtext);
    j =60;
}
 

Ответ №1:

Проблема в том, что вы используете один и тот же экземпляр текстовых полей, просто помещаете создание текстовых полей в цикл, поэтому для каждой итерации он будет создавать еще один экземпляр текстового поля.

 var headtext:TextField;
var subtext:TextField;

    for(i=0;i<heading.length;i  )
    {
            headtext = new TextField();
            headtext.width = 200;
            headtext.text
            headtext.height = 50;
            headtext.background = true;
            headtext.defaultTextFormat = headformat;
            headtext.backgroundColor = 0x0000FF;


            subtext = new TextField();
            subtext.width = 200;
            subtext.height = 50;
            subtext.background = true;
            subtext.backgroundColor = 0xCCCCCC;
            subtext.defaultTextFormat = subformat;


            headtext.text = heading[i];
            headtext.y = j;
            addChild(headtext);
            j = 60;
            subtext.text = subheading[i];
            subtext.y = j;
            addChild(subtext);
            j =60;
    }