我创建了一个类,它必须注册到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事件不是。知道我在这里做错了什么吗?父级将此对象作为子级添加到舞台中,因此不会出现问题。
答案 0 :(得分:2)
您必须调用stage.invalidate()
方法来发送Event.RENDER
事件。根据{{3}},在呈现屏幕之前调度Event.RENDER
,为所有侦听对象提供更新的机会。我已经使用Event.RENDER
仅在某些内容更改了参数时重绘静态形状。它比重绘每一帧都快。