MouseEvent是类还是类的实例,还是两者兼而有之?

时间:2011-10-03 12:55:26

标签: actionscript-3

我无法掌握as3语法(php是我所知道的唯一其他编码语言)

mybutton.addEventListener(MouseEvent.CLICK, myListenerFunction);

function myListenerFunction(e:MouseEvent):void
{
     // function body
}

在此代码中,似乎MouseEvent是MouseEvent类的实例。

MouseEvent.CLICK

但是在这段代码中,似乎e是MouseEvent类的实例

e:MouseEvent

3 个答案:

答案 0 :(得分:4)

MouseEvent.CLICK是一个类的公共常量,可以在任何地方访问,无需创建实例。它就像php类中的公共静态变量。

e:MouseEvent是MouseEvent类的一个实例。

查看MouseEvent类文档http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/MouseEvent.html

答案 1 :(得分:3)

MouseEvent.CLICK

这是对MouseEvent类的静态常量的引用。所以为了回答你的问题,这里的MouseEvent是对Class的引用。 CLICK常量可以在MouseEvent类中定义,如下所示:

package flash.events {
    public class MouseEvent extends Event {
        ...
        public static const CLICK:String = "click";
        ...
    }
}

所以写作:

trace(MouseEvent.CLICK);

将输出String:

click

答案 2 :(得分:2)

MouseEvent.CLICK是MouseEvent的静态成员。它包含一个字符串,它是事件名称。您也可以使用addEventListener("click", myListenerFunction),但这不太安全。 我猜他们只需要某个地方就可以保持不变。

MouseEvent类实例包含有关触发事件等的信息。