状态机 (State Manager)

使用 State Manager 在您的 Kanzi 应用程序中创建不同的状态。

例如,您可以定义不同状态下按钮的外观和行为,例如当用户选定、按下、按住或松开该按钮时,按钮如何反应。Kanzi 使用其动画系统来为状态之间的过渡制作动画。请参阅 动画系统 (Animation System)。

每个状态机由以下项组成:

  • 状态组。 状态组包含状态,定义控制器属性,以及状态组中状态之间的过渡。一个典型的过渡定义了两个状态的属性值之间的时间段和插值路径。您可以使用所有属性的一般指南定义过渡,使用指定的每个属性的插值,或使用动画项。

  • 状态。 每个状态包含一组属性,这些属性定义了您为其分配状态管理器的节点的外观和行为。在每个状态组中,一次只能激活一个状态。状态还可以通过使用启用属性启用或禁用控件输入、将状态设置为触发器设置中的触发条件,或者通过为每个状态显式定义触发器和操作来定义交互。

  • 状态对象。 状态对象定义了节点在特定状态下的属性。例如,您可以为包含定义按钮外观的 Model 节点的 Button 2D 节点分配一个状态管理器。状态对象使用 Target Object Path 属性设置在 Model 节点中设置的网格的属性。例如,./Mesh。

例如,按钮的状态管理器可以包含三个状态组:按钮按下、按钮释放和悬停在按钮上。每个状态组包含启用和禁用状态,通过状态对象定义按钮在其中一个状态时的外观和行为,以及状态之间的过渡。

您可以通过以下方式定义两种状态之间的变化:

  • 为状态组设置控制器属性,并为每个状态设置该属性的值。这些可以是隐式属性,例如 Button 节点的 Is Down 属性。当属性更改时,无论是作为节点固有逻辑的一部分还是指定的 Set Property 动作或动画,状态都会发生变化。请参阅 使用控制器属性设置状态。

  • 使用 State Manager 操作 Go to State、Next State 和 Previous State。如果您使用 State Manager 操作和控制器属性,请注意,当控制器属性更改时,它会覆盖先前设置的状态。请参阅 使用状态管理器操作来设置状态。

通过完成以下教程之一学习如何使用状态机:

缓动函数

使用缓动函数使 UI 元素更逼真。因为现实生活中的物体从不立即开始或停止,适当的缓动函数可以帮助您创造更愉悦的用户体验。

请参阅 使用状态迁移。

将鼠标悬停在缓动函数的图像上查看其创建的动画类型。

返回

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Bounce

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Circle

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Cubic

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Elastic

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Exponential

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Linear

缓入,缓出,缓入缓出

Power

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Quadratic

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Quartic

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Quintic

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Sine

缓入 (Ease in)

缓出 (Ease out)

缓入缓出

Smoother step

缓入,缓出

缓入缓出

平滑步进

缓入,缓出

缓入缓出

步骤

缓入,缓出

缓入缓出

另请参阅

教程:创建一个按钮

教程:创建一个切换按钮

教程:创建集群指示器

使用状态机

使用状态迁移

动画系统 (Animation System)