HarmanyOS-ArkUI-属性动画和显式动画

本文介绍了JavaScript中的属性动画,特别强调了`.animation`应放在最后,以及显式动画的灵活性和在特定场景下的使用。文章通过代码示例展示了如何在组件中运用显式动画和操作按钮控制属性变化。
摘要由CSDN通过智能技术生成

属性动画 

属性动画中.animation最好放在最后一个属性,因为在.animation后的属性发生变化就没有动画。

 .animation参数

显式动画

 显式动画监测的属性

代码演示

显式动画

@State fishX:number = 200
@State fishY:number = 180

@State src:Resource = $r('app.media.fish')

//小鱼图片
          Image(this.src)
            .position({x:this.fishX - 20,y:this.fishY - 20})
            .rotate({angle:this.angle,centerX:'50%',centerY:'50%'})
            .width(40)
            .height(40)

Button('→').backgroundColor('#20101010')
              .onClick(()=>{
                animateTo(
                  {duration:500},
                  ()=>{
                    this.fishX -= 20
                    this.src=$r('app.media.fish')
                  })
              })

属性动画

//小鱼图片
          Image(this.src)
            .position({x:this.fishX - 20,y:this.fishY - 20})
            .rotate({angle:this.angle,centerX:'50%',centerY:'50%'})
            .width(40)
            .height(40)
          .animation({duration:500})

//操作按钮
          Row(){
            Button('←').backgroundColor('#20101010')
            .onClick(()=>{
              this.fishX -= 20
              this.src=$r('app.media.fish1')
            })
            Column({space:40}){
              Button('↑').backgroundColor('#20101010')
                .onClick(()=>{
                  this.fishY -= 20
                })
              Button('↓').backgroundColor('#20101010')
                .onClick(()=>{
                  this.fishY += 20
                })
            }
            Button('→').backgroundColor('#20101010')
              .onClick(()=>{
                this.fishX += 20
                this.src=$r('app.media.fish')
              })
          }

 总结

显式动画灵活性更高,使用更多一些。当只对一个组件某些时刻使用动画采用显式动画方式。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值