1

mxml のインスタンス (私の場合は EventList) を作成し、パラメーターを渡したいと考えています。私のイベントリストはパネルのリストなので、パラメーターを渡して動的にn個のパネルを生成したい(渡すnパラメーター)。たとえば、2番目のボタン20パネル(n = 20)で3パネル(n = 3)を生成するなど、最初のボタンをクリックするとトグルボタンバーがあるメインアプリがあります。n を渡すにはどうすればよいですか? また、リストを表示する最善の方法は何ですか? トグルボタンをクリックしたときにリストを生成したい!

4

1 に答える 1

2

xmlnamespace(xmlns) を使用して、ソース フォルダーの mxml ファイルにアクセスします。myEvenList コンポーネントにアクセスするために、xmlns="*" (* はソース フォルダー内の任意のコンポーネントにアクセスできることを意味します) を含むアプリケーションを作成しました。ここで n 値自体を渡します。example.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 タグでも、mxml タグを使用する代わりに myEventList オブジェクトをインスタンス化し、n の値を設定できます。

于 2011-01-11T14:17:28.467 に答える