项目优化
小项目为什么打包后libs文件过大
LayaAir引擎2D • 189*****192 回复了问题 • 1 人关注 • 1 个回复 • 3824 次浏览 • 2018-07-23 17:34
发布的时候关于版本控制问题
LayaAir IDE • 熊猫大侠 回复了问题 • 3 人关注 • 2 个回复 • 3760 次浏览 • 2018-05-21 19:50
怎么实现同一个工程内分包?
LayaAir Native打包 • erwer8363 回复了问题 • 10 人关注 • 4 个回复 • 10939 次浏览 • 2017-10-15 17:01
开发2D游戏,如何渲染地图和地图上的物品才会更加优化性能呢?
其它综合交流 • cuixueying 回复了问题 • 3 人关注 • 1 个回复 • 5303 次浏览 • 2016-08-17 13:52
完全可以根据自己的需求,将项目的若干个模块进行分包。只是,LayaFlash的分包方案与原生的Flash项目的分包方案有所不同。请参考如下分包介绍!
分包过程大体如... 显示全部 »
完全可以根据自己的需求,将项目的若干个模块进行分包。只是,LayaFlash的分包方案与原生的Flash项目的分包方案有所不同。请参考如下分包介绍!
分包过程大体如下:
一、AS3项目的分包
1、建立一个分包专用目录,在这个分包目录里开发,或者将原项目要想通过分包引用的文件放到分包目录内。
如图:
http://layaflash.ldc.layabox.com/uploadfile/image/20151109/1447076747702456.png
说明:上图layaFlashSplitJS是AS3项目的目录,layaFlashSplitJS_HomeModule是以后所有分包目录的总目录,在这个目录下,每一个目录下的as文件,包括这个子目录中的文件,在后面的编译环节里,单独编译成一个JS文件,从而实现分包,layaFlashSplitJS_HomeModule这个目录的名字,开发者可以自行定义,这里的命名仅作参考。
2、在layaFlashSplitJS_HomeModule目录中,创建实际的分包目录,如果是已有项目,可以直接把要分包的目录copy过来。如图:
http://layaflash.ldc.layabox.com/uploadfile/image/20151109/1447076786740978.png
3、将总的分包目录导入到项目中,让分包目录中的代码与项目成为一个整体。不同的工具下导外的方式不同,这里以Flash Builder和FlashDevelop进行举例。
A、Flash Builder
http://layaflash.ldc.layabox.com/uploadfile/image/20151109/1447077375899575.png
B、FlashDevelop
点击右边项目栏上方的“项目属性”:
http://layaflash.ldc.layabox.com/uploadfile/image/20151031/1446290721441651.png
再点击“添加类路径”,在随后打开的文件浏览器中定位至分包代码所在的目录:
http://layaflash.ldc.layabox.com/uploadfile/image/20151031/1446290732212993.png
至此AS3项目的分包环节结束,建议每一个大型项目,项目研发之初就规划好分包环节。
二、使用layaFlash引擎的方法去引入分包
1、采用LayaFlash提供的importJS方法引入包文件,比如HomeView.as类是“外部路径”目录下的一个类文件,以在AS3项目中调用这个类为例,我们来看看如何让AS3项目在编译成H5后调用分包文件中的代码。
A、先看看入口文件Main类的代码: package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import login.LoginView;
public class Main extends Sprite
{
public function Main():void
{
if (stage)
init();
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
this.stage.scaleMode = StageScaleMode.NO_SCALE;
this.stage.align = StageAlign.TOP_LEFT;
IFlash.setSize(1000, 600); //2D项目中设置场景尺寸
IFlash.setOrientationEx(1); //是否为横屏模式
IFlash.setBgcolor("#000000"); //背景色
IFlash.showInfo(false); //是否显示帧率
var loginView:LoginView = new LoginVie();
this.addChild(loginView);
}
}
}
B、LoginView类是第一个界面,这个类展示如何引入分包文件: package login
{
import flash.display.Sprite;
import flash.events.Event;
import home.HomeView;
import iflash.method.importJS;
public class LoginView extends Sprite
{
public function LoginView()
{
super();
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
importJS("homeModule.js", homeModuleComplete);
//导入包文件 "homeModule.js"
}
private function homeModuleComplete():void
{
var homeView:HomeView = new HomeView();
this.stage.addChild(homeView);
trace("首页模块加载完毕!");
}
}
}
这里的代码通过调用importJS方法引入了分包文件“homeModule.js”,这里的homeModule.js是通过LayaFlash编译分包目录的代码生成,一会再详细讲一下分包编译配置环节。
三、分包编译配置环节
1、创建一个名为“module.def”的配置文件,此文件需保存在项目源码目录(“src”文件夹)的同级目录下,
如图:
http://layaflash.ldc.layabox.com/uploadfile/image/20151031/1446290563977621.png
2、定义“module.def”文件时的内容如下:
module:"分包对应分包目录1的JS文件名,自己定义"
path:"分包目录所在的绝对路径/分包目录1"
module:"分包对应分包目录2的JS文件名,自己定义"
path:"分包目录所在的绝对路径/分包目录2"
(如果还要继续分包,按照module,path,继续定义即可)
3、完成以上两步后,再进行编译项目的时候,就不会是只有一个完整的全包项目JS,而是除了一个主JS之外,还会编译生成出来各个不同的分包JS,从而实现HTML5项目的JS分包。
如图:
http://layaflash.ldc.layabox.com/uploadfile/image/20151031/1446290888972149.png
该图内,就是分包后,编译出的多个JS文件。
怎么实现同一个工程内分包?
LayaAir Native打包 • erwer8363 回复了问题 • 10 人关注 • 4 个回复 • 10939 次浏览 • 2017-10-15 17:01
开发2D游戏,如何渲染地图和地图上的物品才会更加优化性能呢?
回复其它综合交流 • cuixueying 回复了问题 • 3 人关注 • 1 个回复 • 5303 次浏览 • 2016-08-17 13:52