Cocos Creator 插件脚本(摘自官方文档)
来源:互联网 发布:win7添加打印机usb端口 编辑:程序博客网 时间:2024/05/19 06:51
插件脚本
在 资源管理器 中选中任意一个脚本,就能在 属性检查器 中看到这样一个设置界面,我们可以在这里设置脚本是否“导入为插件”。导入为插件是一个不太常用到的选项,初学者简单了解即可。
- 对组件脚本,数据逻辑而言,一般默认都取消这个选项,这样的脚本简称普通脚本。
- 对第三方插件,或者底层插件,就有可能需要选中选项,这样的脚本简称插件脚本。
这个选项只和脚本有关,具体影响有几个方面:
脚本加载顺序
脚本加载顺序如下:
- Cocos2d 引擎
- 插件脚本(有多个的话按项目中的路径字母顺序依次加载)
- 普通脚本(打包后只有一个文件,内部按 require 的依赖顺序依次初始化)
目标平台兼容性
插件发布后将直接被目标平台加载,所以请检查插件的目标平台兼容性,否则项目发布后插件有可能不能运行。
- 目标平台不提供原生 node.js 支持:例如很多 npm 模块都直接或间接依赖于 node.js,这样的话发布到原生或网页平台后是不能用的。
- 依赖 DOM API 的插件将无法发布到原生平台:网页中可以使用大量的前端插件,例如 jQuery,不过它们有可能依赖于浏览器的 DOM API。依赖这些 API 的插件不能用于原生平台中。
全局变量
由于所有插件脚本都保证了会在普通脚本之前加载,那么除了用来加载插件,你还可以利用这个特性声明一些特殊的全局变量。你可以在项目中添加这样一个脚本,并且设置“导入为插件”:
/* globals.js */// 定义新建组件的默认值var DEFAULT_IP = "192.168.1.1";// 定义组件开关var ENABLE_NET_DEBUGGER = true;// 定义引擎 API 缩写(仅适用于构造函数)var V2 = cc.Vec2;
在上面的插件脚本中,因为作用域是在全局,并不是在脚本内部,所以直接写 var DEFAULT_IP = ...
就能声明全局变量。
接下来你就能在任意的普通脚本中直接访问它们:
/* network.js */cc.Class({ extends: cc.Component, properties: { ip: { default: DEFAULT_IP } }});
/* network_debugger.js */if (ENABLE_NET_DEBUGGER) { // ENABLE_NET_DEBUGGER 时这个组件才生效 cc.Class({ extends: cc.Component, properties: { location: { default: new V2(100, 200) } }, update: function () { ... }, });}else { // 否则这个组件什么也不做 cc.Class({ extends: cc.Component });}
在这个案例中,由于 network.js
和 network_debugger.js
等脚本加载时就已经用到了 globals.js
的变量。如果 globals.js
不是插件脚本,则每个可能用到那些全局变量的脚本都要在最上面声明 require("globals");
,才能保证 globals.js
先加载。
但假如一个全局变量本身就是要在组件 onLoad 时才能初始化,那么建议直接在普通脚本的 onLoad 里直接使用 window.foo = bar
来声明全局变量,不需要使用插件脚本,详见通过全局变量访问。
- 你应当很谨慎地使用全局变量,当你要用全局变量时,应该很清楚自己在做什么,我们并不推荐滥用全局变量,即使要用也最好保证全局变量只读。
- 添加全局变量时,请小心不要和系统已有的全局变量重名。
- 你需要小心确保全局变量使用之前都已初始化和赋值。
- 你可以在插件脚本中自由封装或者扩展 Cocos2d 引擎,但这会提高团队沟通成本,导致脚本难以复用,合并脚本时也容易冲突。
0 0
- Cocos Creator 插件脚本(摘自官方文档)
- Cocos Creator 模块化脚本(摘自官方文档)
- Cocos Creator 脚本执行顺序(摘自官方文档)
- Cocos Creator 动作列表(摘自官方文档)
- Cocos Creator 使用计时器(摘自官方文档)
- Cocos Creator 网络接口(摘自官方文档)
- Cocos Creator 创建和销毁节点(摘自官方文档)
- Cocos Creator 访问节点和组件(摘自官方文档)
- Cocos Creator 常用节点和组件接口(摘自官方文档)
- Cocos Creator 使用 cc.Class 声明类型(摘自官方文档)
- Cocos Creator 生命周期回调(摘自官方文档)
- Cocos Creator 加载和切换场景(摘自官方文档)
- Cocos Creator 监听和发射事件(摘自官方文档)
- Cocos Creator 系统内置事件(摘自官方文档)
- Cocos Creator 玩家输入事件(摘自官方文档)
- Cocos Creator 中使用动作系统(摘自官方文档)
- Cocos Creator 使用对象池(摘自官方文档)
- Cocos Creator 获取和加载资源(摘自官方文档)
- 一位ACM大牛的心得
- 2016银行卡BIN
- Android自定义上拉加载下拉刷新PullToRefreshListView
- poj 3304 Segments 线段与直线相交
- 频带利用率
- Cocos Creator 插件脚本(摘自官方文档)
- idea快捷键
- HDU-1863-畅通工程【最小生成树】
- 中文维基百科上的word2vec实验,python及java版本
- 压缩感知稀疏基之离散哈特莱变换(DHT)和离散W变换
- 枚举 讨厌的青蛙
- nginx 本地nginx.conf配置文件
- android开发过程中解决bug的方法
- 主线程中也不绝对安全的 UI 操作