动态变量是否可以在ActionScript 3中命名?
for (var xz=0;xz<10;xz++){
var this['name' + xz]:Number = xz;
}
答案 0 :(得分:0)
是的,确实是 - AS3来自ECMA脚本,因此这是为对象设置属性(在本例中为this
)。所以你可以动态设置属性。但你对如何做到这一点有点不对 - 没有必要使用var
,因为你没有声明它,你设置它。这就像使用:
this.propertyName = 'value';
从现在开始,this
将propertyName
等于'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);
}