Как: динамическое изменение имени var на AS3 - PullRequest
1 голос
/ 06 января 2011

Есть ли возможность динамического изменения названия vars AS3 с помощью flash? Я имею в виду, например, создать 10 переменных с одним корневым именем, например: myvar, а затем увеличить число, например myvar0, myvar1, myvar2 и так далее.

Я недавно добился этого в AS2 с помощью этого кода:

for (i = 0; i < 5; i++)
{
    var mc = _root.attachMovie("my_square", "my_square_"+i, i);
    mc._x = i * 50;
}

Но теперь я в AS3 и VAR нужно скопировать это:

var caja1:HTMLTextBlock = new HTMLTextBlock();

Как может генерируется в FOR, caja1, caja2, caja3 и sp.

Спасибо за любую помощь!

Ответы [ 2 ]

5 голосов
/ 06 января 2011

Эй, Доминго, У меня уже давно нет AS2, поэтому я не буду абсолютно уверен, что это то, что вы ищете, но я думаю, что это так.

var myObjects:Object = {};

for(var i:Number = 0; i<10; i++)
{
    myObjects["caja"+i]=new HTMLTextBlock();
    addChild(myObjects["caja"+i]); //if using Flex 4 containers use addElement(myObjects["caja"+i]);
    myObjects["caja"+i].x=i*50; //assuming here container has an absolute layout
}

То, что вы будете здесь делать, - это создание нового объекта с динамическими свойствами для разрешения свойства в AS3, который вы можете использовать (оператор точки) myObject.something или (ассоциативный массив?) MyObject ["что-то"] и будет работать так же.

1 голос
/ 06 января 2011

Я думаю, что очень простой и понятный способ добиться этого - создать массив.

var caja:Array = new Array();

for (i = 0; i < 5; i++)
{
    caja[i] = new HTMLTextBlock();
}

Просто помните, что первая запись в массиве начинается с 0, а не с 1 (т.е. caja [0]).

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...