Actionscript 3 自定义事件侦听器-无法理解constance变量背后的推理
我遵循在线教程创建自定义事件侦听器。我对它的工作原理有一些了解,但它仍然有些混乱。我知道public static Constance DEAD:String=“DEAD”是一个等于值“DEAD”的变量(字符串),但是我不明白为什么需要创建这个变量,以便(type:String)可以变成(DEAD:String)。例如,如果你得到一个值“dead”,那仅仅是一个默认值,因为它可以是任何东西?谢谢Actionscript 3 自定义事件侦听器-无法理解constance变量背后的推理,actionscript-3,Actionscript 3,我遵循在线教程创建自定义事件侦听器。我对它的工作原理有一些了解,但它仍然有些混乱。我知道public static Constance DEAD:String=“DEAD”是一个等于值“DEAD”的变量(字符串),但是我不明白为什么需要创建这个变量,以便(type:String)可以变成(DEAD:String)。例如,如果你得到一个值“dead”,那仅仅是一个默认值,因为它可以是任何东西?谢谢 package { import flash.events.Event; pu
package
{
import flash.events.Event;
public class AvatarEvent extends Event
{
public static const DEAD:String = "dead";
public function AvatarEvent( type:String )
{
super( type );
}
}
}字符串的值由EventDispatcher用于标识在调度事件时要通知的侦听器 开发人员,常量是为了帮助您编写干净的代码,并避免创建一些愚蠢的bug。写作时
dispatchEvent(new AvatarEvent(AvatarEvent.DEAD))
您可以避免在中可能出现的打字错误
dispatchEvent(new AvatarEvent(“dead”))
并允许编译器检查您提供给事件构造函数的参数
更进一步,您可以使用Robert Penner的,它是作为AS3定制事件的替代品编写的。它解决了定制事件的许多缺点。举例来说,它不使用字符串来标识事件,因此您不能由具有相同类型值的两个事件创建任何冲突。而且它避免了每次您想要分派新事件时创建新对象,因此对性能更有利。我明白了,因此您将使用常量dead-since-dead:String=“dead”;好的,谢谢,这就很清楚了。