Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 自定义事件侦听器-无法理解constance变量背后的推理_Actionscript 3 - Fatal编程技术网

Actionscript 3 自定义事件侦听器-无法理解constance变量背后的推理

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

我遵循在线教程创建自定义事件侦听器。我对它的工作原理有一些了解,但它仍然有些混乱。我知道public static Constance DEAD:String=“DEAD”是一个等于值“DEAD”的变量(字符串),但是我不明白为什么需要创建这个变量,以便(type:String)可以变成(DEAD:String)。例如,如果你得到一个值“dead”,那仅仅是一个默认值,因为它可以是任何东西?谢谢

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”;好的,谢谢,这就很清楚了。