zoukankan      html  css  js  c++  java
  • Cocos Creator两个类相互引用(调用)

    如果两个类相互引用,脚本加载阶段就会出现循环引用,循环引用将导致脚本加载出错:
    ///////////Game.js
    var Item = require("Item");
    var Game = cc.Class({
    properties: {
    item: {
    default: null,
    type: Item //用 Item 对象
    }
    }
    });
    module.exports = Game;

    //////////Item.js
    var Game = require("Game");
    var Item = cc.Class({
    properties: {
    game: {
    default: null,
    type: Game //用 Game 对象
    }
    }
    });
    module.exports = Item;

    上面两个脚本加载时,由于它们在 require 的过程中形成了闭环,因此加载会出现循环引用的错误,循环引用时 type 就会变为 undefined。
    因此我们提倡使用以下的属性定义方式:

    /////////Game.js
    var Game = cc.Class({
    properties: () => ({ //箭头函数在脚本加载中不会同步执行,而是在所有脚本加载成功后才调用。
    item: {
    default: null,
    type: require("Item")
    }
    })
    });
    module.exports = Game;

    ////////Item.js
    var Item = cc.Class({
    properties: () => ({
    game: {
    default: null,
    type: require("Game")
    }
    })
    });
    module.exports = Item;

  • 相关阅读:
    MySQL之PXC集群
    MySQL大表查询未走索引异常分析
    Redis场景应用之UA池
    MySQL日志剖析
    Redis场景应用之排行榜
    MySQL B+树索引解析
    Redisson分布式锁剖析
    关键字替代符号C++
    并查集按秩合并
    POJ3048
  • 原文地址:https://www.cnblogs.com/luorende/p/9115585.html
Copyright © 2011-2022 走看看