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

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),避免性能损耗

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

http://www.jsqmd.com/news/782990/

相关文章:

  • MRAM技术解析:非易失性存储器的原理与应用
  • CANN/asc-devkit内存分配API文档
  • CANN/AMCT Quantile量化
  • Hermes Agent工具链接入Taotoken聚合API的配置指南
  • GE图引擎资源变更通知API
  • 美团大模型二面:你的RAG知识库更新策略是怎样的?
  • CANN/ops-cv一维上采样反向算子
  • CANN电力仿真张量求和优化
  • 2026年4月市面上靠谱的铁氟龙排线厂商推荐,柔软度好,方便施工操作 - 品牌推荐师
  • 电液控制装置控制器4K型护套连接器
  • 企业如何利用Taotoken统一管理多个AI模型API密钥与用量
  • CANN框架适配SIG
  • 自贡智能家居装修预算怎么控制?悦阳装饰全案整装透明报价体系解析 - 优质企业观察收录
  • cann/catlass Ascend950全解量化矩阵乘
  • 电子元器件焊接调试实战经验总结
  • Switch大气层系统深度配置:从零构建你的个性化游戏环境
  • 求推荐芜湖靠谱的装修公司?来看我的真实体验
  • CANN/metadef获取算子属性值接口
  • 2026自贡装修公司全案对标:从毛坯到拎包入住的一站式整装避坑指南 - 优质企业观察收录
  • 【研报 A104】AI康养深度研究报告:从辅助诊疗,到全周期照护操作系统
  • 如何借助Taotoken用量看板精准分析并优化团队的AI调用成本
  • AI医疗实战:构建鲁棒性青光眼筛查模型的多任务学习与部署策略
  • CANN算子测试总决赛
  • CANN/HCOMM线程读取归约操作
  • CANN Add算子Kernel执行样例
  • CANN/cann-recipes-infer:Kimi-K2-Thinking NPU推理
  • IT疑难杂症诊疗室:从蓝屏到勒索软件全攻略
  • 三步解锁QQ音乐加密文件:qmc-decoder让你的音乐真正自由播放
  • 深度剖析Go语言,一文告诉你为什么大厂开始增加Go的招聘量
  • AI与Web3.0融合:技术路径、挑战与实践指南