AS3 动态变量命名

AS3 Dynamic variable naming

在 ActionScript 3 中可以这样命名动态变量吗?

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

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

this.propertyName = 'value';

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

this['name' + xz] = xz;

就这些了!

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

简短的回答是:不,您不能在运行时声明类型化属性。

长答案是:有点。

如果您想创建新类型的属性,您必须将它们存储在 Vector<> 中。

除未类型化、动态 class、存储在对象中、存储在数组中等之外,任何其他方式都可以让您这样做...

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

代码示例:

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