1.     定义对象事件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
你在一个监听器函数片段中指定对象为Event类型,如下所示:
function myEventListener(e:Event):void { ... }
不过,如果你像访问比被调度的事件类型更加独特的属性,你就必须指定更加具体的事件。如下所示:
import mx.events.ToolTip
function myEventListener(e:ToolTipEvent):void { ... }
在一些情况下,你必须在你的ActionScript块中引入事件类。
大多数对象都有关联到其上的特殊事件,并且大多数对象都可以调度一个以上类型的事件。
如果你定义了一个Event类型的事件,你可以将它转换为跟家太特殊的类型来访问它的类型特有的属性。
2.     访问当前目标的属性
事件对象包含一个到调度组件(或目标)的引用,这意味着你可以访问那个目标组件的所有属性和方法。下面的例子访问了触发事件的Button控件的id属性;
<?xml version="1.0"?>
<!-- events/AccessingCurrentTarget.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script><![CDATA[
import mx.controls.Alert;
private function myEventHandler(e:Event):void {
Alert.show("The button '" + e.currentTarget.id + "' was clicked.");
}
]]></mx:Script>
<mx:Button id="b1" label="Click Me" click="myEventHandler(event)"/>
</mx:Application>
你可以访问当前目标的成员。如果你没有将当前目标转换为一个具体的类型,那么编译器将认为目标的类型为Object。Object可以拥有任意的属性或方法,因为在ActionScript中Object类型是动态的。所以,当访问当前目标的方法和属性的时候,最佳实践是总是对目标进行类型转换。这样做将赋予你强壮的编译时类型检查,避免抛出危险的运行时异常。
下面的例子在调用setSelection()方法前将当前目标转换为TextInput类,但是在尝试设定tmesis属性前没有尝试进行转换。Tmesis属性在TextInput类中并不存在。这就意味着当你尝试访问并不存在的成员的时候,你将获得一个运行时错误,而不是一个编译时错误。
<?xml version="1.0"?>
<!-- events/InvokingOnCurrentTarget.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script><![CDATA[
import mx.core.UIComponent;
private function tiHandler(e:Event):void {
/* The following enforces type checking: */
TextInput(e.currentTarget).setSelection(0,3);
/* The following throws a run-time error but not a compile-time error:
e.currentTarget.tmesis = 4;
*/
/*
... unless you cast it to the expected type like the following. Then
the compiler throws an error.
TextInput(e.currentTarget).tmesis = 4;
*/
}
]]></mx:Script>
<mx:TextInput id="ti1" click="tiHandler(event)"
text="This is some text. When you click on this control, the first three characters
are selected."/>
</mx:Application>
你还可以将当前目标转换为UIComponent或其他更加一般化的类。这样,即使你不知道到底是哪个具体的控件调度了方法,但至少你获得了一定程度的类型检查。
你还可以访问target属性的属性和方法。target属性包含了显示列表中的当前节点。

转载于:https://blog.51cto.com/flexria/154529

Flex的事件(三)相关推荐

  1. transitionend、change、classList、兼容代码、元素样式属性的操作、-Attribute自定义属性、阻止跳转、元素绑定相同事件、元素解绑事件、事件冒泡、事件三阶段

    transitionend过渡监听事件: 过渡监听事件transitionend指的是CSS3中过渡效果执行一次后触发事件处理函数,如下案例: <!DOCTYPE html><htm ...

  2. 成功发布Superdome Flex,新华三又在开先河

    内存计算今天已经不是什么新鲜词了,通过SAP HANA认证的解决方案几乎各大硬件厂商都有,但当我看到Superdome Flex时还是惊了一下,HPE竟然针对内存计算这一场景单独开发了一个产品系列.而 ...

  3. javaScript事件三要素

    1.什么是事件 js使我们有能力去创建动态页面,事件就是可以被js侦测到的行为 简单理解就是用户操作鼠标或者键盘后,触发了js事件,然后产生对应的机制 比如我们点击一个按钮,弹出对话框 事件三要素包含 ...

  4. 走近Flex组件系列(三):按扭组件(Button,CheckBox,LinkBar,LinkButton,PopUpButton,RadioButton,ToggleButtonBar)...

    本文主要介绍Flex的Button.ButtonBar.CheckBox.LinkBar.LinkButton.PopUpButton.RadioButton.RadioButtonGroup和Tog ...

  5. 【IOC 控制反转】Android 事件依赖注入 ( 事件三要素 | 修饰注解的注解 | 事件依赖注入步骤 )

    文章目录 总结 一.Android 事件设置三要素 二.修饰注解的注解 三.Android 事件依赖注入步骤 总结 Android 依赖注入的核心就是通过反射获取 类 / 方法 / 字段 上的注解 , ...

  6. Flex的事件(六)

    使用嵌套的函数作为事件监听器<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  7. (3.4)HarmonyOS鸿蒙滑动事件三个动作

    接口名:TouchEventListener 滑动事件里面分为三个动作:按下,移动,抬起 PRIMARY_POINT_DOWN:按下 POINT_MOVE:移动 PRIMARY_POINT_UP:抬起 ...

  8. Flex的事件(十四)

    一.   关于键盘事件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /& ...

  9. 翻译: Flex Collection 事件和手动通知变化

    转自:riameeting Collection事件和手动变化通知 集合用事件来表示集合发后了变化. 你能用这些事件监控变化以作相应的显示上的更新. Collection事件: CollectionE ...

最新文章

  1. 学习笔记13-C语言-字符串函数、缓冲区
  2. 表单-图片浏览上传-单选框(二)
  3. 深度学习中的损失函数总结以及Center Loss函数笔记
  4. python数据库定时更新脚本——(一)GitPython拉取代码
  5. 管理API访问令牌的最佳安全实践
  6. html的滚动条样式,css滚动条样式
  7. easyui分页查询为什么会有下拉框_Easyui 添加分页组件_EasyUI 教程
  8. pmap anon 内存泄露
  9. html图片自适应裁剪,html 图片裁剪 图片固定高度 图片自适应。图片完美适配
  10. win7桌面上显示html,win7桌面图标不见了怎么办,显示Windows 7桌面图标的方法
  11. mysql查询bom清单_Oracle EBS-SQL (BOM-12):BOM清单查询
  12. 学校计算机桌子尺寸,家用电脑桌设计尺寸一般是多大
  13. 从车辆工程转行程序员两年,我是这么走过来的
  14. 完美立方数生理周期假币问题熄灯问题阶乘汉诺塔N皇后问题
  15. 面试官常问的 web前端 问题(二)
  16. 承香墨影的行业周报-0x0011
  17. 狼人杀与血染钟楼的【JAVA面向对象】————类和对象
  18. 我的艰辛作业之旅之程序设计思维week3作业
  19. 萧乾升:4.16黄金白银TD实时行情走势策略
  20. SMART触摸屏可以连接哪些PLC以及可以连接几台PLC?

热门文章

  1. 性能测试工具选型原则
  2. dplyr | 数据导入和预处理的常用函数
  3. php网页302错误,swfupload提示“错误302”的解决方法
  4. python数据可视化源码_Python数据分析:数据可视化实战教程
  5. 前端基础:vue.js跟node.js分别是什么
  6. 学习前端的未来在哪里?今天详细的谈一下
  7. select count(*)和select count(1)的区别
  8. 数据库字段与属性的关系是什么?
  9. 计算机等级考试在校生变成社会考生,关于开展2021年9月份全国计算机等级考试(NCRE)报名工作通知...
  10. android 灰色向白色渐变,iPhone-iOS的白色到透明渐变层为灰色