皆さんこんにちは、
私はApplicationBuilderを使用しており、多くのモジュールウィンドウとスクリプトが必要です。 さまざまなスクリプト名前空間との間で変数を「送信」または「プッシュ」/「プル」する方法があるかどうか疑問に思っています。
これまで、ほとんどの変数をApplication名前空間で定義してきましたが、非常に忙しくなり始めており、必要に応じて変数がApplication名前空間で参照される関連モジュールの下にスクリプトを配置したいと思います。 1つの解決策はグローバル変数を定義することですが、変数の命名に関する将来の潜在的な問題について心配しています。 これを回避する方法はありますか? または、「Names Default to Here」などを構成して、定義した変数がデフォルトでApplication名前空間になり、すべてのモジュールスクリプトで参照できるようにする方法はありますか?
洞察に感謝します!
やあ@EstelleS -
任意のアプリケーションスクリプト(アプリケーションレベルまたはモジュールレベル)内で、次のコマンドを使用してアプリケーション名前空間にアクセスできます。
appNS = thisApplication<<Get Namespace;
これにより、アプリケーションスコープで変数値を明示的に設定/取得できるようになります。
モジュールスクリプト内のスコープ外の変数は、デフォルトでは特定のモジュール内でのみ表示されます。1つのモジュールが別のモジュール内の変数にアクセスする必要がある場合、最初のモジュールは2番目のモジュールへの参照を持つ必要があります。たとえば、module1にmodule2のインスタンスを次のように作成させることができます。
module2 << CreateInstance(thisModuleInstance);
変数「thisApplication」および「thisModuleInstance」は、アプリケーションおよび(現在の)モジュールインスタンスを参照する自動変数です。これで、module2インスタンスは、渡されたモジュールの名前空間にアクセスすることで、module1インスタンスの変数にアクセスできます。
OnModuleLoad({callingModule},
ns = callingModule << Get Namespace;
);
お役に立てば幸いです。
-ダン