我用了 motionBlur 但没模糊效果,是不是动画没设置对?

我在组件上用了 motionBlur,但是点击后看不到模糊效果,只有缩放动画执行了,代码大概是这样:

Image(...).width(this.width)
  .onClick(() => {
    this.radius = 0.5;
    this.width = 100;
  })
  .animation({ duration: 500 })
  .motionBlur({ radius: this.radius, anchor: { x: 0.5, y: 0.5 } })

是不是我漏了什么?需要 onFinish 设置 radius 吗?

阅读 459
1 个回答

是的,你少了一个关键步骤:
onFinish 回调中要把 radius 置为 0,否则不会触发清晰回弹的视觉效果。

.animation({
  duration: 500,
  onFinish: () => {
    this.radius = 0;
  }
})

同时确认:
motionBlur() 要放在有动画变化的组件上;
radius 是动态绑定的 @State 状态,能实时更新。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进