Actionscript 3:为什么要覆盖自定义事件...以及何时覆盖它?

时间:2010-08-15 21:46:48

标签: flex flash actionscript-3 events

我总是对覆盖自定义事件有疑问。我不知道为什么或内部覆盖功能做什么。我搜索谷歌,但没有得到太多的反馈。如果有人可以点亮我,我感激不尽。感谢。

修改

即使我使用自定义事件而没有覆盖,我的项目似乎也能正常工作。有人可以解释一下吗?感谢。

2 个答案:

答案 0 :(得分:6)

通常,您需要在需要修改其使用时覆盖该函数。例如,假设我有一个名为Car的课程。在这个课程中,我有一个叫做go()的函数来启动汽车。

现在,如果我将这个类扩展到另一个名为PickupTruck的类中,我需要覆盖Car类的go函数,这样它不仅可以启动汽车,还可以附加卡车预告片。

因此,在您的情况下,您必须覆盖CustomEvent类的clone方法,因为它应该返回一个新的CustomEvent而不是一个新的Event。

答案 1 :(得分:3)

来自docs

  

创建自己的自定义事件时   class,你必须覆盖继承   Event.clone()方法为了它   复制你的属性   自定义类。如果你没有全部设置   您添加的属性   事件子类,那些属性将   没有正确的值时   侦听器处理redispatched   事件

因此,如果您不重写克隆并重新发送事件,则可能会出现问题。此外,问题不仅在于不会复制自定义属性。将在基类Event上调用clone方法。这将返回Event个对象,而不是CustomEvent。如果您的处理程序需要CustomEvent并收到Event,则会抛出错误并且处理程序中的代码将无法运行。