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