CocosCreator學(xué)習(xí)之模塊化腳本
Cocos Creator模塊化腳本
Cocos Creator 允許你將代碼拆分成多個(gè)腳本文件,并且讓它們相互調(diào)用。這個(gè)步驟簡(jiǎn)稱為 模塊化。
模塊化使你可以在 Cocos Creator 中引用其它腳本文件:
- 訪問(wèn)其它文件導(dǎo)出的參數(shù)
- 調(diào)用其它文件導(dǎo)出的方法
- 使用其它文件導(dǎo)出的類型
- 使用或繼承其它 Component
Cocos Creator 中的 JavaScript 使用和 Node.js 幾乎相同的 CommonJS 標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn)模塊化,簡(jiǎn)單來(lái)說(shuō):
- 每一個(gè)單獨(dú)的腳本文件就構(gòu)成一個(gè)模塊
- 每個(gè)模塊都是一個(gè)單獨(dú)的作用域
- 以 同步 的 require 方法來(lái)引用其它模塊
- 設(shè)置 module.exports 為導(dǎo)出的變量
當(dāng)你在腳本中聲明了一個(gè)組件,Creator 會(huì)默認(rèn)把它導(dǎo)出,其它腳本直接 require 這個(gè)模塊就能使用這個(gè)組件。
// Rotate.js cc.Class({ extends: cc.Component, // ... }); SinRotate.js
// SinRotate.js var Rotate = require("Rotate"); var SinRotate = cc.Class({ extends: Rotate, update: function (dt) { this.rotation += this.speed * Math.sin(dt); } });
模塊里不單單能定義組件,實(shí)際上你可以導(dǎo)出任意 JavaScript 對(duì)象。假設(shè)有個(gè)腳本 config.js
:
// config.js - v2 var cfg = { moveSpeed: 10, version: "0.15", showTutorial: true, load: function () { // ... } }; cfg.load(); module.exports = cfg;
現(xiàn)在如果我們要在其它腳本中訪問(wèn) cfg 對(duì)象:
// player.js var config = require("config"); cc.log("speed is", config.moveSpeed);
module.exports
的默認(rèn)值:
當(dāng)你的 module.exports
沒(méi)有任何定義時(shí),Creator 會(huì)自動(dòng)優(yōu)先將 exports
設(shè)置為腳本中定義的 Component。如果腳本沒(méi)定義 Component 但是定義了別的類型的 CCClass,則自動(dòng)把 exports
設(shè)為定義的 CCClass。
導(dǎo)出變量
module.exports
默認(rèn)是一個(gè)空對(duì)象({}
),可以直接往里面增加新的字段。
// foobar.js: module.exports.foo = function () { cc.log("foo"); }; module.exports.bar = function () { cc.log("bar"); };
// test.js: var foobar = require("foobar"); foobar.foo(); // "foo" foobar.bar(); // "bar"
module.exports
的值可以是任意 JavaScript 類型。
// foobar.js: module.exports = { FOO: function () { this.type = "foo"; }, bar: "bar" };
// test.js: var foobar = require("foobar"); var foo = new foobar.FOO(); cc.log(foo.type); // "foo" cc.log(foobar.bar); // "bar"
以上就是CocosCreator學(xué)習(xí)之模塊化腳本的詳細(xì)內(nèi)容,更多關(guān)于CocosCreator模塊化腳本的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Unity3D實(shí)現(xiàn)攝像機(jī)鏡頭移動(dòng)并限制角度
- 詳解CocosCreator中幾種計(jì)時(shí)器的使用方法
- 怎樣在CocosCreator中使用物理引擎關(guān)節(jié)
- 如何在CocosCreator中使用JSZip壓縮
- CocosCreator入門教程之用TS制作第一個(gè)游戲
- 解讀CocosCreator源碼之引擎啟動(dòng)與主循環(huán)
- CocosCreator通用框架設(shè)計(jì)之資源管理
- 如何在CocosCreator中做一個(gè)List
- 如何在CocosCreator中使用http和WebSocket
- 剖析CocosCreator新資源管理系統(tǒng)
- CocosCreator怎樣使用cc.follow進(jìn)行鏡頭跟隨
相關(guān)文章
通過(guò)js動(dòng)態(tài)操作table(新增,刪除相關(guān)列信息)
通過(guò)js動(dòng)態(tài)操作table(新增,刪除相關(guān)列信息)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-05-05Javascript實(shí)現(xiàn)漢字和拼音互轉(zhuǎn)的終極方案
網(wǎng)上關(guān)于JS實(shí)現(xiàn)漢字和拼音互轉(zhuǎn)的文章很多,但是比較雜亂,有的不支持多音字、不支持聲調(diào)或者字典文件太大,無(wú)法根據(jù)實(shí)際需要滿足需求。這篇文章給大家修正整理網(wǎng)上的幾種常見(jiàn)方法,文章結(jié)尾還附簡(jiǎn)單的JS拼音輸入法,本文對(duì)大家具有一定的參考借鑒價(jià)值,下面一起看看吧。2016-10-10通過(guò)JS和PHP兩種方法判斷用戶請(qǐng)求時(shí)使用的瀏覽器類型
在做微站點(diǎn)項(xiàng)目開發(fā)的時(shí)候,我們需要判斷當(dāng)前瀏覽器類型是什么。接下來(lái)小編給大家分享通過(guò)JS和PHP兩種方法判斷用戶請(qǐng)求時(shí)使用的瀏覽器類型,非常不錯(cuò),感興趣的朋友一起學(xué)習(xí)吧2016-09-09JS獲取指定月份的天數(shù)兩種實(shí)現(xiàn)方法
這篇文章主要介紹了JS獲取指定月份的天數(shù)兩種實(shí)現(xiàn)方法,需要的朋友可以參考下2018-06-06關(guān)于layui導(dǎo)航欄不展示下拉列表的解決方法
今天小編就為大家分享一篇關(guān)于layui導(dǎo)航欄不展示下拉列表的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09js操作css屬性實(shí)現(xiàn)div層展開關(guān)閉效果的方法
這篇文章主要介紹了js操作css屬性實(shí)現(xiàn)div層展開關(guān)閉效果的方法,涉及javaScript操作css樣式實(shí)現(xiàn)div彈出層的效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05Javascript設(shè)計(jì)模式之觀察者模式(推薦)
觀察者模式有時(shí)也稱為發(fā)布--訂閱模式,在觀察者模式中,有一個(gè)觀察者可以管理所有的目標(biāo),等到有狀態(tài)發(fā)生改變的時(shí)候發(fā)出通知2016-03-03ymPrompt的doHandler方法來(lái)實(shí)現(xiàn)獲取子窗口返回值的方法
今天在寫頁(yè)面時(shí)用到了ymPrompt的win方法來(lái)彈出一個(gè)窗口。由于要用到獲取子窗口返回來(lái)的值判斷是否刷新父窗口,在ymPrompt的組件Demo中一直沒(méi)有找到合適的方法實(shí)現(xiàn)2010-06-06