2009-05-26 76 views
3

有没有一种方法,使“getDefinitionByName()”与任何对象类型的工作,我只得到它带班工作:AS3-是否可以从字符串中调用变量?

var test:Class = getDefinitionByName("myClass") as Class; 

我需要这样的东西:

var myNumber:Number = 10; 
var test:Number = getDefinitionByName("myNumber") as Number; 

trace(test); //10 

或者有没有另一种方法来实现这一目标?

回答

3

你应该定义你的关键代码在你的键码类公共静态常量:

class KeyCodes { 
    public static const A:int = 65; 
} 

然后,您可以用它们作为参数传递给您的useKeyCodes功能:

useKeyCodes(KeyCodes.A); 

这样你得到不必记住每个关键代码的好处。

1

这就是简短的答案,getDefinitionByName获取类定义。您可以使用[]语法访问公共字段并运行,如trace(this["myNumber"]);。你的例子似乎与一个局部变量,这真的没有什么意义。

也许你可以解释你想要做什么,这听起来像你可以设计出你的方式。

+0

我有一个keycode类,它是完整的keyCode整数,我希望能够通过使用字符串从另一个类访问它们。 class keyCodes {public const A:int = 65; } class myClass { function useKeyCodes(key:String){ var keyCode:int = keyCodes.getDefinitionByName(key)as int; } } 我希望能够增加对键盘事件侦听器新的密钥不假思索键码 – RValentine 2009-05-26 14:53:36

+1

使用此:obj.useKeyCodes(flash.ui.Keyboard.A); – Jet 2009-05-28 16:43:23

相关问题