【问题标题】:Adobe air - add context menu on right click of tree nodeAdobe air - 在树节点的右键单击上添加上下文菜单
【发布时间】:2009-10-12 09:03:26
【问题描述】:

我正在使用 Adob​​e Air 创建一个桌面应用程序。在那个应用程序中,我有一棵树,我想在右键单击时将菜单添加到节点。我按照他们对 flex 树的说法,但没有工作。

有什么方法吗?

~乌梅什

【问题讨论】:

    标签: air


    【解决方案1】:

    我不确定你的问题是什么,因为你没有说它是否没有编译,没有显示或给出运行时错误等,所以我整理了一个 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 2017-08-25
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      相关资源
      最近更新 更多