我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Flex事件机制如何使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Flex事件机制如何使用

本篇文章给大家分享的是有关Flex事件机制如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Flex事件机制

Flex事件机制是观察者模式,即首先要注册事件,事件分发后通过事件响应函数进行处理。

例如在AS3中:

button.addEventListener(“click”,onClick);//  向button注册一个click事件  internalfunctiononClick(evt:MouseEvent):void{txt.text=“clickabutton!”;}//事件响应函数

那么注册事件注册什么呢?通过addEventListener注册函数的参数可以看出,首先需要注册事件类型(***个参数),然后注册响应函数,即事件发生后需要做什么事情,也就是说调用哪一个方法。

那么响应函数需要什么要求呢?响应函数必须要一个参数,指明注册的事件的事件类型,如上面的例子,我们注册的是一个鼠标事件类型,即鼠标单击事件。
注册的事件类型必须和响应函数的事件类型一致!到底有哪些事件类型呢?除了有系统默认的事件类型外,我们可以定义自己的事件和事件类型。简单的说,事件类型就是定义在事件类的常量属性。

Flex事件机制中的事件流

捕获阶段(从根节点到子节点,检测对象是否注册了监听器,是则调用监听函数)
2.目标阶段(调用目标对象本身注册的监听程序)
3.冒泡阶段(从目标节点到根节点,检测对象是否注册了监听器,是则调用监听函数)
注:事件发生后,每个节点可以有2个机会(2选1)响应事件,默认关闭捕获阶段。
从上到下(从根到目标)是捕获阶段,到达了目标后是目标阶段,然后从目标向上返回是冒泡阶段。

怎样理解事件流?

当事件发生时,FLEX通过事件的分发器EventDispatcher进行事件分发,分发的顺序是:从上往下到达目标,然后从下往上,从目标开始返回。如上面1、2、3所说的那样,这里就会有一个问题,在事件的流经过程中,不是目标的对象如果注册了事件,也有了相应的事件响应函数,那么不是目标的对象响应了事件的处理,这怎么办呢?
由于上面说的那样,addEventListener在只有如上两个参数的牧人情况下是关闭捕获阶段的,也就是说事件流是从目标阶段开始的,然后是冒泡阶段,当出现容器包含控件的时候,可以使用判断if(evt.target==evt.currentTarget)来确定当前事件流上的当前流经对象是否就是目标对象,如果是就进行相应的处理。

移除对象的事件流:removeEventListener(),参数与注册事件相同。
阻断事件流中目标对象的后继事件,即通过了目标阶段后阻止冒泡阶段:
event类的方法:publicfunctionstopImmediatePropagation():void

Event类

Event类作为创建Event对象的基类,当发生事件时,Event对象将作为参数传递给事件侦听器。如MouseEvent、KeyboardEvent,更多的可以查参考手册。
Event类有几个常用的公共属性:
◆是否冒泡:bubbles;
◆目标对象:target;
◆所处阶段:eventPhase;
◆当前对象:currentTarget;
从参考手册可以event类的构造函数:

Event()构造函数publicfunctionEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false)
创建一个作为参数传递给事件侦听器的Event对象。
参数type:String—事件的类型,可以作为Event.type访问。
bubbles:Boolean(default=false)—确定Event对象是否参与事件流的冒泡阶段。默认值为false。
cancelable:Boolean(default=false)—确定是否可以取消Event对象。默认值为false。
在flash.events包中可以看见系统自带的事件。

如何自定义事件

Flex事件机制中的自定义事件,也就是向监听器传递自己定义的事件类型,同时可以通过事件传递参数。

创建自定义事件名称的Event

dispatchEvent(newEvent(“myEvnet”,true,false));

创建自定义事件类

PublicclassMyEventextendsEvent{  ….  }

dispatchEvent是EventDispatcher的方法:publicfunctiondispatchEvent(event:Event):Boolean将事件调度到事件流中。事件目标是对其调用dispatchEvent()方法的EventDispatcher对象。
这句话就是说是哪个对象调用dispatchEvent(),那么该事件就会被分发到那个对象的事件流中,如果没有指明对象,那么默认为this对象,即应用程序。这时该事件被分发到应用程序对象的事件流中,而没有分发到特定对象的事件流中。一旦两个对象的不是父子关系(控件树),那么事件流不会在这两个对象之间有联系,那么事件不会被响应;如果是,则还是要响应。(这种情况dispatchEvent的参数Event对象的参数必须是三个,如上)。dispatchEvent就是说明有了新的事件,只要注册了该事件,就可以响应。

