暗号化スクリプトでグローバル変数を使用する方法Jmp13で暗号化されたスクリプトを使用して、事前に割り当てられたグローバル変数を読みたいと思います。
例:
標準のスクリプトで割り当て...
a=0;
b=10;
暗号化されたスクリプトを使用する
if (IsEmpty(a)==1,a=5); // DO NOTHING IF ITS NOT EMPTY
if (IsEmpty(b)==1,b=50); // DO NOTHING IF ITS NOT EMPTY
Write(a);
Write(b);
目標:グローバル変数が未定義の場合は、暗号化されたスクリプトで割り当てます。 グローバル変数が定義されている場合は、定義を使用してください。
暗号化せずに動作します。 また、暗号化されたスクリプトを実行した後、割り当てられたデフォルトグローバルが表示されます。
暗号化されたスクリプトでグローバル変数を使用することは可能ですか?
助けてくれてありがとう。
再:どのようにあなたは暗号化されたスクリプトでグローバル変数を使用することができますまあ、あなたと @Craige_Hales アドインビルダーで[Use the Here namespace ...]オプションをオフにすると、特定の問題が解決するのは当然です。
しかし、私はそれを確信しています @Craige_Hales あなたがそれらを参照するとき、より良いプログラミング/スクリプティング習慣がすべての変数を適切に範囲とすることであることに私と同意するでしょう。
グローバルネームスペースを偶発的な破損から保護するために、[Use the Hereネームスペース...]オプションがデフォルトでオンになっています。
再:どのようにあなたは暗号化されたスクリプトでグローバル変数を使用することができますジェフ、確認してくれてありがとう。はい私は同意する。それはスコープの問題です。ただし、解決策はアドインのそのボックスをオフにすることです。これにより、外部スクリプトはグローバルを設定し、内部アドインはそれを使用できます。ガイドの1つでそれを見つけることができたらいいのにと思います。しかたがない。再:どのようにあなたは暗号化されたスクリプトでグローバル変数を使用することができますこれであなたは答えに近づくでしょう。デフォルトではアドインでHere名前空間を使用するように見えます。そのため、グローバルではなくaを使用する必要があります。
checked by defaultデフォルトでチェックされています
再:どのようにあなたは暗号化されたスクリプトでグローバル変数を使用することができますANSWER ==>修飾されていないJSL変数名のために "こちらの"名前空間を使うのをやめなさい
標準のアドインスクリプトと暗号化されたスクリプトに対して機能します。
Un select: Use the "Here" namespace選択を解除: "Here"名前空間を使用
再:どのようにあなたは暗号化されたスクリプトでグローバル変数を使用することができますこれはスコープと名前空間の問題であり、アドインメニューではここにデフォルトの名前(1) 。
あなたが変数を参照しようとしているなら、あなたはいつも使うべきですスコープ演算子それらを参照する。グローバル変数の有効範囲演算子は::です。
names default to here(1);
::a=0;
a=45;
if(::a==0, show("yes"));
if(here:a == 45, show("yes"));再:どのようにあなたは暗号化されたスクリプトでグローバル変数を使用することができますさらなる説明:問題は暗号化ではなく、アドインにあります。アドインで直接jslを使用すると、同じ問題が発生します。グローバル変数はアドインからは見えません再:どのようにあなたは暗号化されたスクリプトでグローバル変数を使用することができます明確化 問題は、アドインで暗号化されたスクリプトを使用することにあります。
暗号化がスタンドアロンスクリプトとして機能することを確認したところです。
それでは、アドインは別の可変スペースで動作しますか?私はこのアドインの暗号化されたスクリプトから他の変数を見ることができるように奇妙な、
これを完全にデバッグしていないことをお詫び申し上げます。