Packagelaya.display
Classpublic class Animation
InheritanceAnimation Inheritance AnimationPlayerBase Inheritance Sprite Inheritance Node Inheritance EventDispatcher Inheritance Object

Animation 是Graphics动画类。实现了基于Graphics的动画创建、播放、控制接口。

本类使用了动画模版缓存池,它以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。

动画模版缓存池,以key-value键值对存储,key可以自定义,也可以从指定的配置文件中读取,value为对应的动画模版,是一个Graphics对象数组,每个Graphics对象对应一个帧图像,动画的播放实质就是定时切换Graphics对象。

使用set source、loadImages(...)、loadAtlas(...)、loadAnimation(...)方法可以创建动画模版。使用play(...)可以播放指定动画。



Public Properties
 PropertyDefined By
 Inheritedalpha : Number
透明度,值为0-1,默认值为1,表示不透明。更改alpha值会影响drawcall。
Sprite
  autoAnimation : String
[write-only] 设置自动播放的动画名称,在LayaAir IDE中可以创建的多个动画组成的动画集合,选择其中一个动画名称进行播放。
Animation
  autoPlay : Boolean
[write-only] 是否自动播放,默认为false。如果设置为true,则动画被创建并添加到舞台后自动播放。
Animation
 InheritedautoSize : Boolean = false
指定是否自动计算宽高数据。默认值为 false 。 Sprite宽高默认为0,并且不会随着绘制内容的变化而变化,如果想根据绘制内容获取宽高,可以设置本属性为true,或者通过getBounds方法获取。设置为true,对性能有一定影响。
Sprite
 InheritedblendMode : String
指定要使用的混合模式。目前只支持"lighter"。
Sprite
 InheritedcacheAs : String
指定显示对象是否缓存为静态图像,cacheAs时,子对象发生变化,会自动重新缓存,同时也可以手动调用reCache方法更新缓存。 建议把不经常变化的“复杂内容”缓存为静态图像,能极大提高渲染性能。cacheAs有"none","normal"和"bitmap"三个值可选。 默认为"none",不做任何缓存。 当值为"normal"时,canvas模式下进行画布缓存,webgl模式下进行命令缓存。 当值为"bitmap"时,canvas模式下进行依然是画布缓存,webgl模式下使用renderTarget缓存。 webgl下renderTarget缓存模式缺点:会额外创建renderTarget对象,增加内存开销,缓存面积有最大2048限制,不断重绘时会增加CPU开销。优点:大幅减少drawcall,渲染性能最高。 webgl下命令缓存模式缺点:只会减少节点遍历及命令组织,不会减少drawcall数,性能中等。优点:没有额外内存开销,无需renderTarget支持。
Sprite
 InheritedcacheAsBitmap : Boolean
指定显示对象是否缓存为静态图像。功能同cacheAs的normal模式。建议优先使用cacheAs代替。
Sprite
 Inheritedcount : int
[read-only] 当前动画中帧的总数。
AnimationPlayerBase
 InheritedcustomRenderEnable : Boolean
[write-only] 设置是否开启自定义渲染,只有开启自定义渲染,才能使用customRender函数渲染。
Sprite
 Inheriteddestroyed : Boolean
[只读]是否已经销毁。对象销毁后不能再使用。
Node
 InheriteddisplayedInStage : Boolean
[read-only] 表示是否在显示列表中显示。
Node
 Inheritedfilters : Array
滤镜集合。可以设置多个滤镜组合。
Sprite
  frames : Array
当前动画的帧图像数组。本类中,每个帧图像是一个Graphics对象,而动画播放就是定时切换Graphics对象的过程。
Animation
  framesMap : Object
[static] 动画模版缓存池,以key-value键值对存储,key可以自定义,也可以从指定的配置文件中读取,value为对应的动画模版,是一个Graphics对象数组,每个Graphics对象对应一个帧图像,动画的播放实质就是定时切换Graphics对象。 使用loadImages(...)、loadAtlas(...)、loadAnimation(...)、set source方法可以创建动画模版。使用play(...)可以播放指定动画。
Animation
 InheritedglobalScaleX : Number
