项目优化

项目优化

开发2D游戏,如何渲染地图和地图上的物品才会更加优化性能呢?

其它问题cuixueying 回复了问题 • 2 人关注 • 1 个回复 • 595 次浏览 • 2016-08-17 13:52 • 来自相关话题

怎么实现同一个工程内分包?

LayaNative原生APP打包相关问题mylukelu 回复了问题 • 5 人关注 • 3 个回复 • 1386 次浏览 • 2015-11-24 16:18 • 来自相关话题

条新动态, 点击查看
layabox

layabox 回答了问题 • 2015-11-04 15:23 • 3 个回复 不感兴趣

怎么实现同一个工程内分包?

赞同来自:

先纠正一下,LayaFlash的分包,并非是一个工程的js去调用另一个工程的js包。
 
完全可以根据自己的需求,将项目的若干个模块进行分包。只是,LayaFlash的分包方案与原生的Flash项目的分包方案有所不同。请参考如下分包介绍!

分包过程大体如... 显示全部 »
先纠正一下,LayaFlash的分包,并非是一个工程的js去调用另一个工程的js包。
 
完全可以根据自己的需求,将项目的若干个模块进行分包。只是,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文件。
 

怎么实现同一个工程内分包?

LayaNative原生APP打包相关问题mylukelu 回复了问题 • 5 人关注 • 3 个回复 • 1386 次浏览 • 2015-11-24 16:18 • 来自相关话题

开发2D游戏,如何渲染地图和地图上的物品才会更加优化性能呢?

回复

其它问题cuixueying 回复了问题 • 2 人关注 • 1 个回复 • 595 次浏览 • 2016-08-17 13:52 • 来自相关话题

怎么实现同一个工程内分包?

回复

LayaNative原生APP打包相关问题mylukelu 回复了问题 • 5 人关注 • 3 个回复 • 1386 次浏览 • 2015-11-24 16:18 • 来自相关话题