InteractionTracker.TryUpdateScaleWithAdditionalVelocity 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
尝试通过添加指定的速度来更新刻度。
TryUpdateScaleWithAdditionalVelocity 方法将输入的标量添加到 InteractionTracker 的当前速度,并将中心点移动到输入的 Vector3。 因此,由于 InteractionTracker 的速度现已更改,因此 InteractionTracker 的目标静态缩放位置现在会更改。 TryUpdateScaleWithAdditionalVelocity 可以从空闲、惯性或 CustomAnimation 状态调用 - 这样做将添加或更新 InteractionTracker 的速度并进入惯性状态。
public:
virtual int TryUpdateScaleWithAdditionalVelocity(float velocityInPercentPerSecond, float3 centerPoint) = TryUpdateScaleWithAdditionalVelocity;
int TryUpdateScaleWithAdditionalVelocity(float const& velocityInPercentPerSecond, float3 const& centerPoint);
public int TryUpdateScaleWithAdditionalVelocity(float velocityInPercentPerSecond, Vector3 centerPoint);
function tryUpdateScaleWithAdditionalVelocity(velocityInPercentPerSecond, centerPoint)
Public Function TryUpdateScaleWithAdditionalVelocity (velocityInPercentPerSecond As Single, centerPoint As Vector3) As Integer
参数
- velocityInPercentPerSecond
-
Single
float
要添加到刻度的速度。
返回
Int32
int
返回请求 ID。 在状态转换时,导致状态更改的请求将包含在参数中。 这些 ID 将从 1 开始,并在应用程序的生存期内随着每次尝试调用而增加。
示例
// Listen for the InertiaStateEntered event
public void InertiaStateEntered(InteractionTracker sender, InteractionTrackerInertiaStateEnteredArgs args)
{
// Adding velocity to InteractionTracker if condition met
if (_extraVelocityNeeded)
{
// Adding velocity to the scale motion.
_tracker.TryUpdateScaleWithAdditionalVelocity(3.0f, new Vector3(75f));
}
}
注解
如果 InteractionTracker 处于交互状态 (用户主动操作) ,并且调用 TryUpdateScaleWithAdditionalVelocity,系统将忽略此请求 - 当发生这种情况时会触发一个可以侦听的事件。 如果从其他状态之一发送,请侦听为 InertiaStateEntered 触发的事件,并检查用于标识触发回调的请求的 RequestId 属性。
下表汇总了在特定状态下调用此方法时的预期行为:
当前状态 | 业务成效 |
---|---|
闲置 | 使用请求的速度作为初始速度评估惯性和惯性修饰符的状态更改 |
正在交互 | 请求已忽略 |
惯性 | 在状态重新进入惯性) (重启惯性,并且使用请求的速度添加到当前速度来评估惯性修饰符 |
CustomAnimation | 使用请求的速度作为初始速度计算惯性修饰符的当前动画停止和状态更改 |