CocosCreator模块化

本文介绍了Cocos Creator中如何实现模块化脚本,每个脚本文件视为一个模块,使用CommonJS标准,通过require引用模块并利用module.exports导出。作者推荐使用module.exports.functionName = functionName的方式封装和导出模块,达到封装私有变量的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块化脚本

  • Cocos Creator 中的 JavaScript 使用和 Node.js 几乎相同的 CommonJS 标准来实现模块化,简单来说:
    • 每一个单独的脚本文件就构成一个模块
    • 每个模块都是一个单独的作用域
    • 以同步的 require 方法来引用其它模块
    • 设置 module.exports 为导出的变量

定义、引用模块

  • 每一个单独的脚本文件就是一个模块。当你在脚本中声明了一个组件,Creator 会默认把它导出,其它脚本直接 require 这个模块就能使用这个组件。
// Rotate.js

cc.Class({
   extends: cc.Component,
   // ...
});

// SinRotate.js

var Rotate = require("Rotate");

var SinRotate = cc.Class({
    extends: Rotate,
    update: function (dt) {
        this.rotation += this.speed * Math.sin(dt);
    }
});
  • 如果在一个脚本中定义了很多模块,就需要用 module.exports 将其暴露。
  • 和微信小程序里面一样,本人习惯用 module.exports.functionName = functionName 的方式统一导出模块。
//Fruit.js

var Fruit = cc.Class({
	extends: cc.Component,
	...
})
var Apple = cc.Class({
	extends: Fruit,
	···
})
var Orange = cc.Class({
	extends: Fruit,
	...
})

module.exports.Apple = Apple;
module.exports.Orange = Orange;

// main.js

var myFruit = require('Fruit');

var myApple = myFruit.Apple();
var myOrange = myFruit.Orange();
  • 这种写法的原理是:module.exports 是一个空对象,我们导出时,等号左边的 Apple 是指新建一个对象 Apple,等号后面的 Apple 是指这个属性的值是 js 文件中的Apple
  • 我们发现,这样做还达到了封装私有变量的目的。如果我们不去暴露 Fruit 这个类,我们在外部就不能访问这个类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值