我有一个MenuBar,其中包含一般菜单项,如文件,视图,工具,帮助。 我在每个菜单项中都有子项。 问题是,当我按Alt + f键时,我想自动打开“文件”菜单。 我可以捕获视图上的关键事件。
但是如何打开MenuBar的文件菜单(需要从MenuBar类调用哪些函数来弹出那些子菜单项)? 我在谷歌搜索了一些信息..但是cudnt找到了。 或者,如果你有任何更好的解决方案或示例..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>
提前致谢:)
Sriss
答案 0 :(得分: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);
答案 1 :(得分:0)
我解决了它:)
var fileMenu:Menu = myMenuBar.getMenuAt(0);
fileMenu.show();
它有效,但现在问题是..子菜单弹出应用程序的(0,0)位置而不是文件菜单项.. !!!
答案 2 :(得分:0)
这是假的菜单!
更好的方法是:
e.preventDefault(); // will play against pressed ESC, too
menuBar.setFocus();
menuBar.dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN, false, false, 0, Keyboard.RIGHT));