Как сделать экземпляр mxml и передать параметры? - PullRequest
1 голос
/ 11 января 2011

Я хочу создать экземпляр mxml (в моем случае EventList) и передать параметры.Мой список событий - это список панелей, поэтому я хочу передать параметры и динамически сгенерировать n номеров панелей (n-параметр для передачи).У меня есть основное приложение, в котором у меня есть кнопка панели переключателей, когда я нажимаю на первую, которую я хочу, например, создать 3 панели (n = 3), на второй кнопке 20 панелей (n = 20) и т. Д. Как это сделать?Как я могу передать и как лучше показать список?Я хочу создать список, когда нажимаю на кнопку переключения!

1 Ответ

2 голосов
/ 11 января 2011

Используйте xmlnamespace (xmlns) для доступа к файлу mxml в исходной папке. Я создал приложение, включающее xmlns = "*" (* означает, что вы можете получить доступ к любому компоненту в исходной папке) для доступа к компоненту myEvenList.Я передаю значение 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 в качестве общедоступного атрибута само по себе дает возможность передать количество панелей. Даже в теге mx: Script в приложении вы можете создать экземпляр объекта myEventList и установить значение n вместо использования тегов mxml.

...