以上就是Flex事件机制如何使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Flex事件机制如何使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Flex事件机制如何使用

本篇文章给大家分享的是有关Flex事件机制如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Flex事件机制Flex事件机制是观察者模式,即首先要注册事件,事件分发后通过事
2023-06-17

Flex事件机制有什么用

小编给大家分享一下Flex事件机制有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Flex事件机制一.引言很多新人对Flex事件机制都不太熟悉,在使用过程中
2023-06-17

什么是Flex事件机制

这篇文章主要为大家展示了“什么是Flex事件机制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“什么是Flex事件机制”这篇文章吧。Flex事件机制介绍1.什么是Flex事件机制Flex事件可以看
2023-06-17

如何实现Flex键盘事件的监听机制

这篇文章给大家分享的是有关如何实现Flex键盘事件的监听机制的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Flex键盘事件的监听Flex的事件监听机制很完善,下面主要简单的讲一下Flex键盘事件的监听。首先,要理
2023-06-17

Flex事件机制的示例分析

这篇文章主要为大家展示了“Flex事件机制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex事件机制的示例分析”这篇文章吧。什么是Flex事件机制Flex事件可以看作是一种触发机制
2023-06-17

Flex事件机制中Flex事件分发和监听的示例分析

这篇文章给大家分享的是有关Flex事件机制中Flex事件分发和监听的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是Flex事件机制Flex事件可以看作是一种触发机制,当满足了一定的条件后,会触发这个
2023-06-17

Flex中如何使用自定义事件

Flex中如何使用自定义事件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Flex自定义事件事件是一个非常有用的功能,通常用于信息传递交互大大提高程序编写的灵活性。在高级语言中
2023-06-17

Flex事件机制的阶段有哪些

这篇文章主要为大家展示了“Flex事件机制的阶段有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex事件机制的阶段有哪些”这篇文章吧。Flex事件机制中的基本概念event object
2023-06-17

如何使用Flex组件开发

这篇文章主要为大家展示了“如何使用Flex组件开发”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Flex组件开发”这篇文章吧。使用Flex组件开发在Flex应用程序中ActionScri
2023-06-17

Flex中CSS文件如何使用

这篇文章给大家介绍Flex中CSS文件如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一.使用标签xml代码
2023-06-17

Flex中如何使用Button控件

这篇文章给大家介绍Flex中如何使用Button控件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Flex基础控件--ButtonFlex Button控件是Flex中最基本也是相对简单的控件之一,基本对他没有什么特殊
2023-06-17

Flex验证控件如何使用

Flex验证控件如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.验证必填项代码如下:
2023-06-17

Flex中Button组件如何使用

这篇文章将为大家详细讲解有关Flex中Button组件如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Flex组件之ButtonButton组件是Flex的最常用的控制组件之一,最普通
2023-06-17

Flex中Alert组件如何使用

本篇文章为大家展示了Flex中Alert组件如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Flex Alert组件使用方法,通过Alert.show(......)方法调用Alert.sho
2023-06-17

Flex中Label组件如何使用

Flex中Label组件如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Flex组件之LabelLabel组件是一个单行和不可编辑文本标签,支持HTML标记。创建方法:<
2023-06-17

如何使用Flex效果组件

小编给大家分享一下如何使用Flex效果组件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Flex效果组件Flex中提供了丰富的效果组件。由于Flex效果是一种根据
2023-06-17

Flex中如何使用Flex样式

这篇文章给大家分享的是有关Flex中如何使用Flex样式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Flex中使用Flex样式Flex所支持的Flex样式比Flash要丰富,Flex样式定义的方法也很多。这也是
2023-06-17

css如何使用指针事件來控制鼠标事件

小编给大家分享一下css如何使用指针事件來控制鼠标事件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用指针事件來控制鼠标事件指针事件 允許您指定鼠标如何与其触摸
2023-06-27

uniapp如何使用flex

随着移动互联网的迅速发展,越来越多的开发者开始使用跨平台技术来开发应用程序。而在跨平台开发里,uniapp是一种非常受欢迎的框架,由于使用uniapp可以快速地开发出同时支持多个平台的应用程序。在uniapp开发中,flex布局是一种非常强大的布局方式,能够帮助开发者快速地实现各种复杂的布局效果。下面,我们将介绍uniapp中如何使用flex布局。一、概述flex布局,也被称为
2023-05-14

Flex中ComboBox和Datagrid组件如何使用

这篇文章将为大家详细讲解有关Flex中ComboBox和Datagrid组件如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Flex ComboBox和datagrid的使用看完了Fl
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录