cc.exports.*代替全局变量
来源:互联网 发布:蓝光播放软件 编辑:程序博客网 时间:2024/05/17 07:06
Cocos2d-x 3.5的lua项目生成后,变成了MVC模式,并且,加入了一个全局变量的检测功能。也就是说,你不小心用了全局变量,他会提示你出错!
比如
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
你写成了
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
然后,print结果就会不同,同时你还会创建一个 全局的 tepm 永远不会被释放。这种问题,在lua中很容易遇到(虽然现在有代码提示 还是不太容易出现,但是谁说的准呢!)。
所以,C2d加入了一个全局命名空间的检测,通过setmetatable的方式。该函数在
src/cocos/framework/init.lua
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
有效的帮助开发者避免上述错误!
那么如果我一定要用到全局变量才行呢?例如 require “socket” 的luasocket库
这个问题有若干种解决办法,
1、最简单粗暴的就是直接注释掉着一块。
2、将CC_DISABLE_GLOBAL设置为False
3、在mian.lua的 require “cocos.init”之前 require 所需的库和全局的变量
但是 如果是开发者自己需要使用全局变量。而不是其他库需要用到全局变量的话!
请使用使用官方推荐的方法cc.exports.* 来充当全局变量!
在使用全局变量时直接写变量名即可,即cc.exports.*中的星号
阅读全文
0 0
- cc.exports.*代替全局变量
- cc.exports.gt
- 通过Application代替全局变量
- Android使用Application代替全局变量
- Android使用Application代替全局变量
- [常见错误 及 解决方案系列]USE " cc.exports.* = value " INSTEAD OF SET GLOBAL VARIABLE"
- [常见错误 及 解决方案系列]USE " cc.exports.* = value " INSTEAD OF SET GLOBAL VARIABLE"
- lua常见异常 USE " cc.exports. = value " INSTEAD OF SET GLOBAL VARIABLE"
- xcode中用静态成员函数来代替全局变量
- cc
- cc
- CC
- cc
- cc
- cc++
- cc
- cc
- cc
- ActiveMQ深入浅出(五)——ActiveMQ将消息持久化到数据库
- 定时任务
- natapp使用
- nodejs 127.0.0.1 无法访问
- MySQL易忘常用的知识点
- cc.exports.*代替全局变量
- C的对象编程
- webpack取消严格模式打包use strict
- mybatis之入门到开发(二)之核心配置文件+Mapper映射文件详解
- jeston TK1上编译orbslam2
- webstorm 2017 激活破解
- 添加用户到sudo list
- 微信小程序-跟随菜单(楼梯效果)和循环嵌套加载数据
- kafka消费命令异常