本文主要讲解与LayaFlash的场景设置相关的内容,包括场景尺寸设置、背景色、横竖屏、是否显示帧率。
示例项目源码下载:layaFlashStage.zip。
场景也可以跟AS3一样设置舞台场景的对齐方式,以下是示例项目中设置场景大小的方法:
代码中的Event.ADDED_TO_STAGE事件是项目的主文件必须添加的事件,没有这个事件在H5中运行会出现调用stage属性时stage还没有被初始化的情况。以下代码设置了舞台的缩放模式和对齐方式:
stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT;
这两句代码在编译成H5的时候必须加上,否则会出现H5页面无画面,要重新修改浏览器窗口大小才显示画面的现象。
IFlash.setSize()方法设置了场景大小。如果项目使用了基于3D底层的框架(例如使用了Starling框架的项目)需要对代码作如下修改:
/** * 设置3D模式下的舞台模式 * * 获取窗口的宽度与高度,设置到场景尺寸 * */ private function setWindowFullSize() : void { var stageW:int = 0; var stageH:int = 0; __JS__( 'stageW = Laya.window.innerWidth;' ); __JS__( 'stageH = Laya.window.innerHeight;' ); (stageW > 0) && IFlash.setSize(stageW, stageH); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.scaleMode = StageScaleMode.NO_SCALE;//设置舞台的缩放模式和对齐方式 stage.align = StageAlign.TOP_LEFT; //IFlash.setSize(960, 640);//设置场景尺寸 setWindowFullSize(); IFlash.setOrientationEx(1);//是否为横屏模式(默认为横屏模式) IFlash.setBgcolor("#000000");//背景色 IFlash.showInfo(false);//是否显示帧率 }
新定义的setWindowFullSize方法是为了替换之前的IFlash.setSize()方法在使用了基于3D底层的框架项目中设置舞台尺寸而定义,除了这里其余的代码不变。