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