游戏界面中,经常会有聊天框和功能按钮栏,这些组件都会随着游戏窗口大小的变化而自适应位置
Morn里面有专门的相对定位容器Container,由于Panel,View也继承自Container,也具有相对定位功能,Container详细介绍参考《使用编辑器制作界面》。
3.0版本以后,所有组件均支持相对布局功能,无需再使用Container容器进行相对布局
使用相对定位进行布局
1.创建视图Test1,设置视图宽高width=400,height=300。
2.Test1内拖动了一个Image,Ctrl+B转换为Container,设置相对定位属性right和bottom,期望实现页面大小变化时,始终在页面的右下角 。
下面,我们实例这个页面,并且根据窗口大小动态更改页面大小,代码如下
package { import flash.display.Sprite; import flash.events.Event; import game.ui.Test1UI; import morn.core.handlers.Handler; /**测试相对定位*/ public class Test extends Sprite { private var ui:Test1UI; public function Test() { //初始化组件 App.init(this); //加载资源 App.loader.loadAssets(["assets/comp.swf"], new Handler(loadComplete)); } private function loadComplete():void { ui = new Test1UI(); addChild(ui); stage.addEventListener(Event.RESIZE, onStageResize); onStageResize(null); } private function onStageResize(e:Event):void { ui.width = stage.stageWidth; ui.height = stage.stageHeight; } } }
编译运行如下图
当拉大窗口后,图片依然在右下角10像素位置,很方便使用。