VAPS XT入门教程12.02.08:动画(Animation)介绍

系列索引:VAPS XT入门教程索引

上一篇:VAPS XT入门教程12.02.07:触屏输入(TouchInput)介绍

此控件位于编辑器的Toolbox中的Animation。

animation

此控件主要是将控件的各种操作添加动画渐变的效果

不同的控件有不同的动画效果,那么由什么决定呢?由TableElements中的EasingFunctionTable决定

AnimatedTranslateGroup

AnimatedTranslateGroup对象是一个图形组,它基于引用EasingFunction表元素,在一段时间内以动画效果平移(移动)其子对象。

如果您还需要子控件进行缩放,那么动画TranslateScaleGroup是一个更好的选择。AnimatedTranslateGroup是一个内置实现,使用内部AnimationController对象实现(其许多属性、事件和操作直接映射到AnimationController对象)。

创建AnimateTranslateGroup的推荐方法是对其所需的子级使用GroupAs操作。这将导致它有一个在其范围内的起始位置,以及更直观的交互使用和整体行为。向AnimateTranslateGroup添加子对象的推荐方法是将新对象从工具箱拖放到其中,然后编辑新的子对象。

AnimatedTranlateScaleGroup

AnimatedTranslateScaleGroup对象是一个图形组,在一段时间内,基于引用EasingFunction表元素,使用动画效果平移(移动)并缩放其子对象。

如果您只需要子控件移动,而不需要缩放,那么动画TranslateGroup将是一个更好的选择。AnimatedTranslateScaleGroup是使用内部AnimationController对象(其许多属性、事件和操作直接映射到AnimationController对象)实现的内置实现。

创建AnimateTranslateScaleGroup的推荐方法是对所需的子对象使用GroupAs操作。这将导致它有一个在其范围内的起始位置,以及更直观的交互使用和整体行为。向AnimateTranslateScaleGroup添加子对象的推荐方法是将新对象从工具箱拖放到其中,然后编辑新的子对象。

AnimationController

AnimationController对象是一个计算器,可用于生成动画效果。它根据其EasingFunctionIndex属性引用的EasingFunctionTable元素生成其输出属性值,作为时间的函数。这通常在一段时间内呈非线性变化。

AnimationController是一个低级对象,提供对easing Function表中定义的easing函数的基本访问功能。AnimationController可用于构建具有更具体行为、更直观、更可用的动画对象。例如,AnimationController用作AnimatedTranslateGroup和AnimatedTranslateScaleGroup的内置实现中的一个组件,这些实现允许简单的动画运动(和/或缩放)。

可以将AnimationController用于上面这些组尚未涵盖的动画效果。

示例

本部分拆自官方示例AnimationExample

一般拖拽界面时,界面从起点移动到终点,一般是直接移动过去,如果加上缓慢移动的效果就是动画。

但是一般机载不使用动画效果,因为飞机安全性比较高,如果因为这个可有可无的功能导致系统故障就麻烦了。

先了解:

界面

创建一个名为Animation的根工程

向其中添加一个名为AnimationFmt的Format,作为显示界面

向Format中添加一个ClippingRegion,用于将控件的一部分隐藏起来。

在ClippingRegion中添加一个AnimationTranslateGroup用于实现动画效果。

在动画组件中添加一个Bezel作为背景,添加一个Image作为图标,添加一个Label作为文字显示标签

Bezel大小为(1276,256)

Label大小为(1024,256)

Image位置为(1024,0),即图标在Label右侧

动画控件的起始位置为(-1024,0),终点位置为(0,0),即初始状态标签所在的界面被隐藏到ClippingRegion不可见区域中。

animation

左侧的圆点是动画的起始点,圆点右侧的箭头是动画的移动终点。

EasingFunctionIndex为Linear

easingfunction

可以看到Linear就是线性函数,非常平滑。

事件

此时还不能实现动画效果,因为我们并没有调用动画的动作函数。

我们在Format中添加一个RectActiveArea用于捕获鼠标,当鼠标进入范围时就进行动作,鼠标离开范围时就至初始状态。

1
2
RectActiveArea_1.evEnter		AnimatedTranslateGroup_1.doAnimateToEnd()	
RectActiveArea_1.evExit AnimatedTranslateGroup_1.doAnimateToStart()

result

初始时只有一个小图标,鼠标进入范围内就是动画显示完整界面。

也可以试试其他EasingFunctions效果。

下一篇:VAPS XT入门教程12.02.09:基本组

技术交流群,欢迎加入讨论。这个圈子很小,大佬可能没兴趣加这些群聊社区之类的。所以只能带你入门,当然,欢迎大佬指导

qq 672991841


VAPS XT入门教程12.02.08:动画(Animation)介绍
https://feater.top/vapsxt/introduction-of-vapsxt-animation/
作者
JackeyLea
发布于
2022年5月3日
许可协议