RAMP-TS の画面定義に関連付けられているスクリプトは、JavaScript オブジェクトを定義します。実際には、画面スクリプトは画面と画面で実行できる内容を定義するオブジェクトです。
ここまで、画面の定義にプロパティを追加する概念を扱ってきました。通常、これらは以下に示すようにスクリプトの先頭で定義されます。
{
/* Properties of screen Destination1 */
sCurrentOrder : "",
fSkipIntroduction : false,
fScrolling : true,
この画面定義のさまざまなファンクションは、画面を this.sCurrentOrder、this.sSkipIntroduction、this.fScrolling として参照します。
これらは、画面定義内の状態の維持やスクリプト内の異なるファンクション間のやり取りに役立ちます。
SCREEN("画面名") ファンクションを使用することで、名前付きの画面定義オブジェクトへの参照を取得できます。
例えば、ジャンクション画面 Junction1 にはナビゲーション・スクリプトに次のコードが含まれている場合があります。
var oDest1 = SCREEN("Destination1");
oDest1.fSkipIntroduction = true;
oDest1.fScrolling = false;これにより、Junction1 はデスティネーション画面 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;
}