EXIT_FRAME起泡吗?

时间:2010-11-04 22:25:32

标签: flash actionscript-3 events flex4

根据Flash文档:

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

  

Event.EXIT_FRAME常量定义   一个类型属性的值   exitFrame事件对象。

     

注意:此事件既没有   “捕获阶段”也不是“泡沫阶段”,   这意味着事件监听器必须   直接添加到任何潜力   目标,目标是否在   是否显示列表。

但是,当在子DisplayObject上调用 gotoAndStop 时,会在其容器上引发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 :(得分:0)

您可以尝试使用capture phase,然后将stopPropagation调用到其中。

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

请注意addEventListener末尾的 true