2009-05-26 79 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

相關問題