一、Cocos2d-js Module
Cocos2d-js Module(下文简称Module)是一个用于Cocos2d-js游戏引擎模块化编程的一种解决方案。
Module可以让项目如C++的#include、Lua的require等语法那样加载其他文件/模块的内容。
先不谈做Cocos2d-js模块化编程的原因和原理,首先看看具体做了什么。整个解决方案仅包括一个只有100行代码量的名为module.js的文件,对外暴露3个全局函数load、include、dumpModuleInfo,它们分别的作用如下:
- load(name, func)
添加一个模块,第一个参数name代表模块的名字,第二个参数func是添加模块时调用的函数。
// Example
load("GameScene", function(){
var GameScene = cc.Scene.extend({});
return GameScene; // return the module
})
- include(name)
获取一个模块,name是该模块的名称。
// Example
var GameScene = include("GameScene")
- dumpModuleInfo()
打印日志,显示当前所有已经加载过的模块。
// Example
dumpModuleInfo(); // print the GameScene module
这三个函数实现了基础的模块化开发功能。
- load:在Module中一般要求一个文件就是一个模块,load函数作为一个文件的整体(即一个JavaScript文件调用一次load函数),load函