2014-01-13 3 views
0

Я использую AS3 с FlashDevelopAS3 добавить прослушиватель событий EnterFrame к подклассу Sprite

CustomClassA extends Sprite 

CustomClassB extends CustomClassA, но и нужно выполнить некоторый код каждый кадр

Есть ли другой способ сделать это, кроме создания CustomClassA удлинить MovieClip вместо Sprite?

+1

Добавить слушателя на сцену, а не к объекту .. – Cherniv

ответ

0

Я попытаюсь создать простой пример, используя фиктивную концепцию, только чтобы объяснить, как это сделать. Вы можете попробовать что-то вроде:

public class CustomClassA extends Sprite 
{ 
    public function CustomClassA() 
    { 
     this.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler, false, 0, true); 
    } 

    private function addedToStageHandler(event:Event):void 
    { 
     this.removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); 
     //start your code here... 
    } 

    public function startEnterFrame():void 
    { 
     this.addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true); 
    } 

    public function stopEnterFrame():void 
    { 
     this.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); 
    } 

    private function enterFrameHandler(event:Event):void 
    { 
     executeSomeCodeEveryFrameMethod(); 
    } 

    public function executeSomeCodeEveryFrameMethod():void 
    { 
     //your enter frame code... 
    } 

    public function dispose():void 
    { 
     stopEnterFrame(); 
     //garbage collection... 
    } 
} 

, а затем создать CustomClassB:

public class CustomClassB extends CustomClassA 
{ 
    public function CustomClassB() 
    { 
    } 

    override public function executeSomeCodeEveryFrameMethod():void 
    { 
     //custom executeSomeCodeEveryFrameMethod 
    } 
} 

вы можете проверить с помощью:

var customClassB:CustomClassB = new CustomClassB(); 
customClassB.startEnterFrame(); 
Смежные вопросы