1

ステージがいつレンダリングされるかを知るために、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イベントはそうではありません。私がここで間違っているかもしれないことについて何か考えはありますか?親はこのオブジェクトを子としてステージに追加しているので、問題になることはありません。

4

1 に答える 1

2

イベントstage.invalidate()をディスパッチするには、メソッドを呼び出す必要があります。AS3リファレンスEvent.RENDERよると、は画面がレンダリングされる直前にディスパッチされ、すべてのリスニングオブジェクトに更新の機会を与えます。私は、何かがパラメータを変更した場合にのみ静的形状を再描画するために使用しました。すべてのフレームを再描画するよりも高速です。Event.RENDEREvent.RENDER

于 2009-08-20T14:42:55.407 に答える