1. 程式人生 > >Cocos Creator 記錄七-全域性變數

Cocos Creator 記錄七-全域性變數

全域性變數

由於所有外掛指令碼都保證了會在普通指令碼之前載入,那麼除了用來載入外掛,你還可以利用這個特性宣告一些特殊的全域性變數。你可以在專案中新增這樣一個指令碼,並且設定“匯入為外掛”:

/* globals.js */

// 定義新建元件的預設值
window.DEFAULT_IP = "192.168.1.1";

// 定義元件開關
window.ENABLE_NET_DEBUGGER = true;

// 定義引擎 API 縮寫(僅適用於建構函式)
window.V2 = cc.Vec2;
接下來你就能在任意的普通指令碼中直接訪問它們:

/* 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, start: function () { // 在開始後就移除該元件 this.destroy(); } }); }

標準網路介面

在 Cocos Creator 中,我們支援 Web 平臺上最廣泛使用的標準網路介面:

XMLHttpRequest:用於短連線
WebSocket:用於長連線
當然,在 Web 平臺,瀏覽器原生就支援這兩個介面,之所以說 Cocos Creator 支援,是因為在釋出原生版本時,使用者使用這兩個網路介面的程式碼也是可以執行的。也就是遵循 Cocos 一直秉承的 “一套程式碼,多平臺執行” 原則。

使用方法

XMLHttpRequest 簡單示例:

 var xhr = new XMLHttpRequest();
 xhr.onreadystatechange = function () {
     if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
         var response = xhr.responseText;
         console.log(response);
     }
 };
 xhr.open("GET", url, true);
 xhr.send();

開發者可以直接使用 new XMLHttpRequest() 來建立一個連線物件,也可以通過 cc.loader.getXMLHttpRequest() 來建立,兩者效果一致。

XMLHttpRequest 的標準文件請參考 MDN 中文文件

WebSocket

簡單示例:

 ws = new WebSocket("ws://echo.websocket.org");
 ws.onopen = function (event) {
     console.log("Send Text WS was opened.");
 };
 ws.onmessage = function (event) {
     console.log("response text msg: " + event.data);
 };
 ws.onerror = function (event) {
     console.log("Send Text fired an error");
 };
 ws.onclose = function (event) {
     console.log("WebSocket instance closed.");
 };

 setTimeout(function () {
     if (ws.readyState === WebSocket.OPEN) {
         ws.send("Hello WebSocket, I'm a text message.");
     }
     else {
         console.log("WebSocket instance wasn't ready...");
     }
 }, 3);

WebSocket 的標準文件請參考 MDN 中文文件