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;

  • 相关阅读:
    个性化排序算法实践(三)——deepFM算法
    Textbox输入状态提示
    CheckBox状态多选
    TextBox各种设置
    CheckBox多选
    简单的动画
    样式中调用方法
    textbox获取焦点选中内容
    linq一般用法
    自定义表头Datagrid
  • 原文地址:https://www.cnblogs.com/luorende/p/9115585.html
Copyright © 2011-2022 走看看