[read-only] 获得相对于stage的全局X轴缩放值(会叠加父亲节点的缩放值)。
Sprite
 InheritedglobalScaleY : Number
[read-only] 获得相对于stage的全局Y轴缩放值(会叠加父亲节点的缩放值)。
Sprite
 Inheritedgraphics : Graphics
绘图对象。封装了绘制位图和矢量图的接口,Sprite所有的绘图操作都通过Graphics来实现的。
Sprite
 Inheritedheight : Number
显示对象的高度,单位为像素,默认为0。 此高度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。 可以通过getbounds获取显示对象图像的实际高度。
Sprite
 InheritedhitArea : *
可以设置一个Rectangle区域作为点击区域,或者设置一个HitArea实例作为点击区域,HitArea内可以设置可点击和不可点击区域。 如果不设置hitArea,则根据宽高形成的区域进行碰撞。
Sprite
 InheritedhitTestPrior : Boolean = false
指定鼠标事件检测是优先检测自身,还是优先检测其子对象。鼠标事件检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。 如果为false,优先检测子对象,当有子对象被命中时,中断检测,获得命中目标。如果未命中任何子对象,最后再检测此对象;如果为true,则优先检测本对象,如果本对象没有被命中,直接中断检测,表示没有命中目标;如果本对象被命中,则进一步递归检测其子对象,以确认最终的命中目标。 合理使用本属性,能减少鼠标事件检测的节点,提高性能。可以设置为true的情况:开发者并不关心此节点的子节点的鼠标事件检测结果,也就是以此节点作为其子节点的鼠标事件检测依据。 Stage对象和UI的View组件默认为true。
Sprite
 Inheritedindex : int
动画当前帧的索引。
AnimationPlayerBase
 Inheritedinterval : int
动画播放的帧间隔时间(单位:毫秒)。默认值依赖于Config.animationInterval=50,通过Config.animationInterval可以修改默认帧间隔时间。 要想为某动画设置独立的帧间隔时间,可以使用set interval,注意:如果动画正在播放,设置后会重置帧循环定时器的起始时间为当前时间,也就是说,如果频繁设置interval,会导致动画帧更新的时间间隔会比预想的要慢,甚至不更新。
AnimationPlayerBase
 InheritedisPlaying : Boolean
[read-only] 是否正在播放中。
AnimationPlayerBase
 Inheritedloop : Boolean
是否循环播放,调用play(...)方法时,会将此值设置为指定的参数值。
AnimationPlayerBase
 Inheritedmask : Sprite
遮罩,可以设置一个对象(支持位图和矢量图),根据对象形状进行遮罩显示。 【注意】遮罩对象坐标系是相对遮罩对象本身的,和Flash机制不同
Sprite
 InheritedmouseEnabled : Boolean
是否接受鼠标事件。 默认为false,如果监听鼠标事件,则会自动设置本对象及父节点的属性 mouseEnable 的值都为 true(如果父节点手动设置为false,则不会更改)。
Sprite
 InheritedmouseThrough : Boolean = false
鼠标事件与此对象的碰撞检测是否可穿透。碰撞检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。 穿透表示鼠标事件发生的位置处于本对象绘图区域内时,才算命中,而与对象宽高和值为Rectangle对象的hitArea属性无关。如果sprite.hitArea值是HitArea对象,表示显式声明了此对象的鼠标事件响应区域,而忽略对象的宽高、mouseThrough属性。 影响对象鼠标事件响应区域的属性为:width、height、hitArea,优先级顺序为:hitArea(type:HitArea)>hitArea(type:Rectangle)>width/height。
Sprite
 InheritedmouseX : Number
[read-only] 返回鼠标在此对象坐标系上的 X 轴坐标信息。
Sprite
 InheritedmouseY : Number
[read-only] 返回鼠标在此对象坐标系上的 Y 轴坐标信息。
Sprite
 Inheritedname : String
节点名称。
Node
 InheritednumChildren : int
[read-only] 子对象数量。
Node
 InheritedoptimizeScrollRect : Boolean
