내 응용 프로그램의 한 영역에서 루프 중에 actionscript를 사용하여 자체 빌드하는 디스플레이를 만들고 있습니다. 내 실제 애플 리케이션에는 중첩 된 자식 LOT 내 함수가 그 어린이 중 하나를 찾고있을 수 있습니다.)에서 나는 각 항목에 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
마지막 단락을 확인하십시오, 나는 거기에 내장 된 스토리지가 있다고 생각하지 않습니다. 또는 매번 오브젝트 트리를 사용할 수 있습니다. –
사전은 좋은 생각입니다. 이전에는 그런 식으로 일을 생각하지 않았습니다. 직접 ID를 지정하는 것과 같습니다. ID를 즉시 할당하는 것이 효과가없는 이유는 무엇입니까? – invertedSpear