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

时间:2012-09-26 00:57:38

标签: actionscript-3 flex flex4 flex3 flash-builder

当点击子菜单时,有任何方法可以获得完整的“菜单路径”。例如。如果我有菜单设备 - > MODBUS->当选择“输入”时输入有什么方法可以确定“设备 - > MODBUS”部分吗?

TIA, 佛瑞德

2 个答案:

答案 0 :(得分:1)

我想您使用XML作为菜单控件的dataProvider,我想您正在使用mx / s:Menu控件。否则你的问题会让人感到困惑,而且我的答案超出了范围。

您可以收听MenuEvent.ITEM_CLICK事件并执行以下操作:

// 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.

}

答案 1 :(得分:1)

或者通过MenuEvent.ITEM_CLICK事件的另一种方式: -

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)
            }