AS3动态变量命名

时间:2015-06-11 17:59:45

标签: actionscript-3 flash variables dynamic

动态变量是否可以在ActionScript 3中命名?

for (var xz=0;xz<10;xz++){
    var this['name' + xz]:Number = xz;
}

3 个答案:

答案 0 :(得分:0)

是的,确实是 - AS3来自ECMA脚本,因此这是为对象设置属性(在本例中为this)。所以你可以动态设置属性。但你对如何做到这一点有点不对 - 没有必要使用var,因为你没有声明它,你设置它。这就像使用:

this.propertyName = 'value';

从现在开始,thispropertyName等于'value'。因此,您应该使用:

this['name' + xz] = xz;

这就是全部!

编辑:正如BotMaster所提到的 - 如果您正在使用类并且想要动态添加属性,则必须将该类设置为动态。大多数常用的已经是动态的(正如Aaron提到的:))。 我没有详细介绍,因为我认为您只需在时间轴上执行此操作。如果没有 - 请在您的问题中指明这一点,以便您可以获得比此更准确的答案。如果你的新房产需要输入(不能想到任何想要这个的点),同样如此 - 你应该看到BotMaster的答案:)

答案 1 :(得分:0)

简短回答是:不,你不能在运行时输入属性声明。

答案很长:有点。

如果您想创建新的类型属性,则必须将它们存储在Vector&lt;&gt;中。

除了无类型,动态类,存储在对象中,存储在数组中等等,其他任何东西都可以让你这么做......

答案 2 :(得分:0)

您应该为这种变量列表使用数组。 虽然您可以动态创建属性,但通常需要避免它。特别是在您的情况下,每个变量的实际标识符不是String,而是数字。那么为什么不使用那样做的东西:用数字来识别它的元素呢?而这正是数组的作用。

代码示例:

var xzs:Array = [];
for (var xz:uint = 0; xz < 10; xz++){
    xzs.push(xz);
}
相关问题