用途:该技能面向 Kuikly DSL 动画开发,指导实现视图从状态 A 到状态 B 的属性过渡,并协助排查动画不生效与复杂动画编排问题。
核心概念:可动画属性包括 transform(位移/缩放/旋转/倾斜)、opacity、backgroundColor、frame(位置与大小);Animation 对象控制曲线、时长、延迟与是否循环;触发方式分为声明式(响应式变量驱动)与命令式(调用 animateToAttr)。
两种方式:声明式以 attr { animate(animation, value) } 实现,由响应式变量变化自动触发,结束回调通过 event { animationCompletion { } },适合简单状态切换;命令式以 viewRef?.view?.animateToAttr(animation) { ... } 手动触发,completion 参数回调(finished 为 true 表示完成、false 表示被取消),适合复杂编排与串行动画。
曲线与时长:提供 linear、easeIn、easeOut、easeInOut,以及 springLinear、springEaseIn、springEaseOut、springEaseInOut(需 damping、velocity)。可通过 .delay(秒)、.repeatForever(true) 控制延迟与循环;durationS 为 Float 秒,key 用于在 animationCompletion 中区分动画。
Transform 类型:Translate(percentageX, percentageY)、Scale(x, y)、Rotate(angle) 与三维 Rotate(angle, xAngle, yAngle)、Skew(horizontalAngle, verticalAngle)、Anchor(x, y)。attr 中的 transform 方法可接 rotate、scale、translate、anchor、skew 参数,也有只传单个类型的便捷重载。
高级模式:串行动画、并行动画、动画中途启动与取消等参考 ANIMATION_PATTERNS.md;声明式细节见 DECLARATIVE_ANIMATION.md,命令式细节见 IMPERATIVE_ANIMATION.md。
限制:资料未提供支持的平台版本、性能约束或兼容性说明,暂未提供。