打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Flex自定义事件时为什么要重载clone()方法(转载)

Flex自定义事件时为什么要重载clone()方法(转载)

标签: http://tag.blog.sohu.com/flash.events::Event@5e514f1/  clone  分类: 学习 2011-02-23 10:19

    以前在学习自定义事件的时候一直不太明白为什么要重载克隆方法,虽然官方的说法是必须要这样做以便复制自定义事件中的属性,但是实际使用中不重载也没有出现过问题,于是这个问题就这样糊里糊涂的隐藏了下来;直至今天看到这篇文章,才明白了。
原来,一个定义事件如果不重载clone方法一般情况下不出问题,但是如果这个事件要进行中继的话,也就是说被继续派发下去的情况下,重载就非常有必要了,比如:

private function relay(customEvent:CustomEvent):void
{
dispatchEvent(customEvent);

}

这个relay方法就是对CustomEvent的第一次响应,然后在这个方法里继续向外派发这个事件,由另一个事件处理器来继续处理;在重新派发事件的过程中,flash内部的事件框架将会调用事件的clone方法来生成这个事件的一个新实例,如果没有重载clone方法,也就是说使用的是默认的重载方法,那么新的事件实例就是一个普通的event,而不是自定义事件,这时,在下一个事件监听器中如果期待的是自定义事件的话,就会发生:Error #1034: 强制转换类型失败:无法将 flash.events::Event@5e514f1 转换为.....的错误;

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
flex3权威指南学习记录一 - 戒骄戒躁... - JavaEye技术网站
Openlaszlo中发送自定义事件的两种方式
实战PyQt5: 103
记好这 24 个 ES6 方法,用来解决实际开发的 JS 问题
Flex自定义事件:一个地方派发(抛出),任何地方监听(捕
JS 中的自定义事件和模拟事件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服