设备适配

发布时间:2015-10-29

   本文主要讲解与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底层的框架项目中设置舞台尺寸而定义,除了这里其余的代码不变。