我有一些格式的变量:
var like6Y:Number = 50;
后来我动态设置了一些:
num=6;
然后我尝试使用该num来获取变量like6Y:
like+6+Y
我知道这是完全错误的,但我似乎记得你可以使用某种对象符号来实现这一点:
["like"+num+"Y"]
或者那些东西。但我不记得怎么做了。 感谢
答案 0 :(得分:6)
可以这样做 - 只需访问this["like"+num+"Y"]
即可。假设like6num
是当前对象的属性,否则只需将this
更改为对象的名称。
答案 1 :(得分:2)
即使this["like" + num + "Y"]
之类的内容适用于全局变量,数据类型Array
和Vector
(如果您知道所有值的类型相同,则使用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