当单击子菜单时,是否有任何方法可以获取完整的“菜单路径”。例如,如果我在选择“输入”时有一个菜单设备-> MODBUS-> 输入,有什么方法可以确定“设备-> MODBUS”部分吗?
TIA,弗雷德
当单击子菜单时,是否有任何方法可以获取完整的“菜单路径”。例如,如果我在选择“输入”时有一个菜单设备-> MODBUS-> 输入,有什么方法可以确定“设备-> MODBUS”部分吗?
TIA,弗雷德
我想您正在使用 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.
}
或者在 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)
}