0
我將一個組件ID傳遞給一個函數,然後使用該ID作爲變量。使用ID作爲變量
比如我傳遞id爲 - user_dg
問題我已經是當我這樣做的變量痕跡 - this[dg_id]
我得到 - Application0.Canvas662.Canvas878.DataGrid888,當我希望它是 - user_dg
我怎樣才能輸出實際的組件ID?
我將一個組件ID傳遞給一個函數,然後使用該ID作爲變量。使用ID作爲變量
比如我傳遞id爲 - user_dg
問題我已經是當我這樣做的變量痕跡 - this[dg_id]
我得到 - Application0.Canvas662.Canvas878.DataGrid888,當我希望它是 - user_dg
我怎樣才能輸出實際的組件ID?
根據評論;這聽起來像是你把錯誤的東西傳遞給函數。很可能是組件的一個實例,而不是實際組件的名稱。
這有點含糊,因爲您沒有向我們展示您調用它的方法或方式。但是,像這樣:
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爲小孩的相同組件中;這可能會減少您未來重用或重構的機會。
你試過這個[dg_id] .id嗎?自從我在flex上獲得了我的雙手已經有一段時間了,但它可能是那麼簡單...... – 2011-12-17 23:41:16
哈哈。謝謝 – Adam 2011-12-18 01:30:37