我做了一个类,其具有注册到Event.RENDER事件,以使得平台正在呈现时它将知道。我的代码的简化版本是这样的:

package
{
   import flash.events.Event;
   import flash.display.Sprite;
   public final class Test extends Sprite
   {
        public final function Test()
        {
            addEventListener(Event.ADDED_TO_STAGE,added,false,0,true);
        }

        private final function added(event:Event):void
        {
            trace("added to stage");
            stage.addEventListener(Event.RENDER, renderHandler,false,0,true);
        }

        private final function renderHandler(event:Event):void
        {
            trace("Event.RENDER dispatched!");
        }
   }
}

在Event.ADDED_TO_STAGE事件被分派。然而,Event.RENDER事件不是。任何想法,我可能做错了什么?父是添加该对象作为子到舞台,使得不能成为问题。

有帮助吗?

解决方案

您必须调用stage.invalidate()方法分派Event.RENDER事件。按照 AS3参考Event.RENDER被分派屏幕呈现之前,让所有侦听对象更新的机会。我用Event.RENDER重绘只有当事情已经改变了他们的参数静态形状。它比重绘每帧更快。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top