指定是否对使用了 scrollRect 的显示对象进行优化处理。默认为false(不优化)。 当值为ture时:将对此对象使用了scrollRect 设定的显示区域以外的显示内容不进行渲染,以提高性能(如果子对象有旋转缩放或者中心点偏移,则显示筛选会不精确)。
Sprite
 Inheritedparent : Node
[override]
Sprite
 InheritedpivotX : Number
X轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
Sprite
 InheritedpivotY : Number
Y轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
Sprite
 Inheritedrotation : Number
旋转角度,默认值为0。以角度为单位。
Sprite
 InheritedscaleX : Number
X轴缩放值,默认值为1。设置为负数,可以实现水平反转效果,比如scaleX=-1。
Sprite
 InheritedscaleY : Number
Y轴缩放值,默认值为1。设置为负数,可以实现垂直反转效果,比如scaleX=-1。
Sprite
 InheritedscrollRect : Rectangle
显示对象的滚动矩形范围,具有裁剪效果(如果只想限制子对象渲染区域,请使用viewport),设置optimizeScrollRect=true,可以优化裁剪区域外的内容不进行渲染。 srollRect和viewport的区别: 1.srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。 2.设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。
Sprite
 InheritedskewX : Number
水平倾斜角度,默认值为0。以角度为单位。
Sprite
 InheritedskewY : Number
垂直倾斜角度,默认值为0。以角度为单位。
Sprite
  source : String
[write-only] 动画数据源。 类型如下: 1.
Animation
 Inheritedstage : Stage
[read-only] 对舞台 stage 的引用。
Sprite
 InheritedstaticCache : Boolean
是否静态缓存此对象的当前帧的最终属性。为 true 时,子对象变化时不会自动更新缓存,但是可以通过调用 reCache 方法手动刷新。 注意: 1.
Sprite
 Inheritedtexture : Texture
设置一个Texture实例,并显示此图片(如果之前有其他绘制,则会被清除掉)。等同于graphics.clear();graphics.drawTexture()
Sprite
 Inheritedtimer : Timer
时间控制器,默认为Laya.timer。
Node
 Inheritedtransform : Matrix
对象的矩阵信息。通过设置矩阵可以实现节点旋转,缩放,位移效果。 矩阵更多信息请参考 Matrix
Sprite
 Inheritedviewport : Rectangle = null
视口大小,视口外的子对象,将不被渲染(如果想实现裁剪效果,请使用srollRect),合理使用能提高渲染性能。比如由一个个小图片拼成的地图块,viewport外面的小图片将不渲染 srollRect和viewport的区别: 1.
Sprite
 Inheritedvisible : Boolean
表示是否可见,默认为true。如果设置不可见,节点将不被渲染。
Sprite
 Inheritedwidth : Number
显示对象的宽度,单位为像素,默认为0。 此宽度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。 可以通过getbounds获取显示对象图像的实际宽度。
Sprite
 InheritedwrapMode : int = 0
播放顺序类型:AnimationPlayerBase.WRAP_POSITIVE为正序播放,AnimationPlayerBase.WRAP_REVERSE为倒序播放,AnimationPlayerBase.WRAP_PINGPONG为pingpong播放(当按指定顺序播放完结尾后,如果继续播发,则会改变播放顺序)。 默认为正序播放。
AnimationPlayerBase
 Inheritedx : Number
表示显示对象相对于父容器的水平方向坐标值。
Sprite
 Inheritedy : Number
表示显示对象相对于父容器的垂直方向坐标值。
Sprite
 InheritedzOrder : Number
z排序,更改此值,则会按照值的大小对同一容器的所有对象重新排序。值越大,越靠上。默认为0,则根据添加顺序排序。
Sprite
Protected Properties
 PropertyDefined By
 Inherited_isReverse : Boolean = false
是否是逆序播放
AnimationPlayerBase
Public Methods
 MethodDefined By
  
创建一个新的 Animation 实例。
Animation
 Inherited
添加子节点。
Node
 Inherited
addChildAt(node:Node, index:int):Node
添加子节点到指定的索引位置。
Node
 Inherited
addChildren(... args):void
批量增加子节点
Node
 Inherited
addLabel(label:String, index:int):void
增加一个帧标签到指定索引的帧上。当动画播放到此索引的帧时会派发Event.LABEL事件,派发事件是在完成当前帧画面更新之后。
AnimationPlayerBase
  
