InteractionTracker.TryUpdateScale(Single, Vector3) 方法

定义

尝试将刻度更新为指定的值。

TryUpdateScale 方法将 InteractionTracker 的缩放位置更新为指定为参数的缩放位置和中心点。 TryUpdateScale 用于在任意时间点以声明方式定义 InteractionTracker 的规模, (在开始时、从某些进入状态的事件等 ) 。 可以从 Idle、CustomAnimation 或 Inertia 状态调用 TryUpdateScale , 这样做会将 InteractionTracker 的缩放位置移动到定义的位置并进入空闲状态。

public:
 virtual int TryUpdateScale(float value, float3 centerPoint) = TryUpdateScale;
int TryUpdateScale(float const& value, float3 const& centerPoint);
public int TryUpdateScale(float value, Vector3 centerPoint);
function tryUpdateScale(value, centerPoint)
Public Function TryUpdateScale (value As Single, centerPoint As Vector3) As Integer

参数

value
Single

float

小数位数的新值。

centerPoint
Vector3 Vector3

float3

新的中心点。

返回

Int32

int

返回请求 ID。 在状态转换时,导致状态更改的请求将包含在参数中。 这些 ID 将从 1 开始,并在应用程序的生存期内随着每次尝试调用而增加。

示例

void SetupInteractionTracker()
{
  // Setup InteractionTracker
  _tracker = InteractionTracker.Create(_compositor);
  _interactionSource.PositionXSourceMode = InteractionSourceMode.EnabledWithInertia;
  _interactionSource.PositionYSourceMode = InteractionSourceMode.EnabledWithInertia;

  _tracker.InteractionSources.Add(_interactionSource);
  _tracker.PositionInertiaDecayRate = new Vector3(0.95f);

  // Update the scale position of InteractionTracker
  _tracker.TryUpdateScale(0.5f, new Vector3(50f));
}

注解

如果 InteractionTracker 处于交互状态 (用户主动操作) ,并且调用了 TryUpdateScale,系统将忽略此请求 - 当发生这种情况时会触发一个可以侦听的事件。 如果从其他状态之一发送,请侦听为 IdleStateEntered 触发的事件,并检查用于标识触发回调的请求的 RequestID 属性。

下表总结了在特定状态下调用此方法时的预期行为:

当前状态业务成效
闲置属性更新到请求的值,无状态更改
正在交互忽略请求
惯性属性更新到请求的值,状态更改为空闲
CustomAnimation属性更新到请求的值,状态更改为空闲

适用于