Flash Можете ли вы итеративно создавать уникальные переменные? - PullRequest
0 голосов
/ 09 июня 2011

Можете ли вы использовать

for(x:int=0; x<100; x++)
{
    var varname+x:Type = (x, something, something); 
}

, чтобы создать сотню уникальных переменных?По сути, мне нужно сделать 100 переменных, и мне интересно, как вы создаете 100 чанов, не прибегая к объявлению их всех вручную.проблема заключается в том, что var независимо от того, что + x просто создает переменную с любым значением + x, вместо того, чтобы создавать независимо от 0, от 1 до любого 99.если это поможет, то это для flash и box2d.

Спасибо, Андрей

1 Ответ

1 голос
/ 09 июня 2011

Да, попробуйте это:

var holder:Object = {};

var i:uint = 0;
for(i; i<100; i++)
{
    holder["varname"+i] = i*2;
}

trace(holder.varname34); //output: 68

Если вы создадите класс dynamic, тогда вы можете назначить ему новые свойства таким же образом, например:

package
{
    public dynamic class UniqueVarHolder extends Object
    {
        public function UniqueVarHolder()
        {
            var i:uint = 0;
            for(i; i<100; i++)
                this["myvariable"+i] = i*2;
        }
    }
}

Реализация:

var holder:UniqueVarHolder = new UniqueVarHolder();
trace(holder.myvariable10); //output: 20

Очевидно, что вы можете присвоить этим переменным все, что вам нравится.

Мне интересно, почему вы захотите сделать это, хотя вы можете просто создать Array дляхранить более 100 значений без присвоения их переменной.

...