Flex创建和分配事件
来源:互联网 发布:淘宝企业店可以贷款吗 编辑:程序博客网 时间:2024/04/29 22:51
1.创建和分配普通事件
举例说明
OkayCancelGroup.mxml文件,定义一个组件。
<?xml version="1.0" encoding="utf-8"?><s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" ><s:layout><s:HorizontalLayout/></s:layout><fx:Metadata>[Event(name="userAccept",type="flash.events.Event")]//为此组件声明事件类型,不声明则组件不能监听userAccept类型事件[Event(name="userCancel",type="flash.events.Event")]</fx:Metadata><fx:Script><![CDATA[protected function ok_clickHandler(event:MouseEvent):void{var e:Event = new Event("userAccept");//创建事件,以userAccept为类型dispatchEvent(e);//分配事件}protected function cancel_clickHandler(event:MouseEvent):void{var e:Event = new Event("userCancel");//创建事件,以userCancel为类型dispatchEvent(e);//分配事件}]]></fx:Script><s:Button id="ok" label="Ok" click="ok_clickHandler(event)" /><s:Button id="cancel" label="Cancel" click="cancel_clickHandler(event)"/></s:Group>两个按钮的click事件处理函数中新建了事件并且分配了事件。
组件使用并监听创建的事件的代码
<components:OkayCancelGroup id="okCancelGroup" left="219" bottom="22" userAccept="okCancelGroup_userAcceptHandler(event)" userCancel="okCancelGroup_userCancelHandler(event)"/>在一个父组件的MXML文件定义如上,监听userAccept和userCancel事件,并定义相应处理函数。
2.自定义事件类
上面的例子使用Event时间类,能够自己定义的只有type(userAccept和userCancel),不能携带更多数据,只支持最基本的事件属性。
如果需要事件传递更多的数据,可以继承flash.events.Event类.
UserAcknowledgeEvent.as
package events{import flash.events.Event;public class UserAcknowledgeEvent extends Event{public var timestamp:Date;public function UserAcknowledgeEvent(type:String,timestamp:Date, bubbles:Boolean=false, cancelable:Boolean=false){super(type, bubbles, cancelable);this.timestamp = timestamp;}override public function clone():Event{return new UserAcknowledgeEvent(type,timestamp);}}
}
UserAcknowledgeEvent继承于Event,多保存了一个事件的时间,使用方法流程和普通Event一样。
3.事件冒泡
如果想要自定义事件能够被组件的父组件捕获并处理,需要将事件的属性bubbles指定为true。这样事件就是个冒泡事件,能够被父组件捕获。
当然父组件也需要定义能够捕获的事件类型。上例中需要在父组件中加入:
<fx:Metadata>[Event(name="userAccept",type="events.UserAcknowledgeEvent")][Event(name="userCancel",type="events.UserAcknowledgeEvent")]</fx:Metadata>
然后在事件处理函数中dispatchEvent()。
- Flex创建和分配事件
- Flex容器和组件的初始化创建事件
- 创建Flex事件总线AppEvent
- flex 鼠标事件和效果
- flex 鼠标事件和效果
- Flex 理解事件流和事件冒泡
- flex ComboBox change事件和close事件
- Flex 的事件机制和绑定机制
- Flex 的事件机制和绑定机制
- FLEX actionscript响应鼠标和键盘事件
- Flex自定义事件和组件的使用方法
- flex 事件中currentTarget和target区别
- Flex中的帧频和帧事件
- Flex自定义事件和组件的使用方法
- flex自定义组件和自定义事件
- FusionCharts for Flex的属性和事件
- oracle 创建表空间和分配用户权限
- MapReduce任务创建和分配流程
- ios 数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Writ
- tomcat设置开机自启动服务
- iptables的使用
- Linux 批量操作用户
- nyoj 99 单词拼接
- Flex创建和分配事件
- android打开系统设置面
- ajax交互Struts2的action(1)
- 在硬盘留下后门
- 计算几何模板(白皮书)
- getting start with storm 翻译 第三章 part-2
- adt 和 sdk升级到最新后,创建新项目有问题,解决方法
- AsyncTask后台线程的简单应用(进度条更新显示)
- 如何在Xcode中安装cocos2d