Actionscript 3: зачем переопределять пользовательское событие ... и когда его переопределять? - PullRequest
1 голос
/ 16 августа 2010

У меня всегда есть вопрос об отмене пользовательского события.Я не уверен, почему или что делать, чтобы переопределить функцию.Я искал в Google, но не получил слишком много отзывов.Я ценю, если кто-то может зажечь меня.Спасибо.

РЕДАКТИРОВАТЬ:

Мои проекты работают нормально, хотя я использую свое пользовательское событие без переопределения.Кто-нибудь может это объяснить?Спасибо.

Ответы [ 2 ]

6 голосов
/ 16 августа 2010

Как правило, вам необходимо переопределить функцию, когда ее использование необходимо изменить.Так, например, скажем, у меня есть класс под названием Car.В этом классе у меня есть функция go (), которая запускает автомобиль.

Теперь, если я расширю этот класс в другой класс с именем PickupTruck, мне нужно переопределить функцию go класса Car, чтобы она не только запускалаавтомобиль, но также прикрепляет трейлер Trucks.

Таким образом, в вашем случае вы должны переопределить метод clone вашего класса CustomEvent, поскольку он должен возвращать новый CustomEvent вместо нового Event.

3 голосов
/ 16 августа 2010

Из документов :

При создании собственного пользовательского класса событий необходимо переопределить унаследованный метод Event.clone (), чтобы он дублировал свойстваваш пользовательский класс.Если вы не установите все свойства, которые добавляете в свой подкласс событий, эти свойства не будут иметь правильных значений, когда слушатели обрабатывают событие повторной отправки.

Таким образом, у вас могут возникнуть проблемы, если вы непереопределить клон и повторно отправить событие.Кроме того, проблема не только в том, что пользовательские свойства не будут скопированы.Метод clone будет вызываться для базового класса Event.Это вернет объект Event, а не CustomEvent.Если у вас есть обработчик, который ожидает CustomEvent и получает Event, будет выдано сообщение об ошибке, и код в вашем обработчике не запустится.

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