【发布时间】:2009-10-12 09:03:26
【问题描述】:
我正在使用 Adobe Air 创建一个桌面应用程序。在那个应用程序中,我有一棵树,我想在右键单击时将菜单添加到节点。我按照他们对 flex 树的说法,但没有工作。
有什么方法吗?
~乌梅什
【问题讨论】:
标签: air
我正在使用 Adobe Air 创建一个桌面应用程序。在那个应用程序中,我有一棵树,我想在右键单击时将菜单添加到节点。我按照他们对 flex 树的说法,但没有工作。
有什么方法吗?
~乌梅什
【问题讨论】:
标签: air
我不确定你的问题是什么,因为你没有说它是否没有编译,没有显示或给出运行时错误等,所以我整理了一个 mxml 来演示它。代码大部分是由 Tree 和 Menu 示例拼凑而成的。详情请参阅文档。
<?xml version="1.0" encoding="utf-8"?><mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Menu;
[Bindable]
public var selectedNode:XML;
// Event handler for the Tree control change event.
public function treeChanged(event:Event):void {
selectedNode=mx.controls.Tree(event.target).selectedItem as XML;
}
private var prevMenu:Menu = null
public function showMenu(event:MouseEvent):void
{
if(prevMenu != null)
prevMenu.hide()
var menu:Menu = Menu.createMenu(null, menuData, false);
menu.labelField="@label"
menu.show(event.stageX, event.stageY)
prevMenu = menu
}
]]>
</mx:Script>
<mx:XML id="menuData">
<root>
<menuitem label="copy" eventName="copy"/>
<menuitem label="paste" eventName="paste"/>
</root>
</mx:XML>
<mx:XMLList id="treeData">
<node label="Mail Box">
<node label="Inbox">
<node label="Marketing"/>
<node label="Product Management"/>
<node label="Personal"/>
</node>
<node label="Outbox">
<node label="Professional"/>
<node label="Personal"/>
</node>
<node label="Spam"/>
<node label="Sent"/>
</node>
</mx:XMLList>
<mx:Panel title="Tree Control Example" height="75%" width="75%"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">
<mx:Label width="100%" color="blue"
text="Select a node in the Tree control."/>
<mx:HDividedBox width="100%" height="100%">
<mx:Tree id="myTree" width="50%" height="100%" labelField="@label"
showRoot="false" dataProvider="{treeData}" change="treeChanged(event)"
rightClick="showMenu(event)"/>
<mx:TextArea height="100%" width="50%"
text="Selected Item: {selectedNode.@label}"/>
</mx:HDividedBox>
</mx:Panel></mx:WindowedApplication>
【讨论】: