触发器 (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 属性,该属性可防止消息向上传递到其他触发器,以及您可以用来定义触发器触发条件的条件。您可以为单个消息或事件添加多个触发器,每个触发器都可以有特定的设置和条件。请参阅 使用触发器 和 触发器参考。
动作。 动作是触发器的结果。Kanzi 包含 Set Property、Write Log、Activate Theme 等一般动作,以及可用于控制特定类型项的动作,例如 Go to State、Set Scroll Target 或 Activate Activity。请参阅 操作和消息参考。