2.9.为菜单类控件创建事件处理函数

2.9.1. 问题
我想让菜单对用户的交互作出响应。
2.9.2. 解决办法
给MenuBar 控件的itemClick 事件添加事件监听器。
2.9.3. 讨论
为MenuBar 控件的itemClick 事件指定一个监听处理函数handleMenuClick 来处理菜单栏交互点击。当用户选则一个菜单项的时候itemClick 事件就会被触发。监听函数会接收到作为参数传来的MenuEvent 对象。MenuEvent 对象包含了发出该事件对象的菜单项的信息。

MenuEvent 对象的item 属性包含了dataProvider 中的一个对应独一菜单项的项的引用。代码如下:
+展开
-XML
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">

<mx:MenuBar
labelField="@label"
itemClick="handleMenuClick(event)">

<mx:XMLList>
<menuitem label="File">
<menuitem label="New"/>
<menuitem label="Open"/>
<menuitem label="Closeenabled="false"/>
</menuitem>
<menuitem label="Edit"/>
<menuitem label="Source"/>
<menuitem label="View">
<menuitem label="50%"
type="radiogroupName="one"/>

<menuitem label="100%"
type="radiogroupName="one"
selected="true"/>

<menuitem label="150%"
type="radiogroupName="one"/>

</menuitem>
</mx:XMLList>
</mx:MenuBar>
<mx:Label id="disp0_lbl"/>
<mx:Script>
<![CDATA[
import mx.events.MenuEvent;
private function handleMenuClick(evt:MenuEvent):void {
this.disp0_lbl.text = evt.item.@label + " was
selected";
}

]]>
</mx:Script>
</mx:Application>

注意,因为dataProvider 使用了E4X 格式,所以例子使用了E4X 的语法@label 来接受label属性。MenuBar 控件同事也支持其他的事件类型,例如change,itemRollOut,itemRollOver,menuHide 以及menuShow.

加支付宝好友偷能量挖...


评论(0)网络
阅读(106)喜欢(0)flash/flex/fcs/AIR