大家好,
我正在使用 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;
);
我希望這會有所幫助!
-擔