![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Oct 2012
Сообщений: 3
|
Я хочу переопределить стандартный метод EventDispatcher.addEventListener. В новом методе должен вызываться мой служебный класс EventManager.addEvent(). И в методе EventManager.addEvent() кроме всего прочего должен также вызваться стандартный метод addEventListener. И вот я не знаю как вызвать именно стандартный, а не мой новый addEventListener. Надеюсь понятно объяснил.
Подробнее: У меня есть EventManager с таким методом: public function addEvent(obj:IEventDispatcher, event:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void { obj.addEventListener(event, listener, useCapture, priority, useWeakReference); [здесь я сую слушатель события в свой стек] } Хочу сделать код по принципу: public class CustomClass extends Sprite { public override function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void { eventManager.addEvent(this, type, listener, useCapture, priority, useWeakReference); } } но в результате цепочка вызовов: customClass.addEventListener -> eventManager.addEvent -> customClass.addEventListener -> eventManager.addEvent -> customClass.addEventListener -> ... Может кто-то сможет направить на правильный путь? Последний раз редактировалось see613; 13.12.2012 в 14:08. |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 431
|
Вам EventManager нужен только для логирования ?
|
|
|||||
|
Регистрация: Oct 2012
Сообщений: 3
|
он нужен не только для логирования. В нем хранятся слушатели. Чтобы можно было разом удалять все слушатели определенного объекта и тд. Подсмотрел в библиотеке spas http://www.flashapi.org
Также не хочется добавлять новых методов. В том то и суть чтобы на любые классы(мои или стандартные) вызывать один и тот же метод addEventListener не задумываясь где переопределенный метод а где нет. То есть простое удобство. |
|
|||||
|
У CustomClass можно не переписывать метод, а добавить.... что-нить вроде addEventListenerWithLogging, собственно в нём и будет происходить eventManager.addEvent
|
|
|||||
|
EventManager
public function addEvent(obj:IEventDispatcher, event:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void { [здесь я сую слушатель события в свой стек] } public class CustomClass extends Sprite { public override function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void { eventManager.addEvent(this, type, listener, useCapture, priority, useWeakReference); super.addEventListener(this, type, listener, useCapture, priority, useWeakReference); } }
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
Создать финальный метод, который будет дёргать super.addEventListener. Скрыть неймспейсами, чтобы при обычной работе было красивше. А ещё лучше послушать alatar'a.
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:10. |
|
|
« Предыдущая тема | Следующая тема » |
|
|