actionscript3.0:ActionScript 3.0 Step By Step系列( 6):学对象事件模型 从点击按扭开始来源: 发布时间:星期五, 2009年1月23日 浏览:2次 评论:0
事件可以理解为所发生、ActionScript 能够识别并可响应事情许多事件和用户交互有关. 例如:用户单击按钮或按键盘上键 ― 但也有其它类型事件例如如果使用 ActionScript 加载外部图像有个事件可让您知道图像何时加载完毕本质上当 ActionScript 正在运行时Adobe Flash Player 只是坐等某些事情发生当这些事情发生时Flash Player 将运行您为这些事件指定特定 ActionScript 代码
ActionScript 3.0中事件模型和JavaAWT事件模型非常相似很久前我也写过篇和Java事件模型相关文章谈爱情故事,谈观察者模式有兴趣朋友可以去看看在ActionScript 3.0中提供了很多种事件类型用得最多得则是鼠标和键盘相关事件本文主要介绍鼠标事件和ActionScript 3.0中事件模型 、从点击按扭认识事件 大家都知道在开发ASP.NET应用时候我们要执行某操作可以将代码写在按扭click事件下在运行时候通过点击按扭便会触发事件执行下面代码在ActionScript 中同样如此我们也可以设置按扭click事件将点击按扭后要执行代码下在事件下面如在本系列第篇文章中“Hello World”举例: 1 <mx:Buttonx="24"y="35"label="点我"id="btnClick" 如上代码片段,设置了按扭click事件执行为OnClick思路方法,下面为OnClick定义: 1 ernalfunctionOnClick:void{ 众所周知,在.NET里做开发,我们出了直接通过执行按扭Button_OnClick事件,也可以不触发OnClick属性,通过委托方式("")给按扭附加个事件处理.在ActionScript 3.0中同样可以如何来处理,只是实现上有所区别,它同Java样,是通过事件监听来完成也就是直接给按扭添加个事件监听如下代码块: 1//给btnClick按钮添加个鼠标事件监听OnClick 由上面代码块可以看出是通过addEventListener()思路方法给按钮添加了个事件监听那么相反则是注销监听使用removeEventListener()思路方法来完成 按钮鼠标事件有很多中上面演示了单击事件MouseEvent.CLICK,出了它还有下面几种如图所示: 这里需要注意点给按钮添加事件监听时候这个定义需要个鼠标事件类型参数见上面单击事件(Click)所添加事件监听思路方法(OnClick)定义 2、ActionScript 3.0事件体系 ActionScript 3.0作为门面向对象开发语言同C#/java样切皆对象万物皆从 Object开始其事件模型那肯定也不例外了详细见下事件类继承图: 上图概括了整个ActionScript 3.0完整事件体系里面详细这里就不作介绍在后续文章里将会步步涉及到这些内容详细请关注后续文章详细介绍 3、事件流和事件对象 事件流和事件对象是事件中非常重要两个概念下面是官方解说: 事件流 (Event Flow):如果显示列表中对象(屏幕上显示对象)发生事件则会向包含该对象所有对象通知此事件并依次通知其事件侦听器此过程从舞台开始并在显示列表中直进行到发生事件实际对象然后再返回到舞台此过程称为事件流 事件对象 (Event Object):此对象包含发生特定事件相关信息当调度事件时此信息将被发送到所有侦听器 虽然在ActionScript 3.0中相比 2.0有很大改进所谓万变不离其本事件流同样还是分为 3大阶段:捕获事件阶段、目标阶段和冒泡阶段请参考下图: 捕获阶段:从根节点到子节点检测对象是否注册了事件监听是则监听 目标阶段:目标对象本身注册监听 冒泡阶段:从目标节点到根节点检测对象是否注册了事件监听是则监听 注整个事件流阶段从某中角度来说也可以理解为请求--处理--响应方式 事件对象主要有两个作用:第事件对象通过将特定事件信息存储在组属性中来代表实际事件第 2事件对象包含组思路方法可用于操作事件对象和影响事件处理系统行为如C#语言样ActionScript 3.0 中Flash Player API也定义了个Event事件类做为所有事件基类,Event 类定义组基本适用于所有事件对象属性和思路方法当发生事件时Event对象将作为参数传递给事件监听器 这作为了解便是在实际编程中用得不是很多其使用方法和C#/Java样这里就不做详细介绍只需要记住下面两个重要思路方法便OK 1、evt.stopImmediatePropagtion:void 防止对事件流中当前节点中和所有后续节点中事件侦听器进行处理 2、evt.stopPropagetion:void 防止对事件流中当前节点后续节点中所有事件侦听器进行处理 4、创建自定义事件 上面已经介绍Event做为所有事件基类那么创建个自定义事件肯定离不开它需要继承事件基类Event 创建自定义事件说难又不难说简单也非简单具体需要根据实际需求而定在这里时半会也讲不清楚在ActionScrip 3.0中要创建自定义事件和步骤和C#/Java是差不多原理都是样所以这里我就不做过多介绍详细大家可以查看相关书籍或官方提供相关文挡 文章出处:http://beniao.cnblogs.com/ 相关文章: ActionScript 3.0 Step By Step系列( 9):使用样式(style)和皮肤(Skin)两大画笔为应用界面画妆 ActionScript 3.0 Step By Step系列( 8):动态数据展现源于灵活数据绑定 ActionScript 3.0 Step By Step系列( 7):使用XML和XMLList类处理XML数据 ActionScript 3.0 Step By Step系列( 6):学对象事件模型从点击按扭开始 ActionScript 3.0 Step By Step系列( 5):走在面向对象开发路上,以类为基础去研究编程问题 ActionScript 3.0 Step By Step系列( 4):来自面向对象开发的前呐喊:“学会写可重用代码” ActionScript 3.0 Step By Step系列( 3):学学流程控制编编- & switch & while & for ActionScript 3.0 Step By Step系列( 2):建立扎实ActionScript 3.0语法基础 ActionScript 3.0 Step By Step系列():工欲其善,先利其器(Flex Builder) 相关资源 : Flash ActionScript 3.0(1) - 数据类型、操作符和流程控制语句 Flash ActionScript 3.0(2) - 包、类、包外类、命名空间、属性、思路方法、接口和继承 Flash ActionScript 3.0(3) - 以文本形式、XML形式和JSON形式和ASP.NET通信 0
相关文章
读者评论
发表评论 |