1

我想创建 mxml 实例(在我的情况下为 EventList)并传递参数。我的事件列表是一个面板列表,所以我想传递参数并动态生成 n 个面板(要传递的 n 参数)。我有一个主应用程序,当我单击第一个时,我有切换按钮栏,例如,在第二个按钮 20 个面板(n=20)上生成 3 个面板(n=3)等。我该怎么做?我如何通过 n 以及显示列表的最佳方式是什么?我想在单击切换按钮时生成列表!

4

1 回答 1

2

使用 xmlnamespace(xmlns) 访问源文件夹中的 mxml 文件。我创建了一个应用程序,其中包含 xmlns="*"(* 表示您可以访问源文件夹中的任何组件)来访问 myEvenList 组件。我自己在这里传递 n 值。查看 example.HTH。

切换面板计数.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 标记。

于 2011-01-11T14:17:28.467 回答