clear():void
[override] 停止动画播放,并清理对象属性。之后可存入对象池,方便对象复用。
Animation
  
clearCache(key:String):void
[static] 从动画模版缓存池中清除指定key值的动画数据。 开发者在调用创建动画模版函数时,可以手动指定此值。而如果是由LayaAir IDE创建的动画集,解析后的key格式为:"url#":表示动画集的默认动画模版,如果以此值为参数,会清除整个动画集数据;"url#aniName":表示相应名称的动画模版。
Animation
 Inherited
clearTimer(caller:*, method:Function):void
清理定时器。功能同Laya.timer.clearTimer()。
Node
 Inherited
contains(node:Node):Boolean
当前容器是否包含指定的 Node 节点对象 。
Node
  
createFrames(url:*, name:String):Array
[static] 创建动画模板,多个动画可共享同一份动画模板,而不必每次都创建一份新的,从而节省创建Graphics集合的开销。
Animation
 Inherited
customRender(context:RenderContext, x:Number, y:Number):void
自定义更新、呈现显示对象。一般用来扩展渲染模式,请合理使用,可能会导致在加速器上无法渲染。 注意不要在此函数内增加或删除树节点,否则会对树节点遍历造成影响。
Sprite
  
destroy(destroyChild:Boolean = true):void
[override] 销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。 destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。
Animation
 Inherited
销毁所有子对象,不销毁自己本身。
Node
 Inherited
drawToCanvas(canvasWidth:Number, canvasHeight:Number, offsetX:Number, offsetY:Number):HTMLCanvas
绘制 当前Sprite 到 Canvas 上,并返回一个HtmlCanvas。 绘制的结果可以当作图片源,再次绘制到其他Sprite里面,示例: var htmlCanvas:HTMLCanvas = sprite.drawToCanvas(100, 100, 0, 0);//把精灵绘制到canvas上面 var texture:Texture = new Texture(htmlCanvas);//使用htmlCanvas创建Texture var sp:Sprite = new Sprite().pos(0, 200);//创建精灵并把它放倒200位置 sp.graphics.drawTexture(texture);//把截图绘制到精灵上 Laya.stage.addChild(sp);//把精灵显示到舞台 也可以获取原始图片数据,分享到网上,从而实现截图效果,示例: var htmlCanvas:HTMLCanvas = sprite.drawToCanvas(100, 100, 0, 0);//把精灵绘制到canvas上面 var canvas:= htmlCanvas.getCanvas();//获取原生的canvas对象 trace(canvas.toDataURL("image/png"));//打印图片base64信息,可以发给服务器或者保存为图片
Sprite
 Inherited
event(type:String, data:* = null):Boolean
派发事件。
EventDispatcher
 Inherited
frameLoop(delay:int, caller:*, method:Function, args:Array = null, coverBefore:Boolean = true):void
定时重复执行某函数(基于帧率)。功能同Laya.timer.frameLoop()。
Node
 Inherited
frameOnce(delay:int, caller:*, method:Function, args:Array = null, coverBefore:Boolean = true):void
定时执行一次某函数(基于帧率)。功能同Laya.timer.frameOnce()。
Node
 Inherited
fromImage(url:String):Sprite
[static] 根据图片地址创建一个新的 Sprite 对象用于加载并显示此图片。
Sprite
 Inherited
将父容器坐标系坐标转换到本地坐标系。
Sprite
 Inherited
获取本对象在父容器坐标系的矩形显示区域。 注意: 1.计算量较大,尽量少用,如果需要频繁使用,可以通过手动设置 setBounds 来缓存自身边界信息,从而避免比较消耗性能的计算。2.
Sprite
 Inherited
getChildAt(index:int):Node
根据子节点的索引位置,获取子节点对象。
Node
 Inherited
getChildByName(name:String):Node
根据子节点的名字,获取子节点对象。
Node
 Inherited
根据子节点对象,获取子节点的索引位置。
Node
 Inherited
getGraphicBounds(realSize:Boolean = false):Rectangle
返回此实例中的绘图对象( Graphics )的显示区域,不包括子对象。
Sprite
 Inherited
