下面有两个很简单的一个例子:
例子一:
button.addEventListener("click",showText); //给按钮添加一个事件,第一个参数是事件的类型,第二个参数是调用什么方法
internal function showText(evt:MouseEvent):void{
txt.text = "click a button";
}
例子二:
btn1.addEventListener(MouseEvent.CLICK,onClick);
internal function onClick(evt:MouseEvent):void{
Alert.show("你点击了一下按钮","提示");
}
事件流:
调用事件会经过三个阶段:
1、捕获阶段:从根节点到子节点,检测对象是否注册了监听器,是则调用监听函数
2、目标阶段:调用目标对象本身注册的监听程序
3、冒泡阶段:从目标节点到根节点,检测对象是否注册了监听器,是则调用监听函数
注意:事件发生后,每个节点可以有2个机会(2选1)响应事件,分别是捕获和冒泡阶段,默认关闭捕获阶段
上面事件流可能看的有些生疏,比如一个界面中放了画布1,在画布1上放置了画布2,在画布2上面放置了按钮,在按钮1上注册了一个事件,
捕获阶段是从画布1->画布2->按钮1,然后到达目标阶段,检测到按钮1有注册事件,然后从按钮1->画布2->画布1(这个阶段称为冒泡阶段)
IEventDispatcher接口:
addEventListener(); //注册事件监听器
removeEventListener(); //移除事件监听器
dispatchEvent(); //派发事件
EventDispatcher类,参见手册
addEventListener()方法
此方法有5个参数:
参数1:调用事件的类型
参数2:调用什么方法
参数3:捕获阶段调用是否开启,默认不开启
参数4:优先级,值越大,优先级越高,
参数5:是否使用弱引用,默认是false,不使用弱引用(使用强引用),这个类似于java中的垃圾收集,如果改为true时就会收回垃圾
Event对象
Event类作为创建Event对象的基类,当发生事件时,Event对象将作为参数传递给事件监听器
最长见得如:MouseEvent,KeyboardEvent
自定义事件
1、创建自定义事件名称的Event
dispatchEvent(new Event("myEvent",true,false));
2、创建扩产事件类
Public class MyEvent extends Event{
......
}
示例一:dispatchEvent()方法的使用方法:本示例效果是:点击按钮后会弹出文本框“触发了"+Event1_.0.cav注册的:testEvent"事件”
<mx:Script>
<![CDATA[
import mx.controls.Alert;
internal function init():void{
cav.addEventListener("testEvent",onShow);
btn.addEventListener(MouseEvent.CLICK,onClick);
trace("1:addEventListener");
}
internal function onClick(evt:MouseEvent):void{
trace("2:dispatchEvent");
cav.dispatchEvent(new Event("testEvent",true,false));
}
public function onShow(evt:Event):void{
//evt.currentTarget:目前的事件流进了那个组件
//evt:target:是谁调用了这个事件(就是说事件流的目标是什么)
//如果不用if:要是按钮放在画布或其他容器上,其他容器注册了和按钮相同的事件,那么点击一次按钮后同一个方法就可能执行两次以上
if(evt.currentTarget == evt.target){
Alert.show("触发了"+evt.currentTarget+"注册的:"+evt.type+"事件");
}
}
]]>
</mx:Script>
<mx:Canvas x="37" y="47" width="200" height="299" id="cav" borderColor="#08436C" backgroundColor="#563D3D">
</mx:Canvas>
<mx:Button x="421" y="57" label="Button" id="btn"/>
第二个示例:定义类使用extends关键字自定义方法
//此自定义事件的功能是:调用事件的时候在构造方法中传入值,然后将值赋值到data变量中
package com.events
{
import flash.events.Event;
public class NewEvent extends Event
{
public static const NEWCLICK:String="newevent";
public var data:String;
public function NewEvent(type:String,data:String)
{
this.data=data;
super(type, false, false);
}
}
}
分享到:
相关推荐
1. 自定义事件对象 2. 编程实验 发送和处理自定义事件 3. 小结
自定义的一个RecycleView,实现了ListView、GridView和瀑布流三种效果,并且实现了点击效果(包括点击和长点击事件),内容不是特别复杂,关键点也都加了注释
瀑布流是电商应用展示商品通常采用的一种方式,如图示例 瀑布流的实现方式,通常有以下几种 ... 都可以自定义cell,且涉及到cell的重用 都继承自UIScrollView,具有滚动效果 2、UICollectionView的特性
通过简单的方式去处理来自 自定义发布者 / DOM 元素 / Fetch 请求 / WebSocket / socket io 事件流。
这个包括了RecyclerView的基本实现方法,和点击事件的处理,以及分割线的实现和瀑布流Grid的设置
当Esper监测到事件流中又符合条件的时间发生时,即可触发Plain Old Java Objects(POJO)编写的自定义操作。当数百万数量级的事件同时发生时,我们不可能使用普通的关系型数据库来存储和查询,Esper正是专为这样的...
它显示了如何将自定义事件类型与JDK Flight Recorder和Mission Control结合使用,以深入了解基于JAX-RS的REST API的运行时性能。 它还演示了如何使用Java 14中添加的JDK Flight Recorder事件流API( )通过...
仅支持自定义组件模式 date属性传入的应该是一个 String ,如: 2019-06-27 ,而不是 new Date() 通过 insert 属性来确定当前的事件是 @change 还是 @confirm 。理应合并为一个事件,但是为了区分模式,现使用两个...
它公开了一个API,使您可以存储工作流定义,跟踪正在运行的工作流,管理事件以及定义自定义步骤和脚本以供在工作流中使用。文献资料请参阅流利的API 使用流畅的API定义您的工作流程。 public class MyWorkflow : ...
dooringx-lib 提供自己的一套数据流事件机制以及弹窗等解决方案,可以让你更快地自己定制开发可视化拖拽平台。dooringx-lib 在运行时维护一套数据流,主要分为json数据部分,左侧组件部分,右侧配置项部分,快捷键...
:television: 特征: 订阅所有流事件(自动发现事件类型) 通过用户友好的UI订阅和取消订阅特定的流事件发布事件(通用事件和平台事件) 注册事件源(说明和快捷方式) 分析过去的活动内容时间轴或表格视图动态过滤...
实现瀑布流图片加载,事件分发,图片缓存,自定义广告轮播
内容阅读流加入流事件元数据消费者一次消费者状态警卫队(又称“聚合人员”) 只读实施细节酸全球订单事件流分区自定义序列化压缩安全 为什么? 当前只有一个针对node / javascript的嵌入式事件存储实现,即...
logstash-input-cloudwatch-logs, Logstash的输入插件,用于从CloudWatch日志流事件 用于CloudWatch日志的 Logstash输入 来自CloudWatch日志的流事件。命令行目指定单个日志组或者组 array,这里插件将扫描该组中的...
.NET托管工作流设计器 该解决方案包含: WPF桌面应用程序 工作流设计器-在WPF应用程序中重新托管 ...GetRSVPmembers-检索指定的Meetup.Com事件的成员名称和计数 演示工作流程 AzureVmPowerOperations.x
karendoesthings叠加 这是我的NodeCG流叠加层,围绕Polymer元素和GreenSock的动画库构建。 虽然它曾经主要基于,但后来已精简为仅包含基本要素。覆盖的原因我需要的东西适合我的整体色彩设计,可以自定义,可扩展,...
2、需要重写事件onTouchEvent(); 3、需要给九个点设置序号和坐标,这里用Map类就行; 4、需要判断是否到滑到过九点之一,并存储滑到过的点的序号,而且需要一个方法可以返回它们,这里用List类就行; 滑动解锁当前...
选择相应的模块和适当的事件以触发自定义功能。 根据您的用例复制所需的代码。 请将您的authtoken粘贴到authtoken变量中。 (请参阅本以了解如何生成您的身份验证令牌) 根据您的要求自定义代码(如果需要)。 保存...
特性 支持在线流程设计器,钉钉审批模式,中国式工作流 支持流程办理、退回、自由流、会签、并行、串行、服务...流程事件脚本在线编写,包括:流程启动、完成、取消;任务分配、创建、结束等 我的待办任务处理,我的已
完全解析jBPM4应用开发技术 9位工作流业内专家联袂推荐 随着在现代企业管理中对于信息化、流程化的深度挖掘,具有业务流程管理的技术和思想已经成为致力于全面掌控企业级应用系统人士“日常生活、居家旅行”的必备...