Version: Unity 6.0 (6000.0)
语言 : 中文
工具提示事件
上下文菜单事件

过渡事件

过渡事件会告知您过渡状态的变化。

UI 工具包在修改 VisualElement 的样式属性时使用过渡。对 VisualElement 属性的更改会立即直观体现。但是,您可以使用 transition USS 属性在初始结果和最终结果之间逐步插值。

过渡的生命周期

过渡的生命周期包括以下几个阶段:

  1. 当您执行以下操作时,会修改 VisualElement 的属性:

    • 使用 C# 方法添加或删除类。例如:element.ToggleInClassList()(其中 element 是任何 VisualElement)。
    • 将 USS 与 :hover 等选择器结合使用。
    • 操作元素的 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-delay 设置为 0,则会在几毫秒内相继发送 TransitionRunEventTransitionStartEvent

如果将 transition-delay 设置为低于 0 的值,过渡不会在起点开始。例如,如果 transition-delay-3 秒,transition-duration5 秒,则会在 elapsedTime 属性设置为 3 秒发送 TransitionRunEventTransitionStartEvent,并且过渡实际上从五秒动画的第三秒开始。

事件列表

本节介绍每个过渡事件的 targetstylePropertyNameselapsedTime

TransitionRunEvent

创建过渡时发送 TransitionRunEvent 事件。

  • target:执行过渡的元素。
  • stylePropertyNames:过渡修改的属性列表。
  • elapsedTime:自过渡开始以来的时间。

TransitionStartEvent

当过渡的延迟阶段结束和过渡开始时发送 TransitionStartEvent 事件。

  • target:执行过渡的元素。
  • stylePropertyNames:过渡修改的属性列表。
  • elapsedTime:自过渡开始以来的时间。

TransitionEndEvent

过渡结束时发送 TransitionEndEvent 事件。

  • target:执行过渡的元素。
  • stylePropertyNames:过渡修改的属性列表。
  • elapsedTime:自过渡开始以来的时间。

TransitionCancelEvent

当过渡因属性再次更改而中断时,将发送 TransitionCancelEvent 事件。

  • target:执行过渡的元素。
  • stylePropertyNames:过渡修改的属性列表。
  • elapsedTime:自过渡开始以来的时间。

示例

其他资源

工具提示事件
上下文菜单事件