获得相对于本对象上的鼠标坐标信息。
Sprite
 Inherited
获取对象在自身坐标系的边界范围。与 setBounds 对应。 注意:计算量较大,尽量少用,如果需要频繁使用,可以提前手动设置 setBounds 来缓存自身边界信息,从而避免比较消耗性能的计算。
Sprite
 Inherited
globalToLocal(point:Point, createNewPoint:Boolean = false):Point
把stage的全局坐标转换为本地坐标。
Sprite
 Inherited
gotoAndStop(position:*):void
将动画切换到指定帧并停在那里。
AnimationPlayerBase
 Inherited
hasListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
hitTestPoint(x:Number, y:Number):Boolean
检测某个点是否在此对象内。
Sprite
 Inherited
isMouseEvent(type:String):Boolean
检测指定事件类型是否是鼠标事件。
EventDispatcher
  
loadAnimation(url:String, loaded:Handler = null, atlas:String = null):Animation
加载并解析由LayaAir IDE制作的动画文件,此文件中可能包含多个动画。默认帧率为在IDE中设计的帧率,如果调用过set interval,则使用此帧间隔对应的帧率。加载后创建动画模版,并缓存到动画模版缓存池,key "url#动画名称" 对应相应动画名称的动画模板,key "url#" 对应动画模版集合的默认动画模版。 注意:如果调用本方法前,还没有预加载动画使用的图集,请将atlas参数指定为对应的图集路径,否则会导致动画创建失败。 动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。 因为返回值为Animation对象本身,所以可以使用如下语法:ani.loadAnimation(...).loadAnimation(...).play(...);。
Animation
  
loadAtlas(url:String, loaded:Handler = null, cacheName:String):Animation
根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下:1.
Animation
 Inherited
loadImage(url:String, x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0, complete:Handler = null):Sprite
加载并显示一个图片。功能等同于graphics.loadImage方法。支持异步加载。 注意:多次调用loadImage绘制不同的图片,会同时显示。
Sprite
  
loadImages(urls:Array, cacheName:String):Animation
根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下:1.
Animation
 Inherited
localToGlobal(point:Point, createNewPoint:Boolean = false):Point
把本地坐标转换为相对stage的全局坐标。
Sprite
 Inherited
off(type:String, caller:*, listener:Function, onceOnly:Boolean = false):EventDispatcher
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
offAll(type:String = null):EventDispatcher
从 EventDispatcher 对象中删除指定事件类型的所有侦听器。
EventDispatcher
 Inherited
on(type:String, caller:*, listener:Function, args:Array = null):EventDispatcher
[override] 增加事件侦听器,以使侦听器能够接收事件通知。 如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。
Sprite
 Inherited
once(type:String, caller:*, listener:Function, args:Array = null):EventDispatcher
[override] 增加事件侦听器,以使侦听器能够接收事件通知,此侦听事件响应一次后则自动移除侦听。 如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。
Sprite
 Inherited
cacheAs时,设置所有父对象缓存失效。
Sprite
 Inherited
pivot(x:Number, y:Number):Sprite
设置轴心点。相当于分别设置pivotX和pivotY属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pivot(...).pos(...);
Sprite
  
play(start:* = 0, loop:Boolean = true, name:String, showWarn:Boolean = true):void
[override] 开始播放动画。会在动画模版缓存池中查找key值为name的动画模版,存在则用此动画模版初始化当前序列帧, 如果不存在,则使用当前序列帧。 play(...)方法被设计为在创建实例后的任何时候都可以被调用,调用后就处于播放状态,当相应的资源加载完毕、调用动画帧填充方法(set frames)或者将实例显示在舞台上时,会判断是否处于播放状态,如果是,则开始播放。 配合wrapMode属性,可设置动画播放顺序类型。
Animation
 Inherited
pos(x:Number, y:Number, speedMode:Boolean = false):Sprite
设置坐标位置。相当于分别设置x和y属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pos(...).scale(...);
Sprite
 Inherited
reCache():void
在设置cacheAs的情况下,调用此方法会重新刷新缓存。
Sprite
 Inherited
删除子节点。
Node
 Inherited
