0

我有一个菜单栏,其中包含文件、视图、工具、帮助等常规菜单项。我在每个菜单项中都有子项目。问题是我想在按 Alt+f 键时自动打开“文件”菜单。我可以捕获视图上的关键事件。

但是如何打开 MenuBar 的文件菜单(需要从 MenuBar 类调用什么函数来弹出那些子菜单项)?我在 google 上搜索了一些信息 .. 但很难找到。否则,如果您有任何更好的解决方案或示例..plz 发布它。

<root>
    <menuitem label="File">
        <menuitem label="New" enabled="false"/>
        <menuitem label="Open.." enabled="false"/>
        <menuitem label="Save" enabled="false"/>
        <menuitem label="Restore" enabled="false"/>
        <menuitem label="Print" enabled="true"/> 
        <menuitem type="seperator" enabled="false"/> 
        <menuitem label="Exit" enabled="true"/>    
    </menuitem> 
    <menuitem label="View" accesskey="v">
        <menuitem label="Zoom In" enabled="true" maxValue="200"/>
        <menuitem label="Zoom Out" enabled="true" maxValue="25"/>
    </menuitem>       
    <menuitem label="Tools" enabled="false">
        <menuitem label="item1" enabled="false"/>
        <menuitem label="item2" enabled="false"/>
    </menuitem> 

</root>

提前致谢 :)

斯里斯

4

3 回答 3

1

在其位置打开菜单:

var fileMenu:Menu = mnuBar.getMenuAt(0);
pnt : Point = new Point(mnuBar.x,mnuBar.y + mnuBar.height);
pnt = localToGlobal(pnt);
fileMenu.show(pnt.x,pnt.y);  
于 2010-10-14T10:24:33.880 回答
0

我解决了:)

var fileMenu:Menu = myMenuBar.getMenuAt(0);

文件菜单.show();

它可以工作,但现在的问题是.. 子菜单在应用程序的 (0,0) 位置弹出,而不是在文件菜单项..!!!

于 2010-03-24T07:16:11.770 回答
0

这是一个假菜单!

一个更好的方法是:

e.preventDefault();     // will play against pressed ESC, too
menuBar.setFocus();
menuBar.dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN, false, false, 0, Keyboard.RIGHT));
于 2014-05-09T13:18:04.980 回答