シノプティック ビューで作成、実行できるスクリプトは、本質的には Script Editor で作成、実行するスクリプトと同じものです。ただし、シノプティック スクリプトには、特殊変数と、外部ファイルを簡単に取り込む機能が追加されています。シノプティック スクリプトのサイズには制限はありません。
シノプティック スクリプトのプロシージャには、シノプティックが適用されたオブジェクト、リンクをクリックするときに使用されるマウス ボタンやキー モディファイアを識別できる特殊変数が含まれています。
この[in_obj]変数は、シノプティック プロパティが適用されたシーン オブジェクトの名前を含む文字列です。また、この変数は自動的に設定されます。つまり、[in_obj]を使用すれば、シーン オブジェクトのあらゆる部分にアクセスしたり、他のオブジェクトにシノプティック ファイルを再利用したりすることができます。たとえば、次のように記述します。
myVis = GetValue (in_obj & ".visibility.viewvis")
また、シノプティック プロパティを持つオブジェクトへのポインタを取得することもできます。
set oObj = GetValue (in_obj)
シノプティック スクリプト プロシージャで[in_obj]を使用する際は、次の点について認識しておく必要があります。
[in_obj]は常に、シノプティック プロパティが適用されたオブジェクトの名前です。これは、シーン オブジェクト自体か、またはオブジェクトがブランチ モードで適用されたシノプティック プロパティを継承する場合は親のいずれかになります。
プライマリ シノプティック ビューがセカンダリ ビューを開いても、[in_obj]の値は変わりません。セカンダリ シノプティック ビューがシーン内のオブジェクトに直接適用されていない場合でも、[in_obj]を使用すれば、それらのビュー内でシーン オブジェクトを参照することができます。
同じシーン オブジェクト内に複数のシノプティック プロパティがある場合は、上下の矢印キーを使用して複数のビュー間を移動することができます。この操作を行うと、たとえば、あるシノプティック プロパティがオブジェクトに直接適用され、別のシノプティック プロパティが親から継承される場合に[in_obj]の値が変わる可能性があります。
通常は、シノプティック ビューから実行されたスクリプトは、各コマンド ラインがコマンド ヒストリに記録されます。ただし、スクリプト内のコマンド ログを一時的にオフにすることができます。そのためには、scripting.cmdlog プリファレンスの現在の値を取得し、それを False に設定し、スクリプトのメイン ブロックを実行し、最後に、元のプリファレンス値に戻します。これによりシノプティック スクリプトのパフォーマンスを上げることができます。「プリファレンス」(『SDK ガイド』)を参照してください。
#include ステートメントを使用して、シノプティック スクリプトに外部ファイルをインクルードします。これで、作成したヘルパー関数のライブラリを簡単に再利用することができます。インクルードできるファイル数に制限はありません。
外部ファイルは、インクルードするシノプティック(HTML)ファイルと同じディレクトリ内か、または指定する絶対パスのいずれかに存在する必要があります。外部ファイルをインクルードするには、次のフォーマットのいずれかを使用します。
#include "myFile.vbs" #include "<absolute_path>/myFile.vbs"
ファイルをインクルードすると、外部ファイルの内容全体がシノプティック ファイルの #include ステートメントの位置に挿入された場合と同様に動作します。外部ファイル内で定義されたプロシージャや関数をグローバル レベルで利用する場合は、誤って #include ステートメントをサブルーチン内で使用しないように注意してください。