Hai,覆蓋flash.display.Sprite的eventDispatcher
我想在從flash.display.Sprite繼承時重寫dispatchEvent方法。無論何時現在像ADDED_TO_STAGE和CLICK一樣發送事件,它將通過我的理論中的dispatchEvent獲得。然而,他不會通過dispatchEvent獲得任何單一跟蹤。因此,事件會從其他地方在內部調度?
public class TestSprite extends Sprite { public function TestSprite() { this.addEventListener(Event.ADDED_TO_STAGE, this.handleAddedToStage); } private function handleAddedToStage(event:Event):void { } override public function dispatchEvent(event:Event):Boolean { trace(event.type); return super.dispatchEvent(event); } }
this._sprite = new TestSprite(); this._sprite.graphics.beginFill(0x000000); this._sprite.graphics.drawRect(20, 20, 200, 200); this._sprite.graphics.endFill(); this.addChild(this._sprite);
沒有任何痕跡..
嗯太糟糕了,你不能捕捉這些事件:),我想我必須找出另一種方式:) – Fristi 2010-02-27 23:01:02
如果你能夠解釋什麼的背景你正在嘗試做 - 也許在另一個問題 - 我敢肯定有人能夠幫助! :) – alecmce 2010-02-28 04:54:11
我想要更多的事件控制。我的計劃是繼承像Sprite,MovieClip,EventDispatcher等常見的類。我想覆蓋IEventDispatcher的方法將事件放在manager/eventdispatcher中?跟蹤所有事件。 每當一個movieclip或精靈被刪除,我可以只調用一個方法(dispose)來刪除所有的事件監聽器並清理內存。 這很容易通過重寫IEventDispatcher方法來實現,但我想通過不重複自己來減少代碼量。這就是爲什麼我想要捕捉這些事件:P – Fristi 2010-02-28 12:04:04