[英]Flex/AS3/XML: how to dynamically change XMLList used for Flex submenu?
Using actionscript 3, can someone give an example how I can dynamically change the submenu items below? 使用动作脚本3,有人可以举例说明如何动态更改下面的子菜单项吗?
<fx:Declarations>
<fx:XMLList id="menuData" xmlns="">
<menuitem label="Column A">
<menuitem label="Item A.1"/>
<menuitem label="Item A.2"/>
</menuitem>
<menuitem label="Column B">
<menuitem id="ItemB1" label="B.1"/>
<menuitem type="separator"/>
<menuitem label="Item B.2" type="check"/>
<menuitem label="Item B.3" type="check"/>
<menuitem id="myId" label="Item B.4">
<menuitem label="SubItem B.4.1"/>
<menuitem label="SubItem B.4.2"/>
</menuitem>
</menuitem>
...
</fx:XMLList>
<fx:Declarations>
...
<mx:MenuBar dataProvider="{menuData}" .../>
For example, suppose we want to replace submenu items B.4.1 and B.4.2 with: 例如,假设我们要将子菜单项B.4.1和B.4.2替换为:
<menuitem label="SubItem abc"/>
<menuitem label="SubItem def"/>
<menuitem label="SubItem ghi"/>
Grab the item by its label, or better, give it an id and use this to retreive it, and then replace its children . 按标签抓取项目,或者更好,给它一个id并使用它来检索它,然后替换它的孩子 。
You can easily do this utilizing E4X : 您可以使用E4X轻松完成此操作:
var item:XMLList = menuData..menuitem.(attribute('label') == "Item B.4");
var subItems:XML =
<items>
<menuitem label="SubItem abc"/>
<menuitem label="SubItem def"/>
<menuitem label="SubItem ghi"/>
</items>;
item.setChildren(subItems.menuitem);
See http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/XML.html for more information on this subject. 有关此主题的更多信息,请参见http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/XML.html 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.