91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于Cocos Creator腳本執行順序的幾點補充

發布時間:2020-03-11 12:14:08 來源:網絡 閱讀:15950 作者:googlingman 欄目:游戲開發

Cocos Creator開發遠非初看起來那么容易,正早一些可視化開發語言,例如VB,入門很容易,但進入實戰階段,你很可能會發現問題一股腦兒出現。但是,不要怕,根本原因還在于你不熟悉它。其效率不必懷疑,而且官方的主打產品也正是它。開發中,深感官方關于Cocos Creator腳本執行順序尚存在很多不詳細或者透徹的地方;因此,本人結合最近一個時段的學習,作以下幾點補充。

一,官方文檔最重要

地址是:http://docs.cocos.com/creator/manual/zh/scripting/execution-order.html
但是,其中提倡使用統一的控制腳本來初始化其他腳本這一部分尚有一些疑點,例如官方給出的示例代碼是:

// Game.js

const Player = require('Player');
const Enemy = require('Enemy');
const Menu = require('Menu');

cc.Class({
    extends: cc.Component,
    properties: {
        player: Player,
        enemy: Enemy,
        menu: Menu
    },

    onLoad: function () {
        this.player.init();
        this.enemy.init();
        this.menu.init();
    }
});

但是,當三個腳本Player.js,Enemy.js和Menu.js分別掛載到一些UI組件上時,這個Game.js本身掛載到哪里?只是簡單地創建一個與最外層Canvas同級的空節點上并把它掛載到上面去嗎?通過我的試驗分析,這是存在問題的。

二、同一節點上腳本的執行順序

官方的結論是:
“在同一個節點上的組件腳本執行順序,可以通過組件在 屬性檢查器 里的排列順序來控制。排列在上的組件會先于排列在下的組件執行。我們可以通過組件右上角的齒輪按鈕里的 Move Up 和 Move Down 菜單來調整組件的排列順序和執行順序。”
這個沒有什么可值得懷疑的,也很好理解。

三、后代節點上掛載的腳本的執行時機

若某節點是父節點,其下有一個子節點,且這父子節點都各自掛載一些腳本,則執行順序是先執行父節點上的腳本(可能有多個),再執行子節點上的腳本。

四、兄弟節點上掛載的腳本的執行順序

此種情況下,按照自上而下的順序執行各節點上掛載的腳本代碼。

五、一般情形下掛載腳本執行順序

若有如下所示的節點及腳本的掛載結構圖:

Canvas1(本身掛載有S1.JS腳本)
其下有子節點BALL(此節點掛載有S11.JS腳本)
Game(本身掛載有S2.JS腳本)
其下有子節點PLATFORM(此節點掛載有S21.JS腳本)

于是,根據上面分析有下面的腳本執行順序:
S1.JS S11.JS S2.JS S21.JS

六、非使用cc.Class定義的非繼承自cc.Component腳本文件的執行時機

例如腳本文件Physics-Settings.js:

console.info("I am here...");
let physicsManager = cc.director.getPhysicsManager();
physicsManager.enabled = true;

physicsManager.debugDrawFlags = 
    // 0;
    // cc.PhysicsManager.DrawBits.e_aabbBit |
    cc.PhysicsManager.DrawBits.e_jointBit |
    cc.PhysicsManager.DrawBits.e_shapeBit
    ;

此腳本的加載非常之早,在所有軟件自定義腳本的開發之前加載,有下圖為證:
關于Cocos Creator腳本執行順序的幾點補充

因此,由上圖可見,程序中所有腳本的加載順序為:

Cocos2d 引擎
插件腳本(有多個的話按項目中的路徑字母順序依次加載)
普通腳本(打包后只有一個文件,內部按 require 的依賴順序依次初始化)

七、小結

Cocos Creator入門容易,深入掌握也不易,但隨著官方提供支持的不斷豐富,相信會進一步簡化我們的學習。有關JS腳本開發技術,更是Cocos Creator開發中的重中之重,隨著對這個工具的不斷深入,需要我們也不斷深入掌握JS開發技術。本文僅是本人近期一個BOX2D類小游戲開發過程中結合自己使用總結出的一點小體會,不當處還希望各位多多批評。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

睢宁县| 连平县| 奇台县| 福州市| 定南县| 安远县| 昭苏县| 辉南县| 卢氏县| 治多县| 偃师市| 扎囊县| 西乌| 九台市| 宜宾市| 中宁县| 朔州市| 樟树市| 红安县| 乐业县| 炉霍县| 从江县| 遂宁市| 嘉禾县| 芜湖县| 乌兰察布市| 濮阳市| 阿鲁科尔沁旗| 龙泉市| 赤峰市| 蓬安县| 七台河市| 大城县| 修文县| 怀柔区| 河源市| 绥芬河市| 宕昌县| 乌兰察布市| 恩施市| 清镇市|