【发布时间】:2011-03-05 21:55:06
【问题描述】:
基本上,我有一个按钮,点击它会显示一个菜单。我想再次单击该菜单,然后菜单关闭。目前,每次单击按钮时,菜单都会重新打开。我在下面粘贴了 Flex livedoc 示例。如果单击该按钮,菜单会不断重新打开。
现在,我通过设置一个 var 来打开和关闭它,所以当点击按钮时它会进行检查。但是,如果您在屏幕之外单击,则会调度 HIDE 事件,并关闭菜单。这弄乱了正在设置的 open close var。
我怎样才能让下面的这个 Flex 示例在单击按钮时显示菜单,然后在第二次单击按钮时关闭菜单?考虑到如果您单击离开菜单,它会关闭它。
另外,我尝试了按钮的 MOUSE_DOWN_OUTSIDE 事件并设置了 preventDefault,并将 FlexMouseEvent event.cancelable 设置为 false。
更改为 PopUpMenuButton 不是一种选择。我需要大量剥皮。
这是 Flex 示例:
<mx:Script>
<![CDATA[
// Import the Menu control.
import mx.controls.Menu;
// Create and display the Menu control.
private function createAndShow():void {
var myMenu:Menu = Menu.createMenu(null, myMenuData, false);
myMenu.labelField="@label";
myMenu.show(10, 10);
}
]]>
</mx:Script>
<!-- Define the menu data. -->
<mx:XML format="e4x" id="myMenuData">
<root>
<menuitem label="MenuItem A" >
<menuitem label="SubMenuItem A-1" enabled="false"/>
<menuitem label="SubMenuItem A-2"/>
</menuitem>
<menuitem label="MenuItem B" type="check" toggled="true"/>
<menuitem label="MenuItem C" type="check" toggled="false"/>
<menuitem type="separator"/>
<menuitem label="MenuItem D" >
<menuitem label="SubMenuItem D-1" type="radio"
groupName="one"/>
<menuitem label="SubMenuItem D-2" type="radio"
groupName="one" toggled="true"/>
<menuitem label="SubMenuItem D-3" type="radio"
groupName="one"/>
</menuitem>
</root>
</mx:XML>
<mx:VBox>
<!-- Define a Button control to open the menu -->
<mx:Button id="myButton"
label="Open Menu"
click="createAndShow();"/>
</mx:VBox>
【问题讨论】:
标签: apache-flex menu controls