news 2026/5/9 12:45:44

HarmonyOS 6 ArkUI 粒子动画(Particle)动态发射器控制使用文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HarmonyOS 6 ArkUI 粒子动画(Particle)动态发射器控制使用文档

文章目录

    • 动态发射器控制核心说明
      • 1. 作用
      • 2. EmitterProperty 结构
    • 示例代码逐模块解析
      • 1 状态变量定义(动态发射器核心)
      • 2 粒子基础配置
        • 对应功能:
      • 3 颜色动画配置
      • 4 动态发射器绑定
      • 5 页面布局
    • 运行效果
    • 完整代码
    • 运行效果如图,从中间发散: ![](https://i-blog.csdnimg.cn/img_convert/e4e08699281566bccd43a372f82a1396.png)
    • 总结

动态发射器控制核心说明

1. 作用

.emitter(emitterProperties: Array<EmitterProperty>)用于动态更新粒子发射器属性,无需重建粒子组件,即可实时修改:

  • 发射速率(emitRate)
  • 发射器位置(position)
  • 发射器尺寸(size)

2. EmitterProperty 结构

参数含义
index粒子发射器索引(对应 particles 数组下标)
emitRate每秒发射粒子数量
position发射器坐标 {x, y}
size发射器区域尺寸 {width, height}

示例代码逐模块解析

1 状态变量定义(动态发射器核心)

@StateemitterProperties:Array<EmitterProperty>=[{index:0,// 绑定第 0 个粒子发射器emitRate:100,// 动态发射速率position:{x:60,y:80},// 动态位置size:{width:200,height:200}// 动态区域大小}];
  • @State:响应式状态,修改变量自动同步更新粒子发射器
  • index: 0:关联particles[0]的发射器
  • 支持同时控制多个发射器

2 粒子基础配置

emitter:{particle:{type:ParticleType.POINT,// 圆点粒子config:{radius:5},// 半径5count:400,// 最大粒子数400lifetime:-1// 无限生命周期},emitRate:10,// 默认发射速率position:[0,0],// 默认位置shape:ParticleEmitterShape.CIRCLE// 圆形发射器}
对应功能:
  1. 粒子类型:圆点(POINT)
  2. 无限生命周期lifetime: -1粒子永久存在
  3. 发射器形状:圆形(CIRCLE)
  4. 默认发射速度:10个/秒(可被动态属性覆盖)

3 颜色动画配置

color:{range:[Color.Red,Color.Yellow],// 初始颜色随机updater:{type:ParticleUpdater.CURVE,config:[{白 → 粉,0-3000ms},{粉 → 橙,3000-5000ms},{橙 → 粉,5000-8000ms}]}}
  • 粒子颜色随时间三段式渐变
  • 符合官方曲线更新器标准用法

4 动态发射器绑定

Particle({...}).width(300).height(300).emitter(this.emitterProperties)// 绑定动态发射器
  • 通过.emitter()将状态变量与粒子发射器关联
  • 状态变量变化 →实时驱动粒子发射属性更新

5 页面布局

Stack(){Text().width(300).height(300).backgroundColor(Color.Black)// 黑色背景Particle(...)}.width('100%').height('100%').align(Alignment.Center)
  • 居中展示 300x300 粒子动画区域
  • 黑色背景提升粒子视觉效果

运行效果

  1. 黑色背景上生成无限生命周期的圆点粒子
  2. 粒子从圆形区域发射
  3. 颜色动态渐变:白 → 粉 → 橙 → 粉
  4. 发射器属性由@State变量动态控制
  5. 粒子持续发射、永久存在、颜色流畅变化

完整代码

@Entry@Componentstruct ParticleExample4{@StateemitterProperties:Array<EmitterProperty>=[{index:0,emitRate:100,position:{x:60,y:80},size:{width:200,height:200}}];build(){Stack(){Text().width(300).height(300).backgroundColor(Color.Black)Particle({particles:[{emitter:{particle:{type:ParticleType.POINT,// 粒子类型config:{radius:5// 圆点半径},count:400,// 粒子总数lifetime:-1// 粒子的生命周期,-1表示粒子生命周期无限大},emitRate:10,// 每秒发射粒子数position:[0,0],// 粒子发射位置shape:ParticleEmitterShape.CIRCLE// 发射器形状},color:{range:[Color.Red,Color.Yellow],// 初始颜色范围updater:{type:ParticleUpdater.CURVE,// 变化方式为曲线变化config:[{from:Color.White,to:Color.Pink,startMillis:0,endMillis:3000,curve:Curve.EaseIn},{from:Color.Pink,to:Color.Orange,startMillis:3000,endMillis:5000,curve:Curve.EaseIn},{from:Color.Orange,to:Color.Pink,startMillis:5000,endMillis:8000,curve:Curve.EaseIn},]}},},]}).width(300).height(300).emitter(this.emitterProperties)}.width('100%').height('100%').align(Alignment.Center)}}

运行效果如图,从中间发散:

总结

  1. index 必须与粒子索引对应
    index: 0控制particles[0]的发射器

  2. @State 变量修改自动生效
    无需手动刷新,状态变化自动更新粒子

  3. 支持动态更新的属性
    仅支持emitRatepositionsize

  4. lifetime: -1 表示永久粒子
    官方特殊用法,粒子不会自动消失

  5. 性能建议
    无限粒子需控制总量(count: 400),避免性能损耗

如果这篇文章对你有帮助,欢迎点赞、收藏、关注,你的支持是持续创作的动力

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 12:42:33

CANN/ops-cv一维上采样反向算子

aclnnUpsampleLinear1dBackward 【免费下载链接】ops-cv 本项目是CANN提供的图像处理、目标检测相关的算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-cv &#x1f4c4; 查看源码 产品支持情况 产品是否支持 Ascend 950PR/Asce…

作者头像 李华
网站建设 2026/5/9 12:41:59

SHAP与EBM对比:AI眼底诊断的可解释性实战解析

1. 项目概述&#xff1a;当AI遇见眼底&#xff0c;我们如何看清它的“诊断思路”&#xff1f;在神经内科和眼科&#xff0c;多发性硬化&#xff08;MS&#xff09;的诊断与病程监测一直是个复杂且充满挑战的课题。传统的磁共振成像&#xff08;MRI&#xff09;是金标准&#xf…

作者头像 李华
网站建设 2026/5/9 12:40:57

企业如何利用Taotoken统一管理多个AI模型API密钥与用量

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 企业如何利用Taotoken统一管理多个AI模型API密钥与用量 在同时接入多个大语言模型进行应用开发的团队中&#xff0c;一个常见的挑战…

作者头像 李华
网站建设 2026/5/9 12:40:30

端到端神经网络视频编码:性能实测、挑战与未来展望

1. 项目概述&#xff1a;从“编解码”到“端到端”的范式跃迁 视频编码&#xff0c;这个听起来有点技术宅的词汇&#xff0c;其实早已渗透到我们数字生活的方方面面。从你刷的短视频、开的视频会议&#xff0c;到看的4K电影&#xff0c;背后都离不开它。传统视频编码标准&#…

作者头像 李华
网站建设 2026/5/9 12:39:50

taotoken cli工具一键配置多开发环境实践指南

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 taotoken cli工具一键配置多开发环境实践指南 对于需要同时接入多个大模型服务的开发者或团队来说&#xff0c;管理不同工具的配置…

作者头像 李华
网站建设 2026/5/9 12:38:45

CANN/pypto分布式共享内存视图

pypto.distributed.shmem_view 【免费下载链接】pypto PyPTO&#xff08;发音: pai p-t-o&#xff09;&#xff1a;Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Atlas A3 推理系列产品√Atlas A2 推…

作者头像 李华