前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flex事件机制(一)

Flex事件机制(一)

作者头像
高爽
发布2017-12-28 13:02:51
5690
发布2017-12-28 13:02:51
举报
文章被收录于专栏:高爽的专栏高爽的专栏

Flex事件贯穿我们整个开发,事件分为两类,用户事件和系统事件,比如说我们在页面点击了一个按钮,这是用户触发的事件,当组件初始化完毕,会触发creationComplete事件,这是系统事件。简单的说,用户事件是人触发的,系统事件是flex自身触发的。

       事件的传播分为三个阶段,捕获(Capturing)、定标(Targeting)、冒泡(Bubbling),捕获:为事件监听器检查目标对象之前,应用程序将首先为监听器检查所有这一阶段所注册的父容器和祖先容器,定标:应用程序会为目标对象上的监听器进行检查,冒泡:定标之后,应用程序将为监听器检查所有这一阶段所注册的父容器和祖先容器,冒泡是捕获的相反阶段。这三个阶段中,我们要记住两个对象,target和currentTarget,简单的将,target是引发事件的源对象,currentTarget是监听这个事件的对象。通常来说,target和currentTarget是相同的,比如说我们创建了一个按钮,并在按钮上监听了click事件,但是如果不是在按钮上监听了click事件,而是在它的父容器上监听了这个事件,这时target和currentTarget就不同了。

       说了这些只是我对Flex事件的浅显理解,无论是否做flex开发的朋友看过来都能够对flex开发有一个直观的认识,下面就一个按钮,介绍一下flex中监听事件的四种方式。

       第一种:

代码语言:javascript
复制
<s:Button label="确定" click="Alert.show('确定')" />

       第二种;

代码语言:javascript
复制
<s:Button label="确定">
		<s:click>
			<![CDATA[
				Alert.show("确定");
			]]>
		</s:click>
</s:Button>

       这种方式称之为内联,这种方式在flex中被支持的很好,在使用项目渲染器和项目编辑器的时候也可以这种方式使用。不过这种方式个人不推崇,逻辑比较混乱。

       第三种:

代码语言:javascript
复制
<fx:Script>
		<![CDATA[
			import mx.controls.Alert;			
			protected function submitClickHandler(event:MouseEvent):void
			{
				Alert.show("确定");				
			}			
		]]>
</fx:Script>
<s:Button label="确定" click="submitClickHandler(event)" />

       这种方式比较常见,event参数是flex内部帮我们传递的。

       第四种:

代码语言:javascript
复制
<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.events.FlexEvent;			
			//creationComplete事件调用函数
			protected function creationCompleteHandler(event:FlexEvent):void
			{
				submit.addEventListener(MouseEvent.CLICK, submitClickHandler);
			}			
			protected function submitClickHandler(event:MouseEvent):void
			{
				Alert.show("确定");
			}			
		]]>
</fx:Script>
<s:Button id="submit" label="确定" />

       这种方式常用于动态创建组件或者分离方式构建自定义组件的时候使用。

       在实际开发中,我们常用的方式就是第三种和第四种。到此,内容结束,下一节讲的主要内容是使用事件在父子组件中传输数据。

       ps:我的博客刚刚开始写,如果大家对我的博客形式和博文内容有什么建议的话,欢迎提出,下篇《Flex事件机制(二)》.,敬请关注。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-03-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档