removeChildAt(index:int):Node
根据子节点索引位置,删除对应的子节点对象。
Node
 Inherited
removeChildByName(name:String):Node
根据子节点名字删除对应的子节点对象,如果找不到不会抛出异常。
Node
 Inherited
removeChildren(beginIndex:int = 0, endIndex:int = 0x7fffffff):Node
删除指定索引区间的所有子对象。
Node
 Inherited
removeLabel(label:String):void
删除指定的帧标签。
AnimationPlayerBase
 Inherited
从父容器删除自己,如已经被删除不会抛出异常。
Node
 Inherited
render(context:RenderContext, x:Number, y:Number):void
更新、呈现显示对象。由系统调用。
Sprite
 Inherited
repaint():void
cacheAs后,设置自己和父对象缓存失效。
Sprite
 Inherited
replaceChild(newNode:Node, oldNode:Node):Node
替换子节点。
Node
 Inherited
scale(scaleX:Number, scaleY:Number, speedMode:Boolean = false):Sprite
设置缩放。相当于分别设置scaleX和scaleY属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.scale(...).pos(...);
Sprite
 Inherited
setBounds(bound:Rectangle):void
设置对象在自身坐标系下的边界范围。与 getSelfBounds 对应。当 autoSize==true 时,会影响对象宽高。设置后,当需要获取自身边界范围时,就不再需要计算,合理使用能提高性能。比如 getBounds 会优先使用 setBounds 指定的值,如果没有指定则进行计算,此计算会对性能消耗比较大。 注意: setBounds 与 getBounds 并非对应相等关系, getBounds 获取的是本对象在父容器坐标系下的边界范围,通过设置 setBounds 会影响 getBounds 的结果。
Sprite
 Inherited
setChildIndex(node:Node, index:int):Node
设置子节点的索引位置。
Node
 Inherited
size(width:Number, height:Number):Sprite
设置宽高。相当于分别设置width和height属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.size(...).pos(...);
Sprite
 Inherited
skew(skewX:Number, skewY:Number):Sprite
设置倾斜角度。相当于分别设置skewX和skewY属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.skew(...).pos(...);
Sprite
 Inherited
startDrag(area:Rectangle = null, hasInertia:Boolean = false, elasticDistance:Number = 0, elasticBackTime:int = 300, data:* = null, disableMouseEvent:Boolean = false, ratio:Number = 0.92):void
开始拖动此对象。
Sprite
 Inherited
stop():void
停止动画播放。
AnimationPlayerBase
 Inherited
stopDrag():void
停止拖动此对象。
Sprite
 Inherited
timerLoop(delay:int, caller:*, method:Function, args:Array = null, coverBefore:Boolean = true, jumpFrame:Boolean = false):void
定时重复执行某函数。功能同Laya.timer.timerLoop()。
Node
 Inherited
timerOnce(delay:int, caller:*, method:Function, args:Array = null, coverBefore:Boolean = true):void
定时执行某函数一次。功能同Laya.timer.timerOnce()。
Node
 Inherited
将本地坐标系坐标转转换到父容器坐标系。
Sprite
 Inherited
根据zOrder进行重新排序。
Sprite
Events
 Event Summary Defined By
 Inherited添加到父对象后调度。Node
 Inherited鼠标点击对象后调度。Sprite
  动画播放完毕后调度。Animation
 Inherited加入节点树时调度。Node
 Inherited拖动结束后调度。Sprite
 Inherited拖动中调度。Sprite
 Inherited开始拖动后调度。Sprite
  播放到某标签后调度。Animation
 Inherited在显示对象上按下后调度。Sprite
 Inherited鼠标在对象身上进行移动后调度Sprite
 Inherited鼠标离开对象后调度。Sprite
 Inherited鼠标经过对象后调度。Sprite
 Inherited在显示对象抬起后调度。Sprite
 Inherited被父对象移除后调度。Node
 Inherited从节点树移除时调度。Node
Public Constants
 ConstantDefined By
 InheritedWRAP_PINGPONG : int = 2
[static] 动画播放顺序类型:pingpong播放(当按指定顺序播放完结尾后,如果继续播发,则会改变播放顺序)。
AnimationPlayerBase
 InheritedWRAP_POSITIVE : int = 0
