シノプティック スクリプト

 
 
 

シノプティック ビューで作成、実行できるスクリプトは、本質的には Script Editor で作成、実行するスクリプトと同じものです。ただし、シノプティック スクリプトには、特殊変数と、外部ファイルを簡単に取り込む機能が追加されています。シノプティック スクリプトのサイズには制限はありません。

シノプティック スクリプト プロシージャ内の特殊変数

シノプティック スクリプトのプロシージャには、シノプティックが適用されたオブジェクト、リンクをクリックするときに使用されるマウス ボタンやキー モディファイアを識別できる特殊変数が含まれています。

注:[in_obj]のみをサポートする古いシノプティック プロパティを更新し、新しい関数のシグネチャを使用する場合、対応する .htm ファイルをテキスト エディタで開き、<body>を<body version="2">に変更します。

in_obj

この[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]の値が変わる可能性があります。

  • [in_obj]の値は、シノプティック ビューのタイトル バー上の角括弧内に表示されます。

in_mousebutton

[in_mousebutton]変数は、ホットスポットのクリック操作で使用するマウスボタンを示す整数です。スクリプトにこの変数を使用すると、マウス ボタンによるさまざまな操作を実行できます。

  • [0]は、マウスの左ボタンを示します。

  • [1] は、マウスの中央ボタンを示します。

  • [2]は、マウスの右ボタンを示します。

in_keymodifier

[in_keymodifier]変数は、ホットスポットのクリック操作で使用するキー モディファイアを示す整数です。スクリプトにこの変数を使用すると、[Shift]、[Ctrl]、または[Alt]キーによるさまざまな操作を実行できます。

  • [0]の場合は、どのキーも押しません。

  • [1]の場合は、[Shift]キーを押します。

  • [2]の場合は、[Ctrl]キーを押します。

  • [4]の場合は、[Alt]キーを押します。

  • これらのキーを組み合わせた数値は、それぞれのキーの値の合計となります。たとえば、[5]なら、[Shift]キーと[Alt]キーを押します。

コマンド ログをオフにする

通常は、シノプティック ビューから実行されたスクリプトは、各コマンド ラインがコマンド ヒストリに記録されます。ただし、スクリプト内のコマンド ログを一時的にオフにすることができます。そのためには、scripting.cmdlog プリファレンスの現在の値を取得し、それを False に設定し、スクリプトのメイン ブロックを実行し、最後に、元のプリファレンス値に戻します。これによりシノプティック スクリプトのパフォーマンスを上げることができます。「プリファレンス」(『SDK ガイド』)を参照してください。

外部ファイルをインクルードする

#include ステートメントを使用して、シノプティック スクリプトに外部ファイルをインクルードします。これで、作成したヘルパー関数のライブラリを簡単に再利用することができます。インクルードできるファイル数に制限はありません。

外部ファイルは、インクルードするシノプティック(HTML)ファイルと同じディレクトリ内か、または指定する絶対パスのいずれかに存在する必要があります。外部ファイルをインクルードするには、次のフォーマットのいずれかを使用します。

#include "myFile.vbs"
#include "<absolute_path>/myFile.vbs"

ファイルをインクルードすると、外部ファイルの内容全体がシノプティック ファイルの #include ステートメントの位置に挿入された場合と同様に動作します。外部ファイル内で定義されたプロシージャや関数をグローバル レベルで利用する場合は、誤って #include ステートメントをサブルーチン内で使用しないように注意してください。

注:Synoptic Editor でシノプティック ファイルを再度開くと、#include ステートメントが展開されます。ヘルパー関数を外部参照として保持する場合は、テキスト エディタを使用してシノプティック ファイルを修正してください。