Version: 6000.3
语言: 中文
工具提示事件
上下文菜单事件

过渡事件

转换事件会通知您转换状态的变化。

UI Toolkit 在VisualElement的 style 属性被修改。更改VisualElement属性立即在视觉上反映出来。但是,您可以使用transitionUSS 财产在初始结果和最终结果之间逐渐插值。

过渡的生命周期

转换的生命周期有以下阶段:

  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被发送。

转换事件参考表

下表描述了转换事件及其传播阶段:

事件 描述 涓涓细流 气泡升起 可取消
过渡运行事件 创建过渡时发送。 是的
过渡开始事件 在过渡的延迟阶段结束并过渡开始时发送。 是的
过渡结束事件 转换结束时发送。 是的
TransitionCancelEvent (转换取消事件) 取消转换时发送。 是的

行为

每个转换属性都有自己的生命周期和转换事件。您可以使用事件的stylePropertyNames财产。

如果更改了简写 USS 属性,则每个组件也会获得自己的生命周期。例如,如果您将margin,margin-left,margin-right,margin-topmargin-bottom,他们都有自己的TransitionRunEvent,TransitionStartEventTransitionEndEvent,总共 12 个独立的事件。

如果您将transition-delay0TransitionRunEventTransitionStartEvent在几毫秒内一个接一个地发送。

如果您将transition-delay设置为低于以下的值0,转换不会从头开始。例如,使用transition-delay-3seconds 和transition-duration5秒,则TransitionRunEventTransitionStartEventelapsedTime属性设置为3秒,过渡实际上从五秒动画的第三秒开始。

活动列表

本节介绍target,stylePropertyNameselapsedTime每个过渡事件。

过渡运行事件

一个TransitionRunEvent创建过渡时发送事件。

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

过渡开始事件

一个TransitionStartEvent当过渡的延迟阶段结束并且过渡开始时发送事件。

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

过渡结束事件

一个TransitionEndEvent当过渡结束时发送事件。

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

注意TransitionEndEvent如果没有要转换的先前样式状态,例如首次应用或修改样式而没有初始值时,则可能不会触发。发生这种情况是因为 UI 工具包在无法检测到缓存值的更改时跳过转换。要解决此问题,请在应用触发过渡的更改之前设置初始样式值,或者使用schedule.Execute.

TransitionCancelEvent (转换取消事件)

一个TransitionCancelEvent当转换被再次更改的属性中断时,会发送事件。

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

例子

其他资源

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