这一直困扰着我。
使用舞台调整大小时,您可以这样说:
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()
答案 0 :(得分:1)
为了提高性能,最好在文档类中只有一个Event.RESIZE
侦听器。然后将事件传播到所有子类和具有函数的子项,甚至更好地使用Robert Penner的精彩Signals framework。
如果您需要扩展文档类,最简单的方法是将所有内容放在Sprite
内并进行缩放。