我創建一個菜單是這樣的:Flex:菜單不會自動隱藏?
myMenu = Menu.createMenu(null, myMenuXMLListCollection, false);
,然後顯示它:
myMenu.popup(10, 10);
但是當我點擊菜單之外的某處菜單不會自動消失。
- 有沒有辦法讓菜單在我點擊外面時自動消失?
我創建一個菜單是這樣的:Flex:菜單不會自動隱藏?
myMenu = Menu.createMenu(null, myMenuXMLListCollection, false);
,然後顯示它:
myMenu.popup(10, 10);
但是當我點擊菜單之外的某處菜單不會自動消失。
收聽SandBoxMouseEvent。 MOUSE_UP_SOMEWHERE在沙箱根上。您可以使用SystemManager獲取沙盒根。 getSandboxRoot
所以,添加事件偵聽器,像這樣:
systemManager.getSandBoxRoot.addEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, myMouseUpHandler);
,然後在事件處理程序,只需要檢查,如果目標是菜單,如果不隱藏菜單:
protected function myMouseUpHandler(event:SandboxMouseEvent):void{
if(event.target != myMenuInstance){
myMenuInstance.visible = false;
// or whatever other action you wish to take to hide the menu.
}
}
這是Flex ComboBox在鼠標單擊時用來隱藏下拉菜單的一般方法。
非常感謝你非常非常Flextras.com :)(lifesaver):) –
最受歡迎,樂於幫忙! – JeffryHouser
您可以將監聽器添加到舞臺點擊,並且如果點擊的x,y不在菜單內,請將其隱藏。 – Joe