InteractionTracker.TryUpdateScaleWithAdditionalVelocity 方法

定义

尝试通过添加指定的速度来更新刻度。

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

要添加到刻度的速度。

centerPoint
Vector3 Vector3

float3

新的中心点。

返回

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使用请求的速度作为初始速度计算惯性修饰符的当前动画停止和状态更改

适用于