InteractionTracker.TryUpdateScale(Single, Vector3) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
尝试将刻度更新为指定的值。
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
小数位数的新值。
返回
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 | 属性更新到请求的值,状态更改为空闲 |