当前位置: 首页 > news >正文

详解鸿蒙Next仓颉开发语言中的动画

大家上午好,今天来聊一聊仓颉开发语言中的动画开发。

仓颉中的动画通常有两种方式,分别是属性动画和显示动画,我们今天以下面的加载动画为例,使用显示动画和属性动画分别实现一下,看看他们有什么区别。

显示动画

显示动画是幽蓝君比较习惯使用的方式,它主要依赖animateTo方法来实现。

首先我要现在页面上添加加载图片,并且将它的角度设置为变量。仓颉语言这里有一个奇怪的地方,角度属性只设置angle的话是无效的,必须同时设置z和angle:

@State
var angle:Float32 = 0.0
Column{Image(@r(app.media.loading)).width(70).height(70).rotate(z:this.angle,angle:this.angle)
}
.width(120)
.height(120)
.alignItems(HorizontalAlign.Center)
.justifyContent(FlexAlign.Center)
.backgroundColor(Color(0, 0, 0, alpha: 0.7))
.borderRadius(10)

然后在添加一个按钮,在按钮的点击事件里进行动画开发:

Button('开始动画')
.width(100)
.onClick({evet =>animateTo(AnimateParam(duration: 2000,curve: Curve.Linear,delay: 0,iterations: -1,playMode: PlayMode.Normal,onFinish: {=>angle = 0.0}),{   =>angle = 360.0})})

上面代码中,duration表示动画时长,curve表示动画曲线,delay表示延时,iterations表示循环次数,-1表示无限循环,playMode表示动画模式,这些属性在属性动画中也同样适用。

属性动画

属性动画的各个属性个显示动画都是一样的,只是写法上有区别,给大家演示一下同样的动画使用属性动画的写法:

let animate = AnimateParam(duration: 2000,curve:Curve.Linear,delay: 0,iterations: -1,playMode: PlayMode.Normal,onFinish: { => })
Column{Image(@r(app.media.loading)).animationStart(animate).width(70).height(70).rotate(z:this.angle,angle:this.angle).animationEnd()
}
.width(120)
.height(120)
.alignItems(HorizontalAlign.Center)
.justifyContent(FlexAlign.Center)
.backgroundColor(Color(0, 0, 0, alpha: 0.7))
.borderRadius(10)
Button('开始')
.onClick({eve =>this.angle = 360.0})

以上就是关于仓颉语言属性动画和显示动画的相关内容,感谢阅读。##HarmonyOS语言##仓颉##购物#

相关文章:

  • RabbitMQ入门
  • 大数据+智能零售:数字化变革下的“智慧新零售”密码
  • 【Docker 02】Docker 安装
  • 【Mac 从 0 到 1 保姆级配置教程 16】- Docker 快速安装配置、常用命令以及实际项目演示
  • Maven入门(够用)
  • windows10下搭建nfs服务器
  • Maven的使用
  • maven 1.0.0idea的使用说明
  • amd64 -- buildx linux 镜像 Docker docker
  • 0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
  • 大数据治理的常见方式
  • uniapp跳转到webview组件的时候,要注意:移除所有不可见字符(包括零宽空格)
  • Fetch API 使用详解:Bearer Token 与 localStorage 实践
  • spring中的@KafkaListener 注解详解
  • uni-app学习笔记二十三--交互反馈showToast用法
  • LeetCode - 560. 和为 K 的子数组
  • 【西门子杯工业嵌入式-5-串口实现数据收发】
  • java中static学习笔记
  • ubuntu下编译osg3.6.5源码
  • AT_abc409_e [ABC409E] Pair Annihilation
  • 建设简易电子商务网站流程图/100%能上热门的文案
  • 广州正规网站建设哪家好/百度seo优化排名客服电话
  • 做jsp网站用哪些软件下载/磁力天堂最新版地址
  • sharepoint做网站/发布新闻的平台有哪些
  • 做页面设计的网站/百度云链接
  • 大型电商网站建设/上海关键词优化排名软件