范伟给大家来点儿搞笑的(cvs版)
2008-03-17 23:18
176 查看
1. 定义对象事件
你在一个监听器函数片段中指定对象为Event类型,如下所示:
不过,如果你像访问比被调度的事件类型更加独特的属性,你就必须指定更加具体的事件。如下所示:
在一些情况下,你必须在你的ActionScript块中引入事件类。
大多数对象都有关联到其上的特殊事件,并且大多数对象都可以调度一个以上类型的事件。
如果你定义了一个Event类型的事件,你可以将它转换为跟家太特殊的类型来访问它的类型特有的属性。
2. 访问当前目标的属性
事件对象包含一个到调度组件(或目标)的引用,这意味着你可以访问那个目标组件的所有属性和方法。下面的例子访问了触发事件的Button控件的id属性;
你可以访问当前目标的成员。如果你没有将当前目标转换为一个具体的类型,那么编译器将认为目标的类型为Object。Object可以拥有任意的属性或方法,因为在ActionScript中Object类型是动态的。所以,当访问当前目标的方法和属性的时候,最佳实践是总是对目标进行类型转换[/b]。这样做将赋予你强壮的编译时类型检查,避免抛出危险的运行时异常。
下面的例子在调用setSelection()方法前将当前目标转换为TextInput类,但是在尝试设定tmesis属性前没有尝试进行转换。Tmesis属性在TextInput类中并不存在。这就意味着当你尝试访问并不存在的成员的时候,你将获得一个运行时错误,而不是一个编译时错误。
你还可以将当前目标转换为UIComponent或其他更加一般化的类。这样,即使你不知道到底是哪个具体的控件调度了方法,但至少你获得了一定程度的类型检查。
你还可以访问target属性的属性和方法。target属性包含了显示列表中的当前节点。
你在一个监听器函数片段中指定对象为Event类型,如下所示:
function myEventListener(e:Event):void { ... } |
import mx.events.ToolTip function myEventListener(e:ToolTipEvent):void { ... } |
大多数对象都有关联到其上的特殊事件,并且大多数对象都可以调度一个以上类型的事件。
如果你定义了一个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[/b] + "' was clicked."); } ]]></mx:Script> <mx:Button id="b1" label="Click Me" click="myEventHandler(event)"/> </mx:Application> |
下面的例子在调用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);[/b] /* The following throws a run-time error but not a compile-time error: e.currentTarget.tmesis = 4;[/b] */ /* ... 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> |
你还可以访问target属性的属性和方法。target属性包含了显示列表中的当前节点。
相关文章推荐
- [更新中]【超强搞笑语录】给大家开心一下,不看你一定后悔
- [中国][即日启程][DVD中字高清版][08最新范伟搞笑大片
- 郭德纲郭德纲搞笑台词,大家往这里看了!!!!
- 来点搞笑的段子,让大家放松一下丶
- 【搞笑】打电话--大家都来开心一下
- [转载]资产注入--搞笑的东西,大家饭前开胃
- 请大家来看一个愚蠢的搞笑通知
- 一个公司是要有多无聊和搞笑才会出这种笔试题目为难程序员呢? 哈哈, 大家乐呵一下
- 前几天在oracle.com.cn上看到一个爆长的贴子,是一个每日更新的漫画,真的是很搞笑耶。贴出来给大家看看。
- 【搞笑】打电话--大家都来开心一下。
- 大家用了这么久的.net有没有发现C#中可以用中文变量呀!!可用这个特性来彻底改变程序的易读性(搞笑).但其实有一个非常独特的用处的
- 大家放松下吧,咱家先在首页呆会儿!
- 感谢大家的支持,发布一个JWFDv0.96.3开发包补丁
- 给大家免费提供一个QQ邮件智能搜捕器
- 系统的那些经常被大家忽视的注册表常用键值的意思
- 欢迎大家光临我的博客!
- 怎样记住Integer的最大值(有趣的思维和搞笑的回答)
- C# 对XML文件的操作代码,与大家一起分享
- 毕业后的五年拉开大家差距的原因 .
- 【暴料】医学院校的搞笑标语~~