变量的AS3对象表示法

时间:2011-12-03 13:59:47

标签: actionscript-3

我有一些格式的变量:

var like6Y:Number = 50;

后来我动态设置了一些:

num=6;

然后我尝试使用该num来获取变量like6Y:

 like+6+Y

我知道这是完全错误的,但我似乎记得你可以使用某种对象符号来实现这一点:

["like"+num+"Y"] 

或者那些东西。但我不记得怎么做了。 感谢

3 个答案:

答案 0 :(得分:6)

可以这样做 - 只需访问this["like"+num+"Y"]即可。假设like6num是当前对象的属性,否则只需将this更改为对象的名称。

答案 1 :(得分:2)

即使this["like" + num + "Y"]之类的内容适用于全局变量,数据类型ArrayVector (如果您知道所有值的类型相同,则使用Vector对于通过整数引用访问值的任务,将为其长度的每个索引分配一个值 built 。它们还提供了额外的好处,使您可以更好地控制变量的放置范围。

例如:

var likeY:Array = [-10, 0, 10, 20, 30, 40, 50];
var num:int = 6;
trace(likeY[num]); //prints 50

答案 2 :(得分:1)

在Javascript中,您可以使用window["like"+num+"Y"]eval("like"+num+"Y") ...但在AS3中没有其他选择。

如果您尝试访问当前类的public *属性,this["like"+num+"Y"]也可以正常工作。

但是有一些第三方库将eval方法带到了AS3。我从来没用过它,但你可以试试, [AS3中的评估:执行动态动作脚本的提示] [1] http://danielmclaren.com/node/113