在学习Flex的过程中,你可能会遇到Flex事件机制方面的问题,这里和大家分享一下Flex事件处理和Flex事件监听器注册的概念,希望本文的介绍能让你有所收获。

成都创新互联是一家集网站建设,裕民企业网站建设,裕民品牌网站建设,网站定制,裕民网站建设报价,网络营销,网络优化,裕民网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
Flex事件机制
事件处理是GUI开发的重要组成部分,早在传统的Client/Server开发中,事件驱动的开发法就已经是GUI开发的主流。
1.Flex事件处理
软件开发者在开发过程中只关注某个组件响应某个事件后所做的操作,即被驱动的操作,而不用像结构化线形开发那样去关注驱动事件的动作。响应特定事件的组件叫做事件监听器(EventListener)。
一个用于交互的GUI组件会被预先定义它可能遇到的事件,软件开发者即可根据开发需求来编写事件监听器,响应部分或全部的事件触发,图1.7展示了这个触发过程。作为开发者,我们首先需要了解特定的GUI交互组件支持哪些事件,之后便可以根据需求写出相应的事件监听器。
图1.7GUI系统中Flex事件机制的Flex事件处理流程
在示例1.2和示例1.3中,我们已经使用到了Flex的事件机制,Flex开发基于ActionScipt对象,事件已经作为Flex可视化组件的属性。我们可以在MXML中直接为组件的事件属性设定事件监听方法或者代码。
在示例1.2中,我们设定
如果我们需要在事件监听器中处理事件源,即产生事件的组件,那么需要为事件监听的方法传递参数event,例如可以对示例1.2中事件监听方法的定义和
(1)事件监听方法定义的修改:
- publicfunctionchangeText(event:Event):void
(2)Button事件属性的修改:
在Button事件属性的修改中,event作为一个关键字来使用,而非自定义变量,因此我们可以在标签中直接使用event来创建当前组件所触发的事件对象。
ActionScript类Event构建的时候会把事件源组件作为一个成员属性,这样在事件监听器中,我们可以通过event来操作事件源组件。
在MXML中设定事件属性值的方式叫做事件监听器内建。这种方式适合应用在简单的事件处理上。如果遇到需要多个事件监听器联合使用等复杂的事件处理情况,则需要应用Flex的事件注册。
2.Flex事件机制中事件监听器注册
Flex的可视化组件对象都继承了EventDispatcher类,因此它们都支持事件注册方法addEventListener。该方法的定义如下:
- addEventListener(type:String,listener:Function,
- useCapture:Boolean=false,priority:int=0,
- useWeakReference:Boolean=false):void
通过addEventListener方法,我们可以为可视化组件注册一个事件监听器。type参数表明事件监听器的类型,如鼠标单击事件(MouseEvent.CLICK);listener参数是事件监听器的具体方法;useCapture参数设定是否在事件的捕获阶段就进行响应;priority参数设定事件监听器的优先级;useWeakReference参数设定事件监听器方法是否为弱类型,一个强类型的事件监听器方法是不会被Flex进行自动垃圾收集的。
先前我们提到的事件监听器内建方式,实际上已经创建了一个默认的事件监听器方法,并把ActionScript脚本的内容写入方法,但这种方法的最大不足就是无法操作一个以上的事件监听器。
而使用addEventListener方法注册事件监听器的方式,我们可以控制事件响应的捕获方式和优先级;当我们已经添加的事件监听器在程序的运行过程中需要取消掉的时候,我们可以通过removeEventListener方法来实现。而这些功能在事件监听器内建方式中不会被支持,理由也很明了:内建的事件监听器都是匿名的,我们无法引用到匿名监听器的监听实体方法。
因此,在使用Flex事件机制的时候,还是应该尽量选用事件监听器注册的方式来构建事件处理,这将为事件交互处理带来更多的可扩展性。
网站标题:Flex事件机制中事件处理和监听器注册方法指导
标题URL:http://jxjierui.cn/article/cceojgi.html


咨询
建站咨询
