画面参照を使用する
RAMP-TSの画面定義に関連付けられているスクリプトは、JavaScriptオブジェクトを定義します。実際には、画面スクリプトは画面と画面で実行できる内容を定義するオブジェクトです。
ここまで、画面の定義にプロパティを追加する概念を扱ってきました。通常、これらは以下に示すようにスクリプトの先頭で定義されます。
{
/* Properties of screen Destination1 */
sCurrentOrder : "",
fSkipIntroduction : false,
fScrolling : true,
この画面定義のさまざまなファンクションはthis.sCurrentOrder、this.sSkipIntroduction、this.fScrollingとして画面を参照します。
これらは、画面定義内の状態の維持やスクリプト内の異なるファンクション間のやり取りに役立ちます。
SCREEN(「画面名」)ファンクションを使用することで、名前付きの画面定義オブジェクトへの参照を取得できます。
例えば、Junction画面Junction1はナビゲーション・スクリプトにこのコードを含んでいる場合があります。
var oDest1 = SCREEN("Destination1");
oDest1.fSkipIntroduction = true;
oDest1.fScrolling = false;
これにより、Junction1はDestination画面Destination1で定義されているプロパティばかりでなく、メソッドにも直接アクセスすることができます。
これは、次のようにコード化されていた可能性があります。
SCREEN("Destination1").fSkipIntroduction = true;
SCREEN("Destination1").fScrolling
しかし、これは次の2つの理由により最適な解決策ではありません。
· 何らかの理由により、画面"Destination1"の定義が見つからない場合、SCREEN()はNULL参照を返し、スクリプトは失敗します。
· 文字列"Destination1"をオブジェクト参照に2回変換する必要があり、効率的ではありません。
したがって、このコードの最も適切なフォームは以下のようになります。
var oDest1 = SCREEN("Destination1");
if (oDest1 != null)
{
oDest1.fSkipIntroduction = true;
oDest1.fScrolling = false;
}