2011-01-11 8 views
1

mxml (내 경우 EventList)의 인스턴스를 만들고 매개 변수를 전달하려고합니다. 내 이벤트 목록은 패널 목록이므로 매개 변수를 전달하고 동적으로 n 개의 패널 (n 매개 변수 전달)을 생성하려고합니다. 첫 번째 버튼을 클릭 할 때 버튼 바를 토글하는 메인 애플리케이션이 있습니다. 예를 들어 두 번째 버튼 20 개 패널 (n = 20)에 3 개의 패널 (n = 3)을 생성하고 싶습니다. 어떻게하면됩니까? n을 전달하는 방법과 목록을 표시하는 가장 좋은 방법은 무엇입니까? 토글 버튼을 클릭하면 목록을 생성합니다.mxml의 인스턴스를 만들고 매개 변수를 전달하는 방법은 무엇입니까?

답변

2

소스 폴더의 mxml 파일에 액세스하려면 xmlnamespace (xmlns)를 사용하십시오. myEvenList 구성 요소에 액세스하기 위해 xmlns = "*"(*는 소스 폴더의 구성 요소에 액세스 할 수 있음을 의미합니다. 여기에 n 값을 전달합니다. 예제를 확인하십시오 .HTH.

togglePanelCount.mxml

<?xml version="1.0" encoding="utf-8"?> 
    <mx:Application name="ToggleButtonBar_toggleOnClick_test" 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="vertical" 
    verticalAlign="top" 
    backgroundColor="white" xmlns:eventList="*">         <mx:ToggleButtonBar id="toggleButtonBar" 
        dataProvider="{viewStack}" /><mx:ViewStack id="viewStack" 
     width="100%" 
     height="100%"> 
    <eventList:myEventList n="5" id="List1"/> 
    <eventList:myEventList n="20" id="List2"/> 
</mx:ViewStack></mx:Application> 

myEvenList.mxml

  <?xml version="1.0" encoding="utf-8"?><mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="createPanels()"><mx:Script> 
    <![CDATA[ 
     import mx.controls.Alert; 
     import mx.containers.Panel; 
     public var n:int; 
     public function createPanels():void{ 
     Alert.show("in create panel"); 
     for(var i:int =0 ;i<n;i++){ 
      var panel:Panel = new Panel(); 
      panel.title = "panel"+(i+1); 
      panelList.addChild(panel); 
      } 
      } 
    ]]> 
</mx:Script><mx:VBox id="panelList" /></mx:Canvas> 

PS : 공공 속성으로 N을 갖는 것은 그 자체가 당신에 panels.Even의 수를 전달하는 방법을 제공합니다 응용 프로그램의 mx : Script 태그를 사용하면 myEventList 객체를 인스턴스화하고 mxml 태그 대신 n 값을 설정할 수 있습니다.