コンテンツにスキップ

RenderAnimatedOpacity クラス

アニメーションで駆動される不透明度を子に適用するRenderObject。 Changedを購読し、値が変わったフレームだけ再ペイントする (Widgetのリビルドは発生しない)。FlutterのRenderAnimatedOpacity相当。

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

public class RenderAnimatedOpacity : RenderProxyBox, IHitTestTarget, IHasSingleChildRenderObject

object ← RenderObject ← RenderBox ← RenderProxyBox ← RenderAnimatedOpacity

IHitTestTarget, IHasSingleChildRenderObject

RenderProxyBox.Child, RenderProxyBox.SetupParentData(RenderObject), RenderProxyBox.PerformLayout(), RenderProxyBox.ComputeMinIntrinsicWidth(double), RenderProxyBox.ComputeMaxIntrinsicWidth(double), RenderProxyBox.ComputeMinIntrinsicHeight(double), RenderProxyBox.ComputeMaxIntrinsicHeight(double), RenderProxyBox.Paint(PaintingContext, Offset), RenderProxyBox.Attach(RenderPipeline?), RenderProxyBox.Detach(), RenderProxyBox.VisitChildren(Action<RenderObject>), RenderProxyBox.RedepthChildren(), RenderProxyBox.HitTestChildren(HitTestResult, Offset), RenderBox.Size, RenderBox.GetMinIntrinsicWidth(double), RenderBox.GetMaxIntrinsicWidth(double), RenderBox.GetMinIntrinsicHeight(double), RenderBox.GetMaxIntrinsicHeight(double), RenderBox.ComputeMinIntrinsicWidth(double), RenderBox.ComputeMaxIntrinsicWidth(double), RenderBox.ComputeMinIntrinsicHeight(double), RenderBox.ComputeMaxIntrinsicHeight(double), RenderBox.HitTest(HitTestResult, Offset), RenderBox.HitTestChildren(HitTestResult, Offset), RenderBox.HitTestSelf(Offset), RenderBox.HandleEvent(PointerEvent, HitTestEntry), RenderObject.Constraints, RenderObject.ParentData, RenderObject.Parent, RenderObject.Owner, RenderObject.Layer, RenderObject.Size, RenderObject.NeedsPaint, RenderObject.NeedsLayout, RenderObject.Depth, RenderObject.IsRepaintBoundary, RenderObject.Attached, RenderObject.RelayoutBoundary, RenderObject.SizedByParent, RenderObject.PerformLayout(), RenderObject.Layout(BoxConstraints, bool), RenderObject.LayoutWithoutResize(), RenderObject.CleanChildRelayoutBoundary(), RenderObject.MarkNeedsLayout(), RenderObject.MarkParentNeedsLayout(), RenderObject.Attach(RenderPipeline?), RenderObject.AdoptChild(RenderObject), RenderObject.RedepthChild(RenderObject), RenderObject.RedepthChildren(), RenderObject.VisitChildren(Action<RenderObject>), RenderObject.SetupParentData(RenderObject), RenderObject.Paint(PaintingContext, Offset), RenderObject.MarkNeedsPaint(), RenderObject.Detach(), RenderObject.DropChild(RenderObject), RenderObject.HandleEvent(PointerEvent, HitTestEntry), object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

不透明度を駆動するアニメーションを取得または設定します。

public required IAnimation<double> Opacity { get; set; }

IAnimation<double>

値は0.0から1.0の範囲で指定します。 アタッチ中に参照が変更された場合は以前のアニメーションの購読を解除し、 新しいアニメーションを購読して現在値を反映します。 反映後のアルファ値が変化した場合、このRenderObjectをPaint Dirtyとしてマークし、 次のパイプライン更新時に不透明度レイヤーと子を再描画します。 同じ参照が設定された場合、購読とDirty状態は変更されません。

このRenderProxyBoxと子を指定した描画パイプラインへ接続します。

public override void Attach(RenderPipeline? owner)

owner RenderPipeline?

接続先のパイプライン。パイプラインを関連付けずに接続する場合はnullです。

自身に対するDirty状態の再登録後、同じ接続先を子へ伝播します。

このRenderProxyBoxと子を描画パイプラインから切り離します。

public override void Detach()

子を指定した位置へ描画します。

public override void Paint(PaintingContext context, Offset offset)

context PaintingContext

描画命令と合成レイヤーを記録するコンテキスト。

offset Offset

親の座標系における描画原点。

子が存在しない場合は何も記録しません。