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;

  • 相关阅读:
    wsdl和soap(简单使用TCPMon工具)03
    Django-7
    Django-6
    Django-5
    Django-4
    Django-3
    Django-2
    Django-1
    python_控制台输出带颜色的文字方法
    python网络编程
  • 原文地址:https://www.cnblogs.com/luorende/p/9115585.html
Copyright © 2011-2022 走看看