[static] 动画播放顺序类型:正序播放。
AnimationPlayerBase
 InheritedWRAP_REVERSE : int = 1
[static] 动画播放顺序类型:逆序播放。
AnimationPlayerBase
Property Detail
autoAnimationproperty
autoAnimation:String  [write-only]

设置自动播放的动画名称,在LayaAir IDE中可以创建的多个动画组成的动画集合,选择其中一个动画名称进行播放。


Implementation
    public function set autoAnimation(value:String):void
autoPlayproperty 
autoPlay:Boolean  [write-only]

是否自动播放,默认为false。如果设置为true,则动画被创建并添加到舞台后自动播放。


Implementation
    public function set autoPlay(value:Boolean):void
framesproperty 
frames:Array

当前动画的帧图像数组。本类中,每个帧图像是一个Graphics对象,而动画播放就是定时切换Graphics对象的过程。


Implementation
    public function get frames():Array
    public function set frames(value:Array):void
framesMapproperty 
public static var framesMap:Object

动画模版缓存池,以key-value键值对存储,key可以自定义,也可以从指定的配置文件中读取,value为对应的动画模版,是一个Graphics对象数组,每个Graphics对象对应一个帧图像,动画的播放实质就是定时切换Graphics对象。

使用loadImages(...)、loadAtlas(...)、loadAnimation(...)、set source方法可以创建动画模版。使用play(...)可以播放指定动画。

sourceproperty 
source:String  [write-only]

动画数据源。

类型如下: 1. LayaAir IDE动画文件路径:使用此类型需要预加载所需的图集资源,否则会创建失败,如果不想预加载或者需要创建完毕的回调,请使用loadAnimation(...)方法; 2. 图集路径:使用此类型创建的动画模版不会被缓存到动画模版缓存池中,如果需要缓存或者创建完毕的回调,请使用loadAtlas(...)方法; 3. 图片路径集合:使用此类型创建的动画模版不会被缓存到动画模版缓存池中,如果需要缓存,请使用loadImages(...)方法。


Implementation
    public function set source(value:String):void
Constructor Detail
Animation()Constructor
public function Animation()

创建一个新的 Animation 实例。

Method Detail
clear()method
override public function clear():void

停止动画播放,并清理对象属性。之后可存入对象池,方便对象复用。

clearCache()method 
public static function clearCache(key:String):void

从动画模版缓存池中清除指定key值的动画数据。

开发者在调用创建动画模版函数时,可以手动指定此值。而如果是由LayaAir IDE创建的动画集,解析后的key格式为:"url#":表示动画集的默认动画模版,如果以此值为参数,会清除整个动画集数据;"url#aniName":表示相应名称的动画模版。

Parameters

key:String — 动画模板在动画模版缓存池中的key。

createFrames()method 
public static function createFrames(url:*, name:String):Array

创建动画模板,多个动画可共享同一份动画模板,而不必每次都创建一份新的,从而节省创建Graphics集合的开销。

Parameters

url:* — 图集路径或者图片路径数组。如果是图集路径,需要相应图集已经被预加载,如果没有预加载,会导致创建失败。
 
name:String — 动画模板在动画模版缓存池中的key。如果不为空,则以此为key缓存动画模板,否则不缓存。

Returns
Array — 动画模板。
destroy()method 
override public function destroy(destroyChild:Boolean = true):void

销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。

destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。

Parameters

destroyChild:Boolean (default = true) — (可选)是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。

loadAnimation()method 
public function loadAnimation(url:String, loaded:Handler = null, atlas:String = null):Animation

加载并解析由LayaAir IDE制作的动画文件,此文件中可能包含多个动画。默认帧率为在IDE中设计的帧率,如果调用过set interval,则使用此帧间隔对应的帧率。加载后创建动画模版,并缓存到动画模版缓存池,key "url#动画名称" 对应相应动画名称的动画模板,key "url#" 对应动画模版集合的默认动画模版。

注意:如果调用本方法前,还没有预加载动画使用的图集,请将atlas参数指定为对应的图集路径,否则会导致动画创建失败。

动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。

