2010-03-24 133 views
0

我有一個MenuBar,其中包含一般菜單項,如文件,視圖,工具,幫助。 我在每個菜單項中都有子項目。 問題是,當我按下Alt + f鍵時,我想自動打開「文件」菜單。 我可以捕捉視圖上的keyevents。如何使用快捷方式自動打開菜單?

但如何打開MenuBar的文件菜單(什麼是需要從MenuBar類調用以彈出這些子菜單項)的功能? 我已經搜索了谷歌的一些信息,但找到了。 否則如果你有任何更好的解決方案或例子..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

我解決它:)

VAR fileMenu:菜單= myMenuBar.getMenuAt(0);

fileMenu.show();

它的工作原理,但現在的問題是..子菜單彈出應用程序的位置(0,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); 
0

這是一個假的菜單!

一個更好的辦法來做到這一點是:

e.preventDefault();  // will play against pressed ESC, too 
menuBar.setFocus(); 
menuBar.dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN, false, false, 0, Keyboard.RIGHT)); 
+0

你應該擴大你的答案多一點。注意你的語法,特別是在簡短的回答中,因爲它可以顯着改變意思。 – indivisible 2014-05-09 13:38:37

相關問題