1
在我的應用程序的一個區域中,我創建了一個在循環中使用actionscript構建自身的顯示。 (在我的實際應用程序中有一個LOT嵌套的孩子和我的功能可能正在尋找任何這些孩子)在該AS我分配每個項目的ID,但當我試圖通過它的ID訪問該項目失敗。是什麼賦予了?以及我如何才能完成查找UI組件而不必瞭解所有可能的父母?我無法弄清楚如何通過它們的ID訪問項目如果我動態創建它們
這是我正在做的一個簡單的例子。點擊該按鈕會失敗,錯誤
ReferenceError: Error #1069: Property myPanel3 not found on Test and there is no default value.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();">
<mx:Script>
<![CDATA[
import mx.containers.Panel;
private function init():void{
var i:uint = 0;
for(i = 0; i<10; i++){
var loopPanel:Panel = new Panel;
loopPanel.title = i.toString();
loopPanel.id = "myPanel" + i.toString();
myVBox.addChild(loopPanel);
}
}
private function clicked():void{
var tracePanel:Panel = this["myPanel3"];
trace(tracePanel);
}
]]>
</mx:Script>
<mx:VBox id="myVBox" x="10" y="10" width="500"/>
<mx:Button id="myBtn" x="518" y="8" label="Click Me" click="clicked();"/>
</mx:Application>
雖然這將工作,我需要一種方式來訪問面板而不知道VBoxes ID,名稱,或者即使它存在。就像我說過的,我的實際應用比樣本複雜得多,我想要一個更清潔的方法,然後必須通過所有父級。 – invertedSpear 2010-02-08 17:16:35
檢查最後一段,我不認爲有這樣的內置存儲。或者,您可以每次都瀏覽對象樹。 – 2010-02-08 17:19:49
字典是一個好主意,從來沒有真正想過做過類似之前的事情,有點像自己的IDing。任何想法爲什麼分配ID的行爲不起作用? – invertedSpear 2010-02-08 17:24:33