大家好,
我正在使用 Application Builder,我需要大量的模块窗口和脚本。 我想知道是否有办法在不同的脚本命名空间之间“发送”或“推送”/“拉取”变量。
到目前为止,我一直在 Application 命名空间上定义大多数变量,但它开始变得非常忙碌,我希望将脚本放在其相关模块下,根据需要在 Application 命名空间上引用变量。 一种解决方案是定义全局变量,但我担心变量命名未来可能出现问题。 有没有办法解决这个问题? 或者,有没有办法配置“默认名称到这里”或类似的东西,所以我定义的变量将默认为应用程序命名空间并且可以被所有模块脚本引用?
我很感激任何见解!
你好@EstelleS -
在任何应用程序脚本(应用程序级或模块级)中,您可以通过以下方式访问应用程序命名空间:
appNS = thisApplication<<Get Namespace;
这样,您应该能够在 Application 范围内显式设置/获取变量值。
默认情况下,模块脚本中的未作用域变量仅在给定模块中可见。如果您需要让一个模块访问另一个模块中的变量,则第一个模块需要引用第二个模块。例如,您可能让 module1 创建一个 module2 的实例:
module2 << CreateInstance(thisModuleInstance);
变量“thisApplication”和“thisModuleInstance”是引用应用程序和(当前)模块实例的自动变量。现在,module2 实例可以通过访问传入模块的命名空间来访问 module1 实例中的变量:
OnModuleLoad({callingModule},
ns = callingModule << Get Namespace;
);
我希望这会有所帮助!
-担