Является ли MouseEvent классом или экземпляром класса, или и тем, и другим? - PullRequest
3 голосов
/ 03 октября 2011

У меня проблемы с получением синтаксиса as3 (php - единственный другой язык программирования, который я знаю)

mybutton.addEventListener(MouseEvent.CLICK, myListenerFunction);

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

В этом коде кажется, что MouseEvent является экземпляром класса MouseEvent.1004 *

MouseEvent.CLICK

Однако в этом коде кажется, что e является экземпляром класса MouseEvent

e:MouseEvent

Ответы [ 3 ]

4 голосов
/ 03 октября 2011

MouseEvent.CLICK является публичной константой класса, к которой можно получить доступ везде без необходимости создавать экземпляр.Это как открытая статическая переменная в классе php.

e:MouseEvent является экземпляром класса MouseEvent.

Ознакомьтесь с документацией к классу MouseEvent http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/MouseEvent.html

3 голосов
/ 03 октября 2011
MouseEvent.CLICK

Это ссылка на статическую константу класса MouseEvent.Итак, чтобы ответить на ваш вопрос, MouseEvent здесь является ссылкой на класс.Константа CLICK может быть определена в классе MouseEvent примерно так:

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

Таким образом, запись:

trace(MouseEvent.CLICK);

выведет строку:

click
2 голосов
/ 03 октября 2011

MouseEvent.CLICK является статическим членом MouseEvent. Он содержит строку, которая является именем события. Вы также можете использовать addEventListener("click", myListenerFunction), хотя это менее безопасно. Я думаю, им просто нужно было где-то поставить эту константу.

Экземпляр класса MouseEvent содержит информацию о том, что произошло, чтобы вызвать событие и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...