因为返回值为Animation对象本身,所以可以使用如下语法:ani.loadAnimation(...).loadAnimation(...).play(...);。

Parameters

url:String — 动画文件路径。可由LayaAir IDE创建并发布。
 
loaded:Handler (default = null) — (可选)使用指定动画资源初始化动画完毕的回调。
 
atlas:String (default = null) — (可选)动画用到的图集地址(可选)。

Returns
Animation — 返回动画本身。
loadAtlas()method 
public function loadAtlas(url:String, loaded:Handler = null, cacheName:String):Animation

根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下:1. 动画模版缓存池中key为cacheName的动画模版;2. 如果不存在,则加载指定的图集并创建动画模版。

注意:只有指定不为空的cacheName,才能将创建好的动画模版以此为key缓存到动画模版缓存池,否则不进行缓存。

动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。

因为返回值为Animation对象本身,所以可以使用如下语法:ani.loadAtlas(...).loadAtlas(...).play(...);。

Parameters

url:String — 图集路径。需要创建动画模版时,会以此为数据源。
 
loaded:Handler (default = null) — (可选)使用指定图集初始化动画完毕的回调。
 
cacheName:String — (可选)动画模板在动画模版缓存池中的key。如果此参数不为空,表示使用动画模版缓存池。如果动画模版缓存池中存在key为cacheName的动画模版,则使用此模版。否则,创建新的动画模版,如果cacheName不为空,则以cacheName为key缓存到动画模版缓存池中,如果cacheName为空,不进行缓存。

Returns
Animation — 返回动画本身。
loadImages()method 
public function loadImages(urls:Array, cacheName:String):Animation

根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下:1. 动画模版缓存池中key为cacheName的动画模版;2. 如果不存在,则加载指定的图片集合并创建动画模版。注意:只有指定不为空的cacheName,才能将创建好的动画模版以此为key缓存到动画模版缓存池,否则不进行缓存。

动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。

因为返回值为Animation对象本身,所以可以使用如下语法:ani.loadImages(...).loadImages(...).play(...);。

Parameters

urls:Array — 图片路径集合。需要创建动画模版时,会以此为数据源。参数形如:[url1,url2,url3,...]。
 
cacheName:String — (可选)动画模板在动画模版缓存池中的key。如果此参数不为空,表示使用动画模版缓存池。如果动画模版缓存池中存在key为cacheName的动画模版,则使用此模版。否则,创建新的动画模版,如果cacheName不为空,则以cacheName为key缓存到动画模版缓存池中,如果cacheName为空,不进行缓存。

Returns
Animation — 返回Animation对象本身。
play()method 
override public function play(start:* = 0, loop:Boolean = true, name:String, showWarn:Boolean = true):void

开始播放动画。会在动画模版缓存池中查找key值为name的动画模版,存在则用此动画模版初始化当前序列帧, 如果不存在,则使用当前序列帧。

play(...)方法被设计为在创建实例后的任何时候都可以被调用,调用后就处于播放状态,当相应的资源加载完毕、调用动画帧填充方法(set frames)或者将实例显示在舞台上时,会判断是否处于播放状态,如果是,则开始播放。

配合wrapMode属性,可设置动画播放顺序类型。

Parameters

start:* (default = 0) — (可选)指定动画播放开始的索引(int)或帧标签(String)。帧标签可以通过addLabel(...)和removeLabel(...)进行添加和删除。
 
loop:Boolean (default = true) — (可选)是否循环播放。
 
name:String — (可选)动画模板在动画模版缓存池中的key,也可认为是动画名称。如果name为空,则播放当前动画序列帧;如果不为空,则在动画模版缓存池中寻找key值为name的动画模版,如果存在则用此动画模版初始化当前序列帧并播放,如果不存在,则仍然播放当前动画序列帧;如果没有当前动画的帧数据,则不播放,但该实例仍然处于播放状态。
 
showWarn:Boolean (default = true)

Event Detail
complete Event
Event Object Type: laya.events.Event
Event.type property = Event.COMPLETE

动画播放完毕后调度。

label Event  
Event Object Type: laya.events.Event
Event.type property = Event.LABEL

播放到某标签后调度。