コンテンツにスキップ

AnimationController クラス

指定された範囲の値をフレーム単位で更新するアニメーションを制御します。

名前空間: FloatSoda.Animation
アセンブリ: FloatSoda.dll

public class AnimationController : IAnimation<double>, IListenable, IDisposable

object ← AnimationController

IAnimation<double>, IListenable, IDisposable

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

再生中はVsyncからフレーム通知を受け、値または状態が変化した場合に通知を発行します。

範囲内の進行率へ適用する曲線を取得します。既定では線形に補間します。

public ICurve Curve { get; init; }

ICurve

Forward/Reverseの標準所要時間。

public required TimeSpan Duration { get; init; }

TimeSpan

アニメーション値の下限を取得します。既定値は0です。

public double LowerBound { get; init; }

double

現在の進行状態を取得します。

public AnimationStatus Status { get; }

AnimationStatus

アニメーション値の上限を取得します。既定値は1です。

public double UpperBound { get; init; }

double

現在のアニメーション値を取得します。

public double Value { get; }

double

tickの供給元。通常はState側のITickerProvider実装を渡します。

public required ITickerProvider Vsync { get; init; }

ITickerProvider

任意のシミュレーション(スプリング等)で駆動します。完了時のStatusはCompletedになります。

public void AnimateWith(ISimulation simulation)

simulation ISimulation

フレーム通知を停止し、このコントローラーが保持する通知先を解放します。

public void Dispose()

UpperBoundへ向けて再生します。fromを指定するとその値から開始します。

public void Forward(double? from = null)

from double?

LowerBoundへ向けて再生します。

public void Reverse(double? from = null)

from double?

再生を止めます。Valueは現在値のまま保持されます。

public void Stop()

値が変化したフレームで発火します。

public event Action? Changed

Action?

Statusが遷移したときに新しい値を伴って発火します。

public event Action<AnimationStatus>? StatusChanged

Action<AnimationStatus>?

IAnimation<T>, ISimulation