トリガー (Triggers)¶
トリガーとアクションを使用してインタラクションを作成します。トリガーを使用して、プロパティを特定の値に設定したり、アプリケーションの状態を設定したりするアクションを開始します。
例えば、Kanzi はユーザー入力からメッセージを生成し、これらのメッセージは指定された動作に従ってノードによって処理されます。
ノードは、List Box ノードでのスクロールなど、メッセージ処理の動作の大部分を定義します。しかし、アプリケーションの要件を満たすために、追加の動作を定義することができます。例えば、Button ノードはユーザーがそのボタンをクリックしたときにクリックメッセージを送信しますが、送信されたクリックメッセージの後に何が起こるかを定義することができます。例として、クリックがユーザーがクリックしたボタンをハイライトするアニメーションをトリガーするアクションがあります。
すべての Kanzi ノードはメッセージを送受信でき、これらのメッセージをトリガーでインターセプトすることができます。いくつかのノードはデフォルトで特定のユーザー入力イベントからメッセージを受信します。例えば、Button ノードはデフォルトでクリックメッセージを受信し、Scroll View ノードはデフォルトでスクロールメッセージを受信します。
Kanzi では、これらの概念はイベント駆動型ロジックの定義に関連しています。
入力とヒットテスト。 入力はまずヒットテストフェーズで認識され、Hit Testable プロパティが有効になっているすべてのノードが参加します。ヒットテストに参加しているノードの上でポインターイベント(例えば、マウスボタンの押下)が行われた場合、最上位のコンポーネントのみが入力を受け取ります。ノードに受け取った入力タイプに反応するマニピュレータがある場合、メッセージ(例えば、クリックメッセージ)を送信することができます。どのノードが入力を受け取るかを定義する、入力マニピュレータの使用、トリガーの使用 を参照してください。
入力マニピュレータ。 入力マニピュレータは、パン、クリック、長押しなどの特定のタイプの入力ジェスチャーに反応します。Kanzi Studio では、すでに特定のタイプのマニピュレータを含むノードを使用することができますし、Kanzi Engine API を使用して入力マニピュレータを追加することもできます。例えば、Scroll View ノードにはパンマニピュレータが含まれ、Button ノードにはクリックマニピュレータが含まれています。入力マニピュレータの使用 を参照してください。
メッセージ。 ノードはメッセージを使用して通信します。メッセージはトンネリングとバブリングと呼ばれるプロセスを通じてノード間を移動します。メッセージはトンネリング中にターゲットノードに到達し、バブリング中にメッセージは祖先ノードに移動します。トリガーがメッセージをインターセプトして処理済みとして設定するまで続きます。これにより、ノード自体やその祖先にトリガーを配置することができます。例えば、複数のボタンの親に radioButtonHandler というトリガーを配置することができます。メッセージの使用 を参照してください。
トリガー。 トリガーはメッセージ、データの変更、またはイベントに反応し、ロジックを適用します。Kanzi には、Set Property や Go to State などの最も一般的なアクションタイプが含まれていますが、Kanzi Engine API を使用して、トリガーがどのメッセージに反応するかを定義できます。各トリガーには、メッセージが他のトリガーにバブルアップするのを防ぐ Set Message Handled プロパティや、トリガーが発動する条件を定義するために使用できる条件などの設定が含まれています。1つのメッセージまたはイベントに複数のトリガーを追加でき、それぞれに特定の設定と条件を持たせることができます。トリガーの使用 と トリガーリファレンス を参照してください。
アクション。 アクションはトリガーの結果です。Kanzi には、Set Property、Write Log、Activate Theme などの一般的なアクションと、Go to State、Set Scroll Target、Activate Activity など、特定のタイプのアイテムを操作するために使用できるアクションがあります。アクションとメッセージのリファレンス を参照してください。