Actionscript 3 菜单栏禁用中的Flex菜单项
我有一个关于在Flex中启用/禁用menuitems的小问题 问题是我可以直接禁用一个菜单项,但不能禁用它的子菜单项 我有以下菜单结构:Actionscript 3 菜单栏禁用中的Flex菜单项,actionscript-3,apache-flex,flex4.5,Actionscript 3,Apache Flex,Flex4.5,我有一个关于在Flex中启用/禁用menuitems的小问题 问题是我可以直接禁用一个菜单项,但不能禁用它的子菜单项 我有以下菜单结构: public var menuAgroApp:XMLList = <> <menuitem label="ADMIN"> <menuitem label="Option 1"/> <menuitem label="O
public var menuAgroApp:XMLList =
<>
<menuitem label="ADMIN">
<menuitem label="Option 1"/>
<menuitem label="Option 2"/>
<menuitem label="Option 3"/>
<menuitem label="Option 4"/>
</menuitem>
<menuitem label="Prices">
<menuitem label="Price 1"/>
<menuitem label="Price 2"/>
<menuitem label="Price 3"/>
</menuitem>
<menuitem label="Orders">
<menuitem label="Order 1"/>
<menuitem label="Order 2"/>
</menuitem>
</>;
问题是,如何在ADMIN菜单项中获取access菜单项
谢谢。这是我的解决方案和: 为了控制子菜单项,您需要使用XML表达式导航到它,然后指向列表的第一个元素。这是因为您的XML表达式在常见情况下是一个XMLList
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
[Bindable]public var menuAgroApp:XMLList =
<>
<menuitem label="ADMIN">
<menuitem label="Option 1"/>
<menuitem label="Option 2"/>
<menuitem label="Option 3"/>
<menuitem label="Option 4"/>
</menuitem>
<menuitem label="Prices">
<menuitem label="Price 1"/>
<menuitem label="Price 2"/>
<menuitem label="Price 3"/>
</menuitem>
<menuitem label="Orders">
<menuitem label="Order 1"/>
<menuitem label="Order 2"/>
</menuitem>
</>;
protected function onOnOffAdmin(event:MouseEvent):void
{
myMenuBar.dataDescriptor.setEnabled(menuAgroApp[0], false);
}
protected function onOnOffAdminOption2(event:MouseEvent):void
{
myMenuBar.dataDescriptor.setEnabled(menuAgroApp[0].menuitem.(@label == 'Option 2')[0], false);
}
]]>
</fx:Script>
<s:VGroup x="30" y="30">
<mx:MenuBar id="myMenuBar" labelField="@label" dataProvider="{menuAgroApp}"/>
<s:Spacer height="20"/>
<s:Button label="Set Off Admin" click="onOnOffAdmin(event)" />
<s:Button label="Set Off Admin/Option2" click="onOnOffAdminOption2(event)" />
</s:VGroup>
</s:Application>
;
受保护的函数ononofadmin(事件:MouseEvent):无效
{
myMenuBar.dataDescriptor.setEnabled(menuAgroApp[0],false);
}
受保护的函数onOnOffAdminOption2(事件:MouseeEvent):无效
{
myMenuBar.dataDescriptor.setEnabled(menuAgroApp[0].menuitem.(@label=='Option 2')[0],false);
}
]]>
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
[Bindable]public var menuAgroApp:XMLList =
<>
<menuitem label="ADMIN">
<menuitem label="Option 1"/>
<menuitem label="Option 2"/>
<menuitem label="Option 3"/>
<menuitem label="Option 4"/>
</menuitem>
<menuitem label="Prices">
<menuitem label="Price 1"/>
<menuitem label="Price 2"/>
<menuitem label="Price 3"/>
</menuitem>
<menuitem label="Orders">
<menuitem label="Order 1"/>
<menuitem label="Order 2"/>
</menuitem>
</>;
protected function onOnOffAdmin(event:MouseEvent):void
{
myMenuBar.dataDescriptor.setEnabled(menuAgroApp[0], false);
}
protected function onOnOffAdminOption2(event:MouseEvent):void
{
myMenuBar.dataDescriptor.setEnabled(menuAgroApp[0].menuitem.(@label == 'Option 2')[0], false);
}
]]>
</fx:Script>
<s:VGroup x="30" y="30">
<mx:MenuBar id="myMenuBar" labelField="@label" dataProvider="{menuAgroApp}"/>
<s:Spacer height="20"/>
<s:Button label="Set Off Admin" click="onOnOffAdmin(event)" />
<s:Button label="Set Off Admin/Option2" click="onOnOffAdminOption2(event)" />
</s:VGroup>
</s:Application>