EXIT_FRAME вспыхивает? - PullRequest
       11

EXIT_FRAME вспыхивает?

2 голосов
/ 05 ноября 2010

Согласно Flash документам:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#

Константа Event.EXIT_FRAME определяет значение свойства type объекта события exitFrame.

Примечание. Это событие не имеет ни «фазы захвата», ни «пузырьковой фазы», ​​что означает, что прослушиватели событий должны добавляться непосредственно к любым потенциальным целям, независимо от того, находится ли цель в списке отображения или нет.

Однако при вызове gotoAndStop для дочернего объекта DisplayObject событие EXIT_FRAME вызывается в его контейнере, и, похоже, его невозможно остановить.

Например:

        private function init(e:Event = null):void 
  {
   removeEventListener(Event.ADDED_TO_STAGE, init);
   // entry point
   c = new Circle2();
   addChild(c);

   this.addEventListener(Event.ENTER_FRAME, enterFrame);
   this.addEventListener(Event.EXIT_FRAME, exitFrame);
  }

  private function enterFrame(e:Event):void
  {
   trace("enter frame");
   c.setPercent(5); // this calls gotoAndStop()
  }

  private function exitFrame(e:Event):void
  {
   trace("exit frame");
  }

Вывод:

ввод кадра

выход кадра

выход кадра

В конструкторе Circle2, который я пробовалэто

this.addEventListener( Event.EXIT_FRAME, function(e:Event):void
{
 e.stopPropagation();
});

1 Ответ

0 голосов
/ 05 ноября 2010

Вы можете попытаться использовать этап захвата и затем вызвать stopPropagation в нем.

this.addEventListener( Event.EXIT_FRAME, function(e:Event):void
{
    e.stopPropagation();
}, true);

Обратите внимание на true в конце addEventListener.*

...