InteractionTracker 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
處理可在 ExpressionAnimations 中作為目標的輸入邏輯,通常是根據輸入驅動視覺效果的動作。
public ref class InteractionTracker sealed : CompositionObject
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InteractionTracker final : CompositionObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class InteractionTracker : CompositionObject
Public NotInheritable Class InteractionTracker
Inherits CompositionObject
- 繼承
- 屬性
Windows 需求
裝置系列 |
Windows 10 Anniversary Edition (已於 10.0.14393.0 引進)
|
API contract |
Windows.Foundation.UniversalApiContract (已於 v3.0 引進)
|
範例
void SetupSimpleInteractionTracker(Visual viewportVisual, Visual contentVisual)
{
//
// Create the InteractionTracker and set its min/max position and scale. These could
// also be bound to expressions. Note: The scrollable area can be changed from either
// the min or the max position to facilitate content updates/virtualization.
//
_tracker = InteractionTracker.Create(_compositor);
_tracker.MaxPosition = new Vector3(
contentVisual.Size.X - viewportVisual.Size.X,
contentVisual.Size.Y - viewportVisual.Size.Y,
0.0f);
_tracker.MinScale = 0.5f;
_tracker.MaxScale = 4.0f;
//
// Configure the interaction source. Enable input with inertia on all axes.
//
var interactionSource = VisualInteractionSource.Create(viewportVisual);
interactionSource.PositionXSourceMode = InteractionSourceMode.EnabledWithInertia;
interactionSource.PositionYSourceMode = InteractionSourceMode.EnabledWithInertia;
interactionSource.ScaleSourceMode = InteractionSourceMode.EnabledWithInertia;
_tracker.InteractionSources.Add(interactionSource);
//
// Bind the InteractionTracker outputs to the contentVisual.
//
var positionExpression = _compositor.CreateExpressionAnimation("-tracker.Position");
positionExpression.SetReferenceParameter("tracker", _tracker);
contentVisual.StartAnimation("Offset", positionExpression);
var scaleExpression = _compositor.CreateExpressionAnimation("Vector3(tracker.Scale, tracker.Scale, 1.0)");
scaleExpression.SetReferenceParameter("tracker", _tracker);
contentVisual.StartAnimation("Scale", scaleExpression);
}
備註
InteractionTracker 是一種狀態機器,可由使用中輸入或明確呼叫來更新或產生其屬性的動畫來驅動。 InteractionTracker類別旨在啟用輸入來驅動CompositionAnimation的自訂互動體驗。 若要建置互動式體驗,必須將一或多個 VisualInteractionSource與 InteractionTracker產生關聯。
常見案例
IneractionTracker 旨在用於:
- 新增自訂撥動行為,例如撥動 ListView 專案或其他視覺效果以刪除/關閉
- 系結至移動流覽的轉換,例如撥動以在「關閉」和「開啟」狀態之間轉換
- 效果的輸入驅動動畫,例如移動流覽會導致螢幕模糊
- 自訂控制項,例如建立具有不同移動流覽速度或以程式設計方式控制 ScrollViewer 的自訂實作
InteractionTracker 狀態和轉換
InteractionTracker 是具有四種狀態的狀態機器:
- 閒置:沒有作用中的輸入或動畫驅動 InteractionTracker
- 互動:作用中使用者輸入正在推動 InteractionTracker
- 慣性:作用中輸入或程式設計速度所產生的主動動畫會驅動 InteractionTracker
- CustomAnimation:InteractionTracker 的屬性正以動畫顯示。下圖顯示這四種狀態,以及哪些狀態轉換有效。
狀態轉換可能會因為使用者動作 (例如啟動或停止操作) 或因 InteractionTracker 上的方法明確呼叫而發生。 每當發出其中一個明確呼叫時,都會發出 requestID 來追蹤要求是忽略還是造成狀態變更。
請務必注意,InteractionTracker 是在與使用它的應用程式不同的進程中執行。 因此,InteractionTracker 和相關聯類別上的所有方法呼叫都是非同步,如同透過 IInteractionTrackerOwner 介面發出的回呼一樣。
下列描述觸發每個狀態變更的動作:
開始狀態 | 結束狀態 | 可能的觸發程式 |
---|---|---|
閒置 | Interacting | 只有在執行與 InteractionTracker 相關聯之 VisualInteractionSource 的使用者操作時,才會發生此狀態轉換。 |
閒置 | 慣性 | 只有在 InteractionTracker 處於閒置狀態且呼叫 TryUpdatePositionWithVelocity 或 TryUpdateScaleWithVelocity 時,才會發生此狀態轉換。 |
閒置 | CustomAnimation | 當 InteractionTracker 處於閒置狀態且呼叫 TryUpdatePositionWithAnimation 或 TryUpdateScaleWithAnimation 時,就會發生此狀態轉換。 |
Interacting | 慣性 | 只有在傳送至 InteractionTracker 的使用者操作完成時,才會發生此狀態轉換。 當作用中輸入結束時,InteractionTracker 會進入慣性狀態,以及手指釋放速度等資訊,而 InertiaDecayRate 則會判斷慣性狀態期間的行為。 |
慣性 | 閒置 | 當函式 (用來更新位置和/或小數位數的函式) 不再造成變更時,就會發生此狀態轉換。 換句話說,位置和縮放速度都已設為零。 如果呼叫明確更新位置或縮放比例,而不需動畫或速度,也可能會發生此狀態轉換。 這些呼叫將會結束慣性,並使用更新的屬性值轉換為 Idle。 |
慣性 | 慣性 | 當 TryUpdatePositionWithVelocity 或 TryUpdateScaleWithVelocity 已在慣性狀態時呼叫時,就會發生此狀態轉換。 重新輸入慣性會導致重新評估所有 InertiaStateEntered 屬性。 |
慣性 | CustomAnimation | 在慣性 sate 中呼叫 TryUpdatePositionWithAnimation 或 TryUpdateScaleWithAnimation 時,就會發生此狀態轉換。 |
慣性 | Interacting | 在慣性完成之前,從點擊測試到 VisualInteractionSource 的使用者作用中輸入時,就會發生此狀態轉換。 |
CustomAnimation | 閒置 | 當 InteractionTracker 的位置和縮放屬性上設定的所有動畫都已完成時,就會發生此狀態轉換。 |
CustomAnimation | CustomAnimation | 當呼叫 TryUpdatePositionWithAnimation 或 TryUpdateScaleWithAnimation 時,在已處於 CustomAnimation 狀態時,就會發生此狀態轉換。 |
CustomAnimation | 慣性 | 當在 CustomAnimation 狀態中呼叫 TryUpdatePositionWithVelocity 或 TryUpdateScaleWithVelocity 時,就會發生此狀態轉換。 |
CustomAnimation | Interacting | 執行與 InteractionTracker 相關聯之 VisualInteractionSource 的使用者操作時,就會發生此狀態轉換。 |
InteractionTracker 所做的任何狀態轉換都會產生回呼,指出具有 args 的新狀態,其中包含與該狀態相關的資訊,以及造成狀態變更之要求的 requestID。 使用者的作用中操作會導致 requestID 為 0。 任何 Try* 呼叫都會發出 requestID,可用來追蹤哪一個 Try* 呼叫造成狀態變更。 應用程式存留期間的第一個 requestID 會是 1,而每個後續呼叫都會遞增 requestID,這表示每個呼叫都是唯一的。
InteractionTracker 位置和小數位數
InteractionTracker 的兩個最常使用的屬性是位置和小數位數。 每當變更其中一個或兩個屬性時,ValuesChanged 回呼將會以目前值的相關資訊傳送。 由於 InteractionTracker 的非同步本質,透過 InteractionTracker 回呼收到的值是更新 InteractionTracker 及其屬性目前狀態和值之應用程式邏輯的最佳方式。
InteractionTracker 的重要區別在於其位置和縮放比例與任何特定視覺效果的座標空間無關。 在建立 InteractionTracker 時,其位置會將向量的 x、y 和 z 子通道設定為 0,而小數位數會設定為 1。 只有作用中的輸入或 Try* 呼叫可能會導致這些值變更。 每個屬性的最小值和最大值都會決定值可以變動的範圍。 其中一個例外狀況是「overpan」 或 「overzoom」 的概念,其中作用中操作可能會導致值稍微超出互動狀態的最小值或最大值。 不過,當操作完成時,值一律會放在設定範圍內。 CustomAnimations 一律會固定在針對位置和小數位數設定的範圍內。
InteractionTracker 座標空間概念與螢幕座標的概念一致,其中向上/左動作會增加位置值,而向下/右動作會減少位置值。 因此,將位置屬性附加至視覺效果的 Offset 時,非常常見。
根據預設,最小和最大位置通道都是 0,最小和最大刻度值為 1。 如果任一屬性所需的行為是允許它在這些起始值之外變更,則必須更新最小值/最大值。
InteractionTracker 和 ExpressionAnimations
InteractionTracker 會公開各種屬性,可用於 ExpressionAnimation的內容,以驅動 CompositionObject s 之可動畫屬性的更新。 由於 InteractionTracker 的非同步本質,不建議直接查詢這些屬性。 相反地,您應該使用回呼中傳遞的屬性來驅動應用程式邏輯,並參考 ExpressionAnimation 中的值來更新可產生動畫的屬性。
如上所述,InteractionTracker 的兩個最常使用的屬性是 Position 和 Scale 屬性。 這些是會更新以回應使用者輸入和 Try* 呼叫的屬性。 在 ExpressionAnimations 內使用這些屬性會導致 CompositionObjects 的動畫屬性在回應中更新。 例如,InteractionTracker.position 屬性可能會系結至視覺效果的 Offset。 通常也會使用這些屬性來填入 CompositionPropertySet 來追蹤進度,進而驅動一系列的協調動畫。
將輸入導向至 InteractionTracker
設定之後,InteractionTracker 仍然需要最後一個步驟,才能實際接收觸控輸入並回應。 請參閱 VisualInteractionSource 的檔。TryRedirectForManipulation 如需設定傳入輸入以流入 InteractionTracker 的詳細資訊。
版本歷程記錄
Windows 版本 | SDK 版本 | 已新增值 |
---|---|---|
1703 | 15063 | ConfigureCenterPointXInertiaModifiers |
1703 | 15063 | ConfigureCenterPointYInertiaModifiers |
1709 | 16299 | ConfigureVector2PositionInertiaModifiers |
1809 | 17763 | IsInertiaFromImpulse |
1809 | 17763 | TryUpdatePosition (Vector3,InteractionTrackerClampingOption) |
1809 | 17763 | TryUpdatePositionBy (Vector3,InteractionTrackerClampingOption) |
1903 | 18362 | GetBindingMode |
1903 | 18362 | SetBindingMode |
2004 | 19041 | TryUpdatePosition (Vector3,InteractionTrackerClampingOption,InteractionTrackerPositionUpdateOption) |
屬性
Comment |
要與 CompositionObject 建立關聯的字串。 (繼承來源 CompositionObject) |
Compositor |
用來建立這個CompositionObject的Compositor。 (繼承來源 CompositionObject) |
Dispatcher |
CompositionObject的發送器。 (繼承來源 CompositionObject) |
DispatcherQueue |
取得 CompostionObject 的 DispatcherQueue 。 (繼承來源 CompositionObject) |
ImplicitAnimations |
附加至這個 物件的隱含動畫集合。 (繼承來源 CompositionObject) |
InteractionSources |
產生互動的物件集合。 |
IsInertiaFromImpulse |
取得值,這個值表示慣性是否為脈衝的結果。 |
IsPositionRoundingSuggested |
布林值,指出目前是否建議位置舍入。 |
MaxPosition |
InteractionTracker允許的最大位置。 |
MaxScale |
InteractionTracker的最大縮放比例。 |
MinPosition |
InteractionTracker允許的最低位置。 |
MinScale |
InteractionTracker的最小小數位數。 |
NaturalRestingPosition |
InteractionTracker的自然靜止位置。 NaturalRestingPosition 屬性是 InteractionTracker 將在不考慮界限或慣性修飾詞的情況下停止的計算位置。 此屬性通常用於捲動體驗中虛擬化之類的動作,其中請務必知道 InteractionTracker 將停止的位置。 使用 NaturalRestingPosition 屬性有兩個主要使用案例:在 InertiaStateEntered 事件引數中擷取其目前值,或在 建立 慣性修飾詞之類的專案時參考此屬性。 |
NaturalRestingScale |
InteractionTracker的自然靜止縮放比例。 NaturalRestingScale 屬性是 InteractionTracker 不會考慮界限或慣性修飾詞而停止的計算縮放位置。 此屬性通常用於捲動體驗中虛擬化之類的動作,其中請務必知道 InteractionTracker 將停止的位置。 使用 NaturalRestingScale 屬性有兩個主要使用案例:在 InertiaStateEntered 事件引數中擷取其目前值,或在 建立 慣性修飾詞之類的專案時參考此屬性。 |
Owner | |
Position |
InteractionTracker計算的輸出位置。 目前的位置是相對值。 在 Idle 和 CustomAnimation 狀態期間,它一律介於 MinPosition 和 MaxPosition 屬性中指定的值之間。 InteractionTracker 的位置屬性可以在互動和慣性狀態期間超出此範圍,以便在界限上顯示彈跳或抗拒。 InteractionTracker 的位置屬性是 Vector3,代表 X、Y 和 Z 軸中的位置。 X 和 Y 通道是目前 InteractionTracker 將更新的唯一元件。 如果未設定 MinPosition 和 MaxPosition,這個 Vector3 的通道將不會在 0 之外變動 (預設值) 。 |
PositionInertiaDecayRate |
位置的慣性衰減率。 範圍從 0 到 1。 PositionInertiaDecayRate 屬性會定義 當 InteractionTracker 進入慣性且位置變更時,其速度會變慢到停止的速度。 越接近 1, InteractionTracker 的速度會變慢到停止,反之亦然。 定義為 Vector3,每個元件分別代表 x、y、z 的慣性衰減速率。 |
PositionVelocityInPixelsPerSecond |
目前套用至位置的速度。 PositionVelocityInPixelsPerSecond 屬性代表 InteractionTracker 在慣性中目前的位置速度。 此屬性有兩個主要使用案例:在互動發生後立即擷取InteractionTracker的位置速度,或在ExpressionAnimation中參考InteractionTracker的最新速度。 |
Properties |
與 CompositionObject相關聯的屬性集合。 (繼承來源 CompositionObject) |
Scale |
InteractionTracker計算的輸出小數位數。 目前的小數位數是相對值,取決於 MinScale 和 MaxScale 屬性中指定的值。 InteractionTracker的縮放屬性是代表InteractionTracker座標空間中尺規的浮點數。 此值會從 1 開始,並且會根據使用中的輸入或直接呼叫來增加或減少,以更新或建立屬性的動畫效果。 當 InteractionTracker 處於 Idle 或 CustomAnimation 狀態時,Scale 屬性將不會從 1 變更,除非同時預設為 1 的 MinScale 和 MaxScale 屬性都會更新。 InteractionTracker 的縮放比例可以在互動和慣性狀態期間稍微超出此範圍,以顯示界限的彈跳或抗拒。 |
ScaleInertiaDecayRate |
適用于縮放比例的慣性衰減率。 範圍從 0 到 1。 ScaleInertiaDecayRate 屬性會定義 當 InteractionTracker 進入慣性且小數位數變更時停止速度變慢的速率。 越接近 1, InteractionTracker 的速度會變慢到停止,反之亦然。 不同于定義為 Vector3 的 PositionInertiaDecayRate ,ScaleInertiaDecayRate 定義為單一浮點數。 |
ScaleVelocityInPercentPerSecond |
調整的變更速率。 ScaleVelocityInPercentPerSecond 屬性代表 InteractionTracker 目前在慣性中的縮放速度。 在 Interaction 發生之後抓取InteractionTracker的位置速度,或在ExpressionAnimation中參考InteractionTracker的最新速度。 |
方法
AdjustPositionXIfGreaterThanThreshold(Single, Single) |
如果位置 x 座標大於指定的臨界值,則調整其位置 x 座標。 |
AdjustPositionYIfGreaterThanThreshold(Single, Single) |
如果位置 y 座標大於指定的臨界值,則會調整位置 y 座標。 |
Close() |
關閉 CompositionObject 並釋放系統資源。 (繼承來源 CompositionObject) |
ConfigureCenterPointXInertiaModifiers(IIterable<CompositionConditionalValue>) |
取得 CompositionConditionalValue 的已排序清單。 在框架中,當追蹤器處於慣性時,第一個 CompositionConditionalValue 會具有其 「。[條件] 評估為 true,會取代追蹤器搭配其 「」 使用的縮放 CenterPointX 值。值」。 如果沒有評估為 true,則 CenterPointX 不會取代該框架。 |
ConfigureCenterPointYInertiaModifiers(IIterable<CompositionConditionalValue>) |
取得 CompositionConditionalValue 的已排序清單。 在框架中,當追蹤器處於慣性時,第一個 CompositionConditionalValue 會具有其 「。[條件] 評估為 true,會取代追蹤器搭配其 「」 使用的縮放 CenterPointY 值。值」。 如果沒有評估為 true,則 CenterPointY 不會取代該框架。 |
ConfigurePositionXInertiaModifiers(IIterable<InteractionTrackerInertiaModifier>) |
將 InteractionTrackerInertiaModifier 物件的集合套用至 InteractionTracker 的 x 慣性。 ConfigurePositionXInertiaModifiers 方法會將 InteractionTrackerInertiaModifiers 的個人或集合套用至 InteractionTracker的 x 元件。 系統會依照新增至 InteractionTracker的順序來評估每個 X 修飾詞的條件屬性。 因此, InteractionTrackerInertiaModifier 在集合中的順序會與系統評估的順序相同。 |
ConfigurePositionYInertiaModifiers(IIterable<InteractionTrackerInertiaModifier>) |
將 InteractionTrackerInertiaModifier 物件的集合套用至 InteractionTracker 的 y 慣性。 ConfigurePositionYInertiaModifiers 方法會將 InteractionTrackerInertiaModifiers 的個人或集合套用至 InteractionTracker的 y 元件。 系統會根據新增至 InteractionTracker的順序,評估每個 Y 修飾詞的條件屬性。 因此, InteractionTrackerInertiaModifier 在集合中的順序會與系統評估的順序相同。 |
ConfigureScaleInertiaModifiers(IIterable<InteractionTrackerInertiaModifier>) |
將 InteractionTrackerInertiaModifier 物件的集合套用至 InteractionTracker 的規模。 ConfigureScaleInertiaModifiers 方法會將 InteractionTrackerInertiaModifiers 的個人或集合套用至 InteractionTracker的規模元件。 系統會依照新增至 InteractionTracker的順序來評估每個 Scale 修飾詞的條件屬性。 因此, InteractionTrackerInertiaModifier 在集合中的順序會與系統評估的順序相同。 |
ConfigureVector2PositionInertiaModifiers(IIterable<InteractionTrackerVector2InertiaModifier>) |
將 InteractionTrackerInertiaModifier 物件的集合套用至 InteractionTracker 的位置。 |
ConnectAnimation(String, CompositionAnimation) |
連接和動畫。 (繼承來源 CompositionObject) |
Create(Compositor) |
建立 InteractionTracker的實例。 這個 Create 方法會具現化 InteractionTracker。 建立 InteractionTracker 設定屬性之後,附加 VisualInteractionSource,並在 ExpressionAnimation中參考位置或小數位數,作用中的輸入可以驅動 ExpressionAnimation。 |
CreateWithOwner(Compositor, IInteractionTrackerOwner) |
使用指定的擁有者建立 InteractionTracker 的實例。 這個 Create 方法會具現化 InteractionTracker 與擁有者註冊回呼。 建立 InteractionTracker 設定屬性之後,附加 VisualInteractionSource,並在 ExpressionAnimation中參考位置或小數位數,作用中的輸入可以驅動 ExpressionAnimation。 只有在應用程式需要接收InteractionTracker狀態和值的相關回呼時,才需要與擁有者建立InteractionTracker。 |
DisconnectAnimation(String) |
中斷動畫的連線。 (繼承來源 CompositionObject) |
Dispose() |
執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。 (繼承來源 CompositionObject) |
GetBindingMode(InteractionTracker, InteractionTracker) |
擷取兩個互動追蹤器之間的系結軸模式。 |
PopulatePropertyInfo(String, AnimationPropertyInfo) |
定義可以產生動畫效果的屬性。 (繼承來源 CompositionObject) |
SetBindingMode(InteractionTracker, InteractionTracker, InteractionBindingAxisModes) |
設定兩個互動追蹤器之間的系結軸模式。 |
StartAnimation(String, CompositionAnimation) |
將動畫與物件的指定屬性連接,並啟動動畫。 (繼承來源 CompositionObject) |
StartAnimation(String, CompositionAnimation, AnimationController) |
將動畫與物件的指定屬性連接,並啟動動畫。 (繼承來源 CompositionObject) |
StartAnimationGroup(ICompositionAnimationBase) |
啟動動畫群組。 CompositionObject上的StartAnimationGroup 方法可讓您啟動 CompositionAnimationGroup。 群組中的所有動畫都會在 物件上同時啟動。 (繼承來源 CompositionObject) |
StopAnimation(String) |
中斷動畫與指定屬性的連接,並停止動畫。 (繼承來源 CompositionObject) |
StopAnimationGroup(ICompositionAnimationBase) |
停止動畫群組。 (繼承來源 CompositionObject) |
TryGetAnimationController(String) |
傳回在指定屬性上執行之動畫的 AnimationController。 (繼承來源 CompositionObject) |
TryUpdatePosition(Vector3) |
嘗試更新 InteractionTracker的位置。 TryUpdatePosition 方法會將 InteractionTracker 的位置更新為指定為參數的 Vector3 位置。 TryUpdatePosition 可用來以宣告方式定義 InteractionTracker 在任何時間點的位置, (一開始、從某些狀態輸入的事件等 ) 。 TryUpdatePosition 可以從 Idle、CustomAnimation 或慣性狀態呼叫 –這麼做會將 InteractionTracker 的位置移至定義的位置,並進入閒置狀態。 |
TryUpdatePosition(Vector3, InteractionTrackerClampingOption) |
嘗試使用指定的限制選項來更新 InteractionTracker 的位置。 |
TryUpdatePosition(Vector3, InteractionTrackerClampingOption, InteractionTrackerPositionUpdateOption) |
嘗試使用指定的限制選項來更新 InteractionTracker 的位置。 |
TryUpdatePositionBy(Vector3) |
嘗試依指定的數量調整 InteractionTracker的位置。 TryUpdatePositionBy 方法會依指定為參數的 Vector3 差異來更新 InteractionTracker 的目前位置。 與 TryUpdatePosition 類似,TryUpdatePositionBy是用來以宣告方式依定義的差異移動 InteractionTracker ,而不需要動畫或慣性。 TryUpdatePositionBy 可以從 Idle、CustomAnimation 或慣性狀態呼叫,這麼做會依定義的差異移動 InteractionTracker 的位置,並進入閒置狀態。 |
TryUpdatePositionBy(Vector3, InteractionTrackerClampingOption) |
嘗試使用指定的限制選項,依指定的數量調整 InteractionTracker 的位置。 |
TryUpdatePositionWithAdditionalVelocity(Vector3) |
嘗試藉由新增速度來更新 InteractionTracker的位置。 TryUpdatePositionWithAdditionalVelocity 方法會將輸入 Vector3 新增為 InteractionTracker目前速度的額外速度。 因此,由於 InteractionTracker 的速度現在已變更, 因此 InteractionTracker 的目標其餘位置現在會變更。 TryUpdatePositionWithAdditionalVelocity 可以從 Idle、Inertia 或 CustomAnimation 狀態呼叫 –這麼做會新增或更新 InteractionTracker 的速度並進入慣性狀態。 |
TryUpdatePositionWithAnimation(CompositionAnimation) |
嘗試套用動畫來更新 InteractionTracker的位置。 TryUpdatePositionWithAnimation 方法會根據CompositionAnimation輸入做為參數來更新InteractionTracker的位置。 這個方法用於 互動Tracker 的動作需要由特定動畫定義,而不是傳統的慣性體驗。 TryUpdatePositionWithAnimation 可以從 Idle 或 Inertia 狀態呼叫 ,如此一來, InteractionTracker 的位置將會由定義的動畫驅動,並進入 CustomAnimation 狀態。 |
TryUpdateScale(Single, Vector3) |
嘗試將小數位數更新為指定的值。 TryUpdateScale 方法會將 InteractionTracker 的縮放位置更新為指定為參數的 Scale 位置和中心點。 TryUpdateScale 可用來以宣告方式定義任何時間點的 InteractionTracker 小數位數, (一開始、從某些狀態輸入的事件等 ) 。 TryUpdateScale 可以從 Idle、CustomAnimation 或 Inertia 狀態呼叫 ,這麼做會將 InteractionTracker 的縮放位置移至定義的位置,並進入閒置狀態。 |
TryUpdateScaleWithAdditionalVelocity(Single, Vector3) |
嘗試藉由新增指定的速度來更新尺規。 TryUpdateScaleWithAdditionalVelocity 方法會將代表其他速度的輸入純量新增至 InteractionTracker 目前的速度,並將中心點移至輸入的 Vector3。 因此,由於 InteractionTracker 的速度現在已變更, 因此 InteractionTracker 的目標其餘縮放位置現在會變更。 TryUpdateScaleWithAdditionalVelocity 可以從 Idle、Inertia 或 CustomAnimation 狀態呼叫 –這麼做會新增或更新 InteractionTracker 的速度並進入慣性狀態。 |
TryUpdateScaleWithAnimation(CompositionAnimation, Vector3) |
嘗試使用指定的動畫來更新縮放比例。 TryUpdateScaleWithAnimation 方法會根據輸入為參數的CompositionAnimation來更新InteractionTracker的縮放位置。 這個方法用於 互動Tracker 的動作需要由特定動畫定義,而不是傳統的慣性體驗。 TryUpdateScaleWithAnimation 可以從 Idle 或 Inertia 狀態呼叫 –這樣做, InteractionTracker 的位置將由定義的動畫驅動,並進入 CustomAnimation 狀態。 |