# ParticleSystem

继承 ParticleSystem Container View 模块 hilo/game/ParticleSystem 依赖 hilo/core/Hilo, hilo/core/Class, hilo/view/View, hilo/view/Container, hilo/view/Bitmap, hilo/view/Drawable, hilo/util/util 源码 ParticleSystem.js
粒子系统

### 属性概览

显示继承属性

| 属性 | 定义于
--- | --- | ---
| emitNum:Number 每次发射数量 | ParticleSystem
| emitNumVar:Number 每次发射数量变化量 | ParticleSystem
| emitterX:Number 发射器位置x | ParticleSystem
| emitterY:Number 发射器位置y | ParticleSystem
| emitTime:Number 发射间隔 | ParticleSystem
| emitTimeVar:Number 发射间隔变化量 | ParticleSystem
| gx:Number 重力加速度x | ParticleSystem
| gy:Number 重力加速度y | ParticleSystem
| totalTime:Number 总时间 | ParticleSystem
| align:String|Function 可视对象相对于父容器的对齐方式。取值可查看Hilo.align枚举对象。 | View
| alpha:Number 可视对象的透明度。默认值为1。 | View
| background:Object 可视对象的背景样式。可以是CSS颜色值、canvas的gradient或pattern填充。 | View
| boundsArea:Array 可视对象的区域顶点数组。格式为：[{x:10, y:10}, {x:20, y:20}]。 | View
| children:Array 容器的子元素列表。只读。 | Container
| clipChildren:Boolean 指示是否裁剪超出容器范围的子元素。默认为false。 | Container
| depth:Number 可视对象的深度，也即z轴的序号。只读属性。 | View
| drawable:Drawable 可视对象的可绘制对象。供高级开发使用。 | View
| height:Number 可视对象的高度。默认值为0。 | View
| id:String 可视对象的唯一标识符。 | View
| mask:Graphics 可视对象的遮罩图形。 | View
| parent:Container 可视对象的父容器。只读属性。 | View
| pivotX:Number 可视对象的中心点的x轴坐标。默认值为0。 | View
| pivotY:Number 可视对象的中心点的y轴坐标。默认值为0。 | View
| pointerChildren:Boolean 指示容器的子元素是否能响应用户交互事件。默认为true。 | Container
| pointerEnabled:Boolean 可视对象是否接受交互事件。默认为接受交互事件，即true。 | View
| rotation:Number 可视对象的旋转角度。默认值为0。 | View
| scaleX:Number 可视对象在x轴上的缩放比例。默认为不缩放，即1。 | View
| scaleY:Number 可视对象在y轴上的缩放比例。默认为不缩放，即1。 | View
| tint:Number 可视对象的附加颜色，默认0xFFFFFF，只支持WebGL模式。 | View
| transform:Matrix 可视对象的transform属性，如果设置将忽略x, y, scaleX, scaleY, rotation. | View
| visible:Boolean 可视对象是否可见。默认为可见，即true。 | View
| width:Number 可视对象的宽度。默认值为0。 | View
| x:Number 可视对象的x轴坐标。默认值为0。 | View
| y:Number 可视对象的y轴坐标。默认值为0。 | View

### 方法概览

显示继承方法

