我有一个Flutter应用程序,正在显示一些Lottie动画。我有时需要在Y轴上翻转动画180度,这样它就是自己的镜像。
在C#中,通过将动画可视播放器的平面投影rotationY
属性设置为180(见下文),可以轻松实现这一点。
<muxc:AnimatedVisualPlayer x:Name="LottiePlayer">
<muxc:AnimatedVisualPlayer.Projection>
<PlaneProjection RotationY="180" x:Name="LottiePayerRotation"/>
</muxc:AnimatedVisualPlayer.Projection>
在Flutter中,我尝试使用RotationBox
,但它只能绕X轴旋转。我需要绕Y轴旋转(见下图)。
我也试过在Transform
小部件中 Package Lottie动画(见下文),但那不起作用。添加后,Lottie动画完全消失了。我不太明白Matrix4
是如何工作的,关于它的文档很少。我找到了这个Matrix4 explanation,但我仍然不明白它。:-(
Transform(
transform: Matrix4(
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1,
)..rotateX(0)..rotateY(180)..rotateZ(0),
child: Lottie(
frameRate: FrameRate.max,
composition: _composition,
controller: _controller,
),
),
请注意,我不需要翻转动画,我只想立即翻转Lottie动画,使其看起来像是自身的镜像。因此,这是一个即时的变化,而不是一个过渡动画。
任何帮助都感激不尽。
3条答案
按热度按时间1u4esq0p1#
我以前用过这样的东西来旋转物品...不确定它是否是你所追求的
oyxsuwqo2#
结果我差点就成功了!缺少的是
alignment
。默认值导致旋转超出了可见区域。将对齐方式改为“居中”修复了这一问题:6l7fqoea3#
只需使用
RotatedBox
Package 您的小工具,并赋予quarterTurns
值(0,1,2,3)假设我的小部件是右箭头的图像:
→
0
无旋转-→
1
90度旋转-↓
2
180度旋转-←
3
270旋转-↑
因此,如果我想让图像面向左侧
←
: