如何处理Actionscript3应用程序中的Stage.RESIZE阶段?

时间:2013-07-03 12:50:43

标签: actionscript-3 events resize

这一直困扰着我。

使用舞台调整大小时,您可以这样说:

public class Preload extends MovieClip
{
     protected var main:Main;

     public function preloader()
     {

          this.main = new Main();
          this.addChild(this.main);

          stage.addEventListener(Event.RESIZE, this.onResize);
     }

     protected function onResize(e:Event): void
     {
          this.main.x = stage.stageWidth>>1;
          this.main.y = stage.stageHeight>>1;
     }

}

如果Main需要调整大小怎么办?我有许多响应resize事件的系统,我不知道是否应该在每个屏幕上添加一个Stage Event.RESIZE监听器,或者是否应该从一个位置控制它。

例如,将this.main.resize()添加到上面的onResize侦听器,然后在我的屏幕上实现IResizable接口,例如?

什么是最佳做法?

编辑:或者应该调整大小是更通用的一部分,如invalidate()

1 个答案:

答案 0 :(得分:1)

为了提高性能,最好在文档类中只有一个Event.RESIZE侦听器。然后将事件传播到所有子类和具有函数的子项,甚至更好地使用Robert Penner的精彩Signals framework

如果您需要扩展文档类,最简单的方法是将所有内容放在Sprite内并进行缩放。