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