2011-12-17 169 views
0

我將一個組件ID傳遞給一個函數,然後使用該ID作爲變量。使用ID作爲變量

比如我傳遞id爲 - user_dg

問題我已經是當我這樣做的變量痕跡 - this[dg_id]

我得到 - Application0.Canvas662.Canvas878.DataGrid888,當我希望它是 - user_dg

我怎樣才能輸出實際的組件ID?

+3

你試過這個[dg_id] .id嗎?自從我在flex上獲得了我的雙手已經有一段時間了,但它可能是那麼簡單...... – 2011-12-17 23:41:16

+0

哈哈。謝謝 – Adam 2011-12-18 01:30:37

回答

1

根據評論;這聽起來像是你把錯誤的東西傳遞給函數。很可能是組件的一個實例,而不是實際組件的名稱。

這有點含糊,因爲您沒有向我們展示您調用它的方法或方式。但是,像這樣:

public function myFunction(component:UIComponent):void{ 
    trace(component); 
    trace(component.id); 
} 

會期望一個組件的實例,而不是實際的組件。你可以這樣稱呼這個功能:

myFunction(myDataGrid); 
myFunction(myList); 
myFunction(myComboBox) 

如果你想傳入ID,這將是不尋常的,但你可能做這樣的事情:

public function myFunction(componentID:String):void{ 
trace(this[componentID]); 
trace(componentID); 
} 

而且你可以這樣調用它:

myFunction('stringThatRepresentsAVariableName'); 
myFunction(myDataGrid.id); 
etc.. 

這是極不尋常的在你需要的實際情況使用ID處理。要求一個實例爲將來需要維護此代碼的人員提供更好的文檔。要求字符串ID需要該函數位於ID爲小孩的相同組件中;這可能會減少您未來重用或重構的機會。