新人~如何获取其他脚本中的全局变量?

如图:


我使用getComponent获取节点上的脚本组件后再引用全局变量似乎找不到值~
就是"getComponent(“Control”).Line"这种方式报underfine

如果你看下构建后的代码就会发现,每个js脚本都会经过一次封装,无法使用其他脚本全局变量的原因是,在构建时每个脚本都会注入use strict。脚本变量就会被锁定在当前作用域。需要全局变量还是把该字段注册在window下。"getComponent(“Control”).Line"这种方式的话,你需要把变量字段丢在该脚本的component里。或者你可以通过modules.export的方式。

官方文档里有:
http://www.cocos.com/docs/creator/scripting/access-node-component.html#global_variable

我用的是模块访问。你写一个文件,比如叫Common.js

module.exports = {

CURRENT_LEVEL : 1,
COLOR_Yellow : 0,
COLOR_Blue : 1,
COLOR_Green : 2,

}

别的模块想使用,在文件最开始写var Common = require(‘Common’);

想用变量的时候Common.CURRENT_LEVEL 这样用就行

1赞

你这样存在在当前脚本去调用就调用不了的问题,老铁,你需要把需要export的对象给声明出来,好在当前脚本引用

1赞

多谢解答~论坛居然没提示说有人回答~还以为没人回答我了呢~
发完贴子20秒后我想到其实是可以写一个get/set方法来返回变量的:grin:

多谢解答~文档有看到这~就是没想到