解析Flex事件处理流程

在学习Flex的过程中,Flex事件处理是必须要掌握的知识,这里和大家分享一下Flex事件处理流程,相信本文介绍一定会让你有所收获。

Flex事件处理

软件开发者在开发过程中只关注某个组件响应某个事件后所做的操作,即被驱动的操作,而不用像结构化线形开发那样去关注驱动事件的动作。响应特定事件的组件叫做事件监听器(EventListener)。

一个用于交互的GUI组件会被预先定义它可能遇到的事件,软件开发者即可根据开发需求来编写事件监听器,响应部分或全部的事件触发,图1.7展示了这个触发过程。作为开发者,我们首先需要了解特定的GUI交互组件支持哪些事件,之后便可以根据需求写出相应的事件监听器。

图1.7GUI系统中的Flex事件处理流程

 

在示例1.2和示例1.3中,我们已经使用到了Flex的事件机制,Flex开发基于ActionScipt对象,事件已经作为Flex可视化组件的属性。我们可以在MXML中直接为组件的事件属性设定事件监听方法或者代码。

在示例1.2中,我们设定<mx:Button>的单击事件(click)属性为click=“changeText()”,并写了一个changeText方法作为单击事件的监听器。这样,当单击Button的时候,就会触发Button的click事件,changeText方法将被调用。而在示例1.3中,我们把ActionScript脚本直接复制给了click,这样整个脚本将作为一个事件监听器。Flex可视化组件开发的事件处理方式与HTML页面开发中的JavaScript脚本使用是非常相似的。

Flex事件处理中如果我们需要在事件监听器中处理事件源,即产生事件的组件,那么需要为事件监听的方法传递参数event,例如可以对示例1.2中事件监听方法的定义和<mx:Button>的事件属性做一些修改。

(1)事件监听方法定义的修改:

 

 
 
 
 
  1. publicfunctionchangeText(event:Event):void 

(2)Button事件属性的修改:

 
 
 
 
  1. <mx:Buttonlabelmx:Buttonlabel="点击这里"fontSize="16"click="changeText(event)"/> 

在Button事件属性的修改中,event作为一个关键字来使用,而非自定义变量,因此我们可以在标签中直接使用event来创建当前组件所触发的事件对象。

ActionScript类Event构建的时候会把事件源组件作为一个成员属性,这样在事件监听器中,我们可以通过event来操作事件源组件。

在MXML中设定事件属性值的方式叫做事件监听器内建。这种方式适合应用在简单的事件处理上。如果遇到需要多个事件监听器联合使用等复杂的事件处理情况,则需要应用Flex的事件注册。

【编辑推荐】

  1. Flex事件处理三要素
  2. FlexBuilder4十大新特性闪亮登场
  3. Flex框架中Cairngorm和Mate的优点大比拼
  4. FlexBuilder3.0与Eclipse3.4的***结合
  5. 解析Flex应用开发步骤 新特性和技术框架 
免责声明:文章内容不代表本站立场,仅供读者参考。产品相关技术问题请发送工单。 本文链接:https://www.idc.net/help/395834/

为您推荐

开源数据收集引擎 Logstash 讲解和示例讲解

一、概述 Logstash 是一个开源的数据收集和日志处理工具,它是 Elastic Stack(ELK Stack)的一部分,用于从各种数据源中采集、转换和传输数据,以帮助分析和可视化大规模数据。Logstash 通常与 Elasticsearch 和 Ki...

八个开源免费单点登录(SSO)系统

单点登录(SSO)是一个登录服务层,通过一次登录访问多个应用。使用SSO服务可以提高多系统使用的用户体验和安全性,用户不必记忆多个密码、不必多次登录浪费时间。 下面推荐一些市场上最好的开源SSO系统,可作为商业SSO替代。 1.Authelia https://github.com/authelia/authelia ...

浅谈HBase数据结构和系统架构

Part 01 LSM树模型 常见的的关系型数据库,如MySQL、SQL Server、Oracle等,使用B+ Tree作为数据存储与索引的基本结构,非叶子节点只存放索引数据,叶子节点存放所有数据和指向相邻节点的指针,具有高效的范围查询和稳定的查找效率,以及具有较小的读放大和空间放大。采用磁盘随机读写方式,且以磁盘数...

微软Radius平台重构现代应用程序部署

微软的 Azure 孵化团队日前推出一个叫 Radius 的新应用平台。Radius 平台可用于在 Kubernetes、公共云和边缘环境中运行各种现代应用程序。 Radius 是一个开源项目,最初支持的应用程序运行时包括Kubernetes、Azure和AWS,以后还会支持诸如谷歌云平台等云环境。 Mark Russ...

Ext JS3.0正式版发布

Ext JS3.0在经历数次RC版之后,extjs.com终于发布3.0的正式版。总体而言,较2.0改进不大,依然还是原理的组件模型,具体更新及改进如下: ◆提供了参照DWR后与后台的通讯包Direct,支持具有明显的REST风格的CRUD服务 ◆一系列的新的组件和例子,包括有图表(Charting, By YUI F...
返回顶部