Flash您可以迭代地创建唯一变量吗?

时间:2011-06-09 09:33:35

标签: flash variables iteration names

你能用

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

创建一百个唯一变量?基本上我需要制作100个变量,我想知道如何创建100个大桶,而不是手工宣布它们。问题是var无论什么+ x只是创建一个变量与任何+ x而不是创建whatever0,whatever1 ... to whatever99。 如果它有助于闪存和box2d。

谢谢,安德鲁

1 个答案:

答案 0 :(得分:1)

是的,试试这个:

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多个值而不将它们分配给变量。