Version: 2023.1
言語: 日本語
ツールチップイベント
コンテキストメニューイベント

遷移イベント

遷移イベントは、遷移の状態の変化を知らせます。

UI Toolkit は、VisualElement の style プロパティが変更されるときに遷移を使用します。VisualElement のプロパティの変更は、即座に視覚的に反映されます。ただし、transition USS プロパティ を使用すると、初期結果と終了結果を徐々に補間することができます。

遷移のライフサイクル

遷移のライフサイクルには、以下のような段階があります。

  1. VisualElement のプロパティが以下の場合に変更されます。

    • C# のメソッドでクラスを追加または削除する場合。例えば、element.ToggleInClassList() (element は任意の VisualElement)。
    • :hover のようなセレクターを使い USS を使用する場合。
    • 要素の style プロパティを操作する場合。例えば、element.style.backgroundColor = Color.red; (element は任意の VisualElement)。
  2. TransitionRunEvent が送信されます。

  3. 変更されたプロパティの解決された transition-delay プロパティが 0 以外の値を持つ場合、遅延時間の間は何も発生しません。

  4. 遅延後、TransitionStartEvent が送信され、初期値のプロパティ状態で遷移が開始されます。

  5. transition-duration で設定された時間の間、遷移が発生します。その間に,プロパティは初期値から最終値へと移行します。

  6. 遷移中にプロパティが新しい値に変更された場合、TransitionCancelEvent が送信されます。遷移処理はステップ 2 から再開されます。

  7. Transition-duration が経過すると、プロパティは最終的な値に設定されます。TransitionEndEvent が送信されます。

遷移イベントリファレンス表

次の表は、遷移イベントとその伝播フェーズを説明したものです。

イベント 説明  下降伝播 上昇伝播 キャンセル可能
TransitionRunEvent 遷移が作成されたときに送信されます。
TransitionStartEvent 遷移の遅延段階が終了し、遷移が開始されるときに送信されます。
TransitionEndEvent 遷移が終了するときに送信されます。
TransitionCancelEvent 遷移がキャンセルされたときに送信されます。

動作

各遷移プロパティは独自のライフサイクルと独自の遷移イベントを持ちます。現在のプロパティにアクセスするには、イベントの stylePropertyNames プロパティを使用します。

ショートハンドの USS プロパティが変更されると、すべてのコンポーネントも独自のライフサイクルを取得します。例えば、marginmargin-leftmargin-rightmargin-topmargin-bottom を変更すると、これらのコンポーネントは独自の TransitionRunEventTransitionStartEventTransitionEndEvent、つまり、合計 12 の個別のイベントを取得します。

transition-delay0 とすると、TransitionRunEventTransitionStartEvent が数ミリ秒のうちに次々と送信されます。

transition-delay0 以下の値に設定すると、遷移は最初からは開始されません。例えば、transition-delay-3 秒、 transition-duration5 秒に設定すると、TransitionRunEventTransitionStartEventelapsedTime プロパティが 3 秒に設定された状態で送信され、5 秒のアニメーション の 3 秒目で遷移が開始されます。

イベントリスト

ここでは、各遷移イベントの targetstylePropertyNameselapsedTime について説明します。

TransitionRunEvent

TransitionRunEvent イベントは、遷移が作成されたときに送信されます。

  • target: 遷移を実行する要素。
  • stylePropertyNames: 遷移によって変更されるプロパティのリスト。
  • elapsedTime: 遷移開始からの時間。

TransitionStartEvent

TransitionStartEvent イベントは、遷移の遅延段階が終了し、遷移が開始されると送信されます。

  • target: 遷移を実行する要素。
  • stylePropertyNames: 遷移によって変更されるプロパティのリスト。
  • elapsedTime: 遷移開始からの時間。

TransitionEndEvent

TransitionEndEvent イベントは、遷移が終了したときに送信されます。

  • target: 遷移を実行する要素。
  • stylePropertyNames: 遷移によって変更されるプロパティのリスト。
  • elapsedTime: 遷移開始からの時間。

TransitionCancelEvent

TransitionCancelEvent イベントは、プロパティが再び変更されることによって遷移が中断されたときに送信されます。

  • target: 遷移を実行する要素。
  • stylePropertyNames: 遷移によって変更されるプロパティのリスト。
  • elapsedTime: 遷移開始からの時間。

その他の参考資料

ツールチップイベント
コンテキストメニューイベント