Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 菜单栏禁用中的Flex菜单项_Actionscript 3_Apache Flex_Flex4.5 - Fatal编程技术网

Actionscript 3 菜单栏禁用中的Flex菜单项

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

我有一个关于在Flex中启用/禁用menuitems的小问题

问题是我可以直接禁用一个菜单项,但不能禁用它的子菜单项

我有以下菜单结构:

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>