使用xml加载flex组件
如何使用XML加载flex组件。这个场景很简单,就像这样,我需要三个按钮来显示在我的面板中,但是选项true或false是否显示应该是xml格式的。您的问题不太清楚,所以我将用两种方式回答: 1。您需要有一个外部MXML 在这种情况下,您需要使用mxmlc.exe编译XML文件(或者将其重命名为.mxml并包含在Flex Builder中),然后使用SWFLoader组件访问该文件。我对SWFLoader没有太多的经验,所以我会让你自己去查 2。您需要通过外部XML设置组件的属性 创建一个HTTPService,为其分配一个ID,并使用url属性将其指向XML文件。不要指定结果格式。然后,使用结果事件并指向一个函数,该函数将在XML加载完成时执行。应该是这样的:使用xml加载flex组件,xml,apache-flex,actionscript,Xml,Apache Flex,Actionscript,如何使用XML加载flex组件。这个场景很简单,就像这样,我需要三个按钮来显示在我的面板中,但是选项true或false是否显示应该是xml格式的。您的问题不太清楚,所以我将用两种方式回答: 1。您需要有一个外部MXML 在这种情况下,您需要使用mxmlc.exe编译XML文件(或者将其重命名为.mxml并包含在Flex Builder中),然后使用SWFLoader组件访问该文件。我对SWFLoader没有太多的经验,所以我会让你自己去查 2。您需要通过外部XML设置组件的属性 创建一个HTT
<mx:HTTPService id="service" url="myXml.xml" result="Foo (event)" />
<properties>
<button1Enabled>false</button1Enabled>
<button2Visible>true</button2Visible>
<button3Text>"TEXT"</button3Text>
</properties>
此函数获取服务的结果,并为各个按钮分配XML中定义的一些属性。或者,也可以使用service.lastResult从脚本中的任何位置访问最新结果
希望这有帮助 查看一些不错的XML操作工具,用于加载静态XML和将XML转换为对象。//ActionScript代码
导入mx.controls.Menu;
导入flash.events.MouseEvent
private var menu12:Menu;
private function init():void {
menu12 = new Menu();
menu12.labelField = "@label";
menu12.dataProvider = xmlDP;
menu12.showRoot = false;
menu12.width = popUpButton.width;
popUpButton.popUp = menu12;
}
//XML信息
<menu1 label="Some introduction" />
<menu2 label="Disabled State (disabled)." enabled="false" />
<sep1 type="separator" />
<menu3 label="parent">
<menu4 label="child1" />
</menu3>
<menu5 label="parent (disabled)" enabled="false">
<menu6 label="child1" />
<menu7 label="child2" />
<menu8 label="child3" />
</menu5>
<menu9 type="separator" />
<menu10 type="separator" />
<menu11 id="leftButton" label="Left" type="radio" groupName="radioGroup" toggled="true" enabled="true" />
<menu12 id="rightButton" label="Right" type="radio" groupName="radioGroup" enabled="false" />
<menu13 id="popupButton" label="Popup" type="radio" groupName="radioGroup" enabled="false" />
</root>
//组成部分
<mx:PopUpButton id="popUpButton"
label="Please select an item"
openAlways="true"
creationComplete="init();" />
谢谢你的帮助。现在,我怎么会在弹出按钮的菜单中添加事件呢 我不知道您的意思,但是否要将事件侦听器添加到菜单中 在这种情况下,只需添加:
menu12.addEventListener (event, eventHandlerFunction);
例如:
menu12.addEventListener (MouseEvent.CLICK, menu12Clicked);
Flex会自动将事件作为参数传递到menu12Clicked函数中。如果希望有多个参数,可以使用:
menu12.addEventListener (MouseEvent.CLICK, function (e : MouseEvent) : void {
menu12Clicked (e, "argument");
});
我没有PopUpButtons方面的经验,但是代码中的内容应该可以工作,尽管我假设xmlDP指向标记menu12。我还假设“@label”指向menu12中定义的标签字段。就我个人而言,我喜欢嵌套我的XML,所以我不知道“@label”应该做什么。如果将标签嵌套在menu12标记中,则使用xmlDP.label。这个问题不清楚。也许发布一段您认为应该如何工作的代码片段,或者您的最佳尝试。您是指mxml吗?还是使用XML作为数据提供者?
menu12.addEventListener (MouseEvent.CLICK, function (e : MouseEvent) : void {
menu12Clicked (e, "argument");
});