2011-12-08 49 views
1

這樣做的任何方式都是as3?獲取as3中變量名的字符串表示形式

例如,如果我有var dog:String,我該如何從變量中獲得「狗」?

展望反映要做到這一點,但一定是一個更簡單的方法

- 一個

+1

這是否有意義?因爲var名稱不重要。如果是,那麼你應該使用某種對象鍵/值映射。你也期望得到如果你做什麼 'var dog:String; var cat:String = dog;' –

+1

它確實....我想找到一種方法來自動將XML節點值映射到VO類的公共propeties – nuway

+0

好像你問的是錯誤的問題。問你想要達到什麼目的,你可能會有更好的運氣,而不是問這樣一個問題。一個例子可能是「如何自動將XML節點值映射到VO類的公共屬性?」 –

回答

3

希望這有助於。

class A { 
    var dog:String = "something"; 
    var cat:String = "eatdog"; 
} 

function getVars(obj:*):void 
{ 
    for(var i:* in obj){ 
     trace(i + " : " + obj[i]); 
     // this will trace all properties of object. 
     // dog : somthing 
     // cat : eatdog 
    } 
} 
0

在你的例子中,我不認爲有一種方法來檢索「狗」作爲一個字符串。

但是,如果dogdynamic對象的屬性,那麼你可以使用這樣的功能:

function getVarName(subject:*, value:*):String 
{ 
    for(var i:String in subject) 
    { 
     if(subject[i] == value) return i; 
    } 

    return ""; 
} 

該功能可以在一個場景中的工作是這樣的:

var holder:Object = { 
    dog: "some awesome dog" 
} 

trace(getVarName(holder, "some awesome dog")); // dog 
1

聲音就像你不想「獲取」變量名的字符串表示一樣,而是根據字符串設置變量。

要設置您有它的名字作爲一個字符串,你可以這樣做一個變量:

this['dog'] = 'value of the dog var'; 
+1

'+ 1'請注意,除非'this'是'dynamic'(或者有'dog'屬性),否則這將不起作用。 – Marty

相關問題