| 方法 | 定义于
--- | --- | ---
| ParticleSystem(properties:Object) 构造函数 | ParticleSystem
| onUpdate(dt:Number) 更新 | ParticleSystem
| reset(cfg:Object) 重置属性 | ParticleSystem
| start() 开始发射粒子 | ParticleSystem
| stop(clear:Boolean) 停止发射粒子 | ParticleSystem
| addChild(child:View) 在最上面添加子元素。 | Container
| addChildAt(child:View, index:Number) 在指定索引位置添加子元素。 | Container
| addTo(container:Container, index:Uint):View 添加此对象到父容器。 | View
| contains(child:View) 返回是否包含参数指定的子元素。 | Container
| fire(type:String, detail:Object):Boolean 发送事件。当第一个参数类型为Object时，则把它作为一个整体事件对象。 | View
| getBounds():Array 获取可视对象在舞台全局坐标系内的外接矩形以及所有顶点坐标。 | View
| getChildAt(index:Number) 返回指定索引位置的子元素。 | Container
| getChildById(id:String) 返回指定id的子元素。 | Container
| getChildIndex(child:View) 返回指定子元素的索引值。 | Container
| getNumChildren():Uint 返回容器的子元素的数量。 | Container
| getScaledHeight():Number 返回可视对象缩放后的高度。 | View
| getScaledWidth():Number 返回可视对象缩放后的宽度。 | View
| getStage():Stage 返回可视对象的舞台引用。若对象没有被添加到舞台，则返回null。 | View
| getViewAtPoint(x:Number, y:Number, usePolyCollision:Boolean, global:Boolean, eventMode:Boolean) 返回由x和y指定的点下的对象。 | Container
| hitTestObject(object:View, usePolyCollision:Boolean) 检测object参数指定的对象是否与其相交。 | View
| hitTestPoint(x:Number, y:Number, usePolyCollision:Boolean):Boolean 检测由x和y参数指定的点是否在其外接矩形之内。 | View
| off(type:String, listener:Function):Object 删除一个事件监听。如果不传入任何参数，则删除所有的事件监听；如果不传入第二个参数，则删除指定类型的所有事件监听。 | View
| on(type:String, listener:Function, once:Boolean):Object 增加一个事件监听。 | View
| removeAllChildren():Container 删除所有的子元素。 | Container
| removeChild(child:View):View 删除指定的子元素。 | Container
| removeChildAt(index:Int):View 在指定索引位置删除子元素。 | Container
| removeChildById(id:String):View 删除指定id的子元素。 | Container
| removeFromParent():View 从父容器里删除此对象。 | View
| render(renderer:Renderer, delta:Number) 可视对象的具体渲染逻辑。子类可通过覆盖此方法实现自己的渲染。 | View
| setChildIndex(child:View, index:Number) 设置子元素的索引位置。 | Container
| sortChildren(keyOrFunction:Object) 根据指定键值或函数对子元素进行排序。 | Container
| swapChildren(child1:View, child2:View) 交换两个子元素的索引位置。 | Container
| swapChildrenAt(index1:Number, index2:Number) 交换两个指定索引位置的子元素。 | Container
| toString():String 返回可视对象的字符串表示。 | View

### 属性详情

emitNum:Number
每次发射数量

  默认值: 10

emitNumVar:Number
每次发射数量变化量

  默认值: 0

emitterX:Number
发射器位置x

  默认值: 0

emitterY:Number
发射器位置y

  默认值: 0

emitTime:Number
发射间隔

  默认值: 0.2

emitTimeVar:Number
发射间隔变化量

  默认值: 0

gx:Number
重力加速度x

  默认值: 0

gy:Number
重力加速度y

  默认值: 0

totalTime:Number
总时间

  默认值: Infinity

### 构造函数

ParticleSystem(properties:Object)

parameters
properties:Object — 创建对象的属性参数。可包含此类所有可写属性。
properties.particle:Object — 粒子属性配置
properties.particle.x:Number Optional, Default: 0 — x位置
properties.particle.y:Number Optional, Default: 0 — y位置
properties.particle.vx:Number Optional, Default: 0 — x速度
properties.particle.vy:Number Optional, Default: 0 — y速度
properties.particle.ax:Number Optional, Default: 0 — x加速度
properties.particle.ay:Number Optional, Default: 0 — y加速度
properties.particle.life:Number Optional, Default: 1 — 粒子存活时间，单位s
properties.particle.alpha:Number Optional, Default: 1 — 透明度
properties.particle.alphaV:Number Optional, Default: 0 — 透明度变化
properties.particle.scale:Number Optional, Default: 1 — 缩放
properties.particle.scaleV:Number Optional, Default: 0 — 缩放变化速度

### 方法详情

onUpdate(dt:Number)
更新

parameters
dt:Number — 间隔时间 单位ms

reset(cfg:Object)
重置属性

parameters
cfg:Object —

start()
开始发射粒子
stop(clear:Boolean)
停止发射粒子

parameters
clear:Boolean — 是否清除所有粒子