Actionscript 3 Adobe Flex:单击子菜单时获取完整菜单路径?

Actionscript 3 Adobe Flex:单击子菜单时获取完整菜单路径?,actionscript-3,apache-flex,flex4,flex3,flash-builder,Actionscript 3,Apache Flex,Flex4,Flex3,Flash Builder,当单击子菜单时,没有任何方法可以获得完整的“菜单路径”。例如,如果在选择“输入”时,我有一个菜单“设备->MODBUS->输入”,我是否可以确定“设备->MODBUS”部分 蒂亚, Fred我假设您正在使用XML作为菜单控件的数据提供程序,并且我假设您正在使用mx/s:Menu控件。否则你的问题会让人困惑,我的回答超出了范围 您可以侦听MenuEvent.ITEM_单击事件并执行以下操作: // Event handler for the Menu control's change event.

当单击子菜单时,没有任何方法可以获得完整的“菜单路径”。例如,如果在选择“输入”时,我有一个菜单“设备->MODBUS->输入”,我是否可以确定“设备->MODBUS”部分

蒂亚,
Fred

我假设您正在使用XML作为菜单控件的数据提供程序,并且我假设您正在使用mx/s:Menu控件。否则你的问题会让人困惑,我的回答超出了范围

您可以侦听MenuEvent.ITEM_单击事件并执行以下操作:

// Event handler for the Menu control's change event.
private function menuHandler(evt:MenuEvent):void  {
    Alert.show("Label: " + evt.item.@label, "Clicked menu item");
    var path:Array  = new Array();

    var objXML:XML   = evt.item as XML;

    while(objXML)
    {
        path.push(objXML);
        objXML = objXML.parent();
    }

    path.reverse();

    // now you have the path from top to bottom, as array of xml elements.

}

或者通过以下方式在MenuEvent.ITEM_单击事件:-

private function menuHandler(event:MenuEvent):void
            {
                var pathArray:Array = new Array();
                pathArray.push(event.item.@label);

                var parent:XML = event.item.parent(); 

                while(parent != null)
                {
                    pathArray.push(parent["@label"]);
                    parent = parent.parent();

                }
                pathArray.reverse();
                trace(pathArray)
            }

请分享一些代码。我不知道你说的菜单路径是什么意思。您指的是您的SWF所使用的目录结构吗?复制/粘贴非常好?:鼃)()()))你的答案和我的有什么不同?