0

サブメニューがクリックされたときに完全な「メニューパス」を取得する方法はありますか。たとえば、「入力」が選択されているときにメニュー デバイス->MODBUS->入力がある場合、「デバイス->MODBUS」部分を特定する方法はありますか?

フレッド・ティア

4

2 に答える 2

1

メニューコントロールのdataProviderとしてXMLを使用していると思います。また、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.

}
于 2012-09-26T06:23:56.747 に答える
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)
            }
于 2012-09-26T07:44:32.167 に答える