16までカバーした更新版の記事が書かれていたので紹介します。18ではスクリプトトリガ関連の機能追加はなかったので、これが現状での最新版ということになるかと思います。Kos2015/5/12スクリプトトリガはコンセプトは単純ですが、それぞれについて多くの詳細を学ぶ必要があります。この記事では、これらの情報をより簡単かつ効果的に学習できるよう整理するために、いくつかの異なる観点で分類しました。(英語)トリガの分類スクリプトトリガは、ファイル(file)、ウィンドウ(window)、レイアウト(layout)、オブジェクト(object)の4つのレベルのいずれかで設定されます。5つのファイル(file)レベルのトリガは次のとおり。OnLastWindowCloseOnFileAVPlayerChange唯一のウィンドウ(window)レベルのトリガは次のとおり。OnTimer12のレイアウト(layout)レベルのトリガは次のとおり。OnRecordRevertOnLayoutSizeChangeOnLayoutKeystrokeOnGestureTapOnExternalCommandReceived8つのオブジェクト(object)レベルのトリガは次のとおり。OnObjectExitOnObjectKeystrokeOnObjectModifyOnObjectSaveOnObjectValidateOnPanelSwitchOnObjectAVPlayerChangeOnTimerトリガは、他のスクリプトトリガとは異なり、スクリプトステップとしてインストール(および削除)されます。他のすべてのトリガは、「スクリプトトリガ設定」ダイアログで設定されます。ファイルレベルのトリガは、「ファイルオプション」ダイアログの「スクリプトトリガ」タブで設定します。レイアウトおよびオブジェクトトリガは、レイアウトモードで、そのレイアウトまたはオブジェクトの属性として設定されます。単一のアクションで複数のイベントがトリガされると、それらは次の図に示す順序で処理されます。トリガが起動する順序にはルールがあります:最初に、インターフェイス要素へ入ります(enter)。これは、ウィンドウ→レイアウト→モード→ビュー→レコード→オブジェクトの順で発生します。次は、レイアウト上のオブジェクトとのやりとりです。ユーザが何かを入力したり、スクリプトがデータを変更したりする、などです。これらのスクリプトトリガはオブジェクトとやりとりを行います。いくつかの例外があります。OnExternalCommandReceivedは、レイアウトレベルのトリガで、OnFileAVPlayerChangeはファイルレベルのトリガです。アクションは、インターフェイス要素から出ること(exit)で完了します。これは入る時とは逆に、オブジェクト→レコード→ビュー→モード→レイアウト→ウィンドウの順に行われます。上記の順序とは異なるように見える場合があります。OnObjectExitトリガが設定されたテキストフィールドで入力を行い、その後でOnPanelSwitchトリガが設定されたタブコントロールオブジェクトをクリックすると、OnPanelSwitchはOnObjectExitの後に起動します。これは、以前にアクティブだったオブジェクト(テキストフィールド)が、新しくアクティブになったオブジェクト(タブコントロール)がオブジェクトレベルの一連のトリガ(この場合はOnPanelSwitchを含む)を呼び出す前に、オブジェクトレベルの一連のトリガ(この場合はOnObjectExitを含む)を完了するからです。図に示されている順序は重要ですが、すべての場合に当てはまるわけではありません。OnGestureTapは、OnLayoutSizeChangeではなくOnLayoutKeystrokeの後に表示されていますが、これらのイベントの両方が発生する可能性はないので、この部分の順序は重要ではありません。トリガイベントのキャンセル(イベントの前または後)スクリプトトリガには、トリガイベントの前に処理されるものと、その後に処理されものがあります。フィールドをクリックすると、フォーカスがフィールドに入り、OnObjectEnterトリガが起動します。これは、イベント後のトリガと呼ばれます。フィールド外をクリックすると、OnObjectExitトリガはイベント前のトリガであるため、フォーカスがフィールドから出る前に起動します。FileMakerでは、どのトリガがイベント前であるかを知ることが重要です。いうのも、Falseでスクリプトを終了することにより、これらのトリガのトリガイベントをキャンセルできるからです。[False]で終了すると、ユーザはフィールドから出ること(exit)ができません。これはたとえば、無効な値が入力された場合に役立ちます。どんなルールにも例外はあります。OnObjectSaveトリガはイベント後トリガであり、FileMakerはトリガイベントをキャンセルできます。イベントがキャンセルされても、オブジェクトの値は保存されます。これを説明するのに一つの例が役立つかもしれません。OnObjectSaveトリガが設定されたフィールドの値を変更するとします。次に、フィールドの外をクリックすると、トリガが起動し、falseで終了します。これにより、フィールドから出ることができなくなります。フィールド値に加えた変更は保存されます。14では、3つの新しいスクリプトトリガが導入されました。Playerを使用してオーディオ、ビデオ、イメージメディアが再生/一時停止/停止されたときに何が起こるかを制御する機能を開発者に提供します。OnObjectAVPlayerChangeOnObjectAVPlayerChangeトリガは、オブジェクトフィールドに設定します。オブジェクトフィールドに保存されている画像、音声、ビデオが再生されるとき、および再生が一時停止または停止されるときに起動します。再生が全画面表示かオブジェクトフィールドに埋め込まれているか、メディア変更イベント(再生/一時停止/停止)がユーザまたはスクリプトによって開始されたかどうかに関係なく、起動します。メディアの再生は、次の3つの新しいスクリプトステップを使用してスクリプト化できます。再生中または一時停止中のメディアファイルの設定(全画面か埋め込みか、など)を変更します開発者は、以下の新しい関数を使用して再生状態を決定できます。属性名)関数と同じように動作しますメディアの再生は、コンテナオブジェクトに埋め込まれているか、全画面で実行されます。オーディオまたはビデオメディアの再生中に、ユーザはピンチアウトしてプレーヤを全画面で表示したり、ピンチインして全画面表示を終了できます。再生が埋め込まれている場合、ユーザはピンチインでプレーヤを停止し、ダブルタップで再生と一時停止を切り替えることができます。OnFileAVPlayerChangeOnFileAVPlayerChangeトリガはファイルに設定します。上記の新しいスクリプトステップを使用すると、オブジェクトフィールドに保存されたメディアまたはURLからストリーミングされたメディアの再生を、そのフィールドまたはWebビューアを現在のレイアウトに表示せずにスクリプト化できます。このトリガは、スクリプトステップがメディアを再生/一時停止/停止したとき、またはオーディオまたはビデオが終わりに達してメディアが自動的に停止したときに起動します。上記の新しいスクリプトステップと新しい関数(OnObjectAVPlayerChangeの項)は、OnFileAVPlayerChangeスクリプトトリガでも同様に使用可能です。OnExternalCommandReceivedOnExternalCommandReceivedトリガはレイアウトに設定します。ユーザが外部のAV関連コントロールを押して、次のコマンドのいずれかを実行したときに起動します。使用して、どの外部コマンドが押されたかを検知することができます。外部制御の例は次のとおり。EarPodボタン外部BluetoothキーボードのメディアコントロールキーiOSロック画面のコントロールiOSコントロールパネルのコントロール(画面の下部から上にスワイプしてアクセス)このトリガは、AVプレーヤがアクティブでない場合でも起動することに注意してください。コントロールパネルの再生ボタンをタップすると、その時点でオーディオやビデオを再生していなくても、このトリガが起動します。14では、3つの新しいスクリプトトリガの追加に加えて、OnGestureTapの動作が変更されました。8タッチデバイスでもサポートされるようになりました。サポートされているジェスチャは次のとおりです。14は、他のデバイスでのピンチズームなどのジェスチャーもサポートしています。MacBookでは、トラックパッドをつまんで拡大/縮小ができます。これらのジェスチャーはOnGestureTapトリガを起動しません。リファレンスPDFおよび検証用デモファイル今回の概要は以上です。完全なリファレンスとして、我々がまとめたPDFドキュメントをご覧ください。添付デモファイルを使ってスクリプトトリガの動作を実際に確認してください。デモファイルには、レイアウトにあらゆるタイプのフィールドとオブジェクトが配置されています。ファイル、レイアウト、各オブジェクトには、可能なかぎりすべてのスクリプトトリガが設定されています。3つのクライアント(Pro、WebDirect、Go)を使用してファイルにアクセスし、各クライアントでスクリプトトリガがどのように機能するか確認してください。PDFとデモファイルをダウンロードデモファイルデモファイルのOnFileAVPlayerChangeのテストに関する注意:デモファイルでトリガが起動されるたびに、ダイアログが表示されます。ビデオが全画面で再生されている場合、ダイアログが再生を停止します。Fieldボタンをタップしてください。ビデオの一時停止/再開/停止を試してみてください。次に、Historyボタンをタップして、OnFileAVPlayerChangeトリガがいつどのように発生したかを確認してください。15および16では、新しいスクリプトトリガは導入されませんでした。16には、特に言っておくべき変更が1つあります。」ステップを使用すれば、iOSデバイスがある領域に出入りするときにスクリプトを実行できます。この方法は「OnTimerスクリプトのインストール」ステップに似ています。同じようにこのステップでは、あるイベントに基づいてスクリプトを実行できます。