Packagelaya.display
Classpublic class Sprite
InheritanceSprite Inheritance Node Inheritance EventDispatcher Inheritance Object
Implements laya.display.ILayout
Subclasses AnimationPlayerBase, Component, DialogManager, GridSprite, MapLayer, MovieClip, Particle2D, Scene, Skeleton, Stage, Text, TileAniSprite, Video

Sprite 是基本的显示图形的显示列表节点。 Sprite 默认没有宽高,默认不接受鼠标事件。通过 graphics 可以绘制图片或者矢量图,支持旋转,缩放,位移等操作。Sprite同时也是容器类,可用来添加多个子节点。

注意: Sprite 默认没有宽高,可以通过getBounds函数获取;也可手动设置宽高;还可以设置autoSize=true,然后再获取宽高。Sprite的宽高一般用于进行碰撞检测和排版,并不影响显示图像大小,如果需要更改显示图像大小,请使用 scaleXscaleYscale

Sprite 默认不接受鼠标事件,即mouseEnabled=false,但是只要对其监听任意鼠标事件,会自动打开自己以及所有父对象的mouseEnabled=true。所以一般也无需手动设置mouseEnabled

LayaAir引擎API设计精简巧妙。核心显示类只有一个SpriteSprite针对不同的情况做了渲染优化,所以保证一个类实现丰富功能的同时,又达到高性能。



Public Properties
 PropertyDefined By
  alpha : Number
透明度,值为0-1,默认值为1,表示不透明。更改alpha值会影响drawcall。
Sprite
  autoSize : Boolean = false
指定是否自动计算宽高数据。默认值为 false 。 Sprite宽高默认为0,并且不会随着绘制内容的变化而变化,如果想根据绘制内容获取宽高,可以设置本属性为true,或者通过getBounds方法获取。设置为true,对性能有一定影响。
Sprite
  blendMode : String
指定要使用的混合模式。目前只支持"lighter"。
Sprite
  cacheAs : 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
  cacheAsBitmap : Boolean
指定显示对象是否缓存为静态图像。功能同cacheAs的normal模式。建议优先使用cacheAs代替。
Sprite
  customRenderEnable : Boolean
[write-only] 设置是否开启自定义渲染,只有开启自定义渲染,才能使用customRender函数渲染。
Sprite
 Inheriteddestroyed : Boolean
[只读]是否已经销毁。对象销毁后不能再使用。
Node
 InheriteddisplayedInStage : Boolean
[read-only] 表示是否在显示列表中显示。
Node
  filters : Array
滤镜集合。可以设置多个滤镜组合。
Sprite
  globalScaleX : Number
[read-only] 获得相对于stage的全局X轴缩放值(会叠加父亲节点的缩放值)。
Sprite
  globalScaleY : Number
[read-only] 获得相对于stage的全局Y轴缩放值(会叠加父亲节点的缩放值)。
Sprite
  graphics : Graphics
绘图对象。封装了绘制位图和矢量图的接口,Sprite所有的绘图操作都通过Graphics来实现的。
Sprite
  height : Number
显示对象的高度,单位为像素,默认为0。 此高度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。 可以通过getbounds获取显示对象图像的实际高度。
Sprite
  hitArea : *
可以设置一个Rectangle区域作为点击区域,或者设置一个HitArea实例作为点击区域,HitArea内可以设置可点击和不可点击区域。 如果不设置hitArea,则根据宽高形成的区域进行碰撞。
Sprite
  hitTestPrior : Boolean = false
指定鼠标事件检测是优先检测自身,还是优先检测其子对象。鼠标事件检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。 如果为false,优先检测子对象,当有子对象被命中时,中断检测,获得命中目标。如果未命中任何子对象,最后再检测此对象;如果为true,则优先检测本对象,如果本对象没有被命中,直接中断检测,表示没有命中目标;如果本对象被命中,则进一步递归检测其子对象,以确认最终的命中目标。 合理使用本属性,能减少鼠标事件检测的节点,提高性能。可以设置为true的情况:开发者并不关心此节点的子节点的鼠标事件检测结果,也就是以此节点作为其子节点的鼠标事件检测依据。 Stage对象和UI的View组件默认为true。
Sprite
  mask : Sprite
遮罩,可以设置一个对象(支持位图和矢量图),根据对象形状进行遮罩显示。 【注意】遮罩对象坐标系是相对遮罩对象本身的,和Flash机制不同
Sprite
  mouseEnabled : Boolean
是否接受鼠标事件。 默认为false,如果监听鼠标事件,则会自动设置本对象及父节点的属性 mouseEnable 的值都为 true(如果父节点手动设置为false,则不会更改)。
Sprite
  mouseThrough : Boolean = false
鼠标事件与此对象的碰撞检测是否可穿透。碰撞检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。 穿透表示鼠标事件发生的位置处于本对象绘图区域内时,才算命中,而与对象宽高和值为Rectangle对象的hitArea属性无关。如果sprite.hitArea值是HitArea对象,表示显式声明了此对象的鼠标事件响应区域,而忽略对象的宽高、mouseThrough属性。 影响对象鼠标事件响应区域的属性为:width、height、hitArea,优先级顺序为:hitArea(type:HitArea)>hitArea(type:Rectangle)>width/height。
Sprite
  mouseX : Number
[read-only] 返回鼠标在此对象坐标系上的 X 轴坐标信息。
Sprite
  mouseY : Number
[read-only] 返回鼠标在此对象坐标系上的 Y 轴坐标信息。
Sprite
 Inheritedname : String
节点名称。
Node
 InheritednumChildren : int
[read-only] 子对象数量。
Node
  optimizeScrollRect : Boolean
指定是否对使用了 scrollRect 的显示对象进行优化处理。默认为false(不优化)。 当值为ture时:将对此对象使用了scrollRect 设定的显示区域以外的显示内容不进行渲染,以提高性能(如果子对象有旋转缩放或者中心点偏移,则显示筛选会不精确)。
Sprite
  parent : Node
[override]
Sprite
  pivotX : Number
X轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
Sprite
  pivotY : Number
Y轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
Sprite
  rotation : Number
旋转角度,默认值为0。以角度为单位。
Sprite
  scaleX : Number
X轴缩放值,默认值为1。设置为负数,可以实现水平反转效果,比如scaleX=-1。
Sprite
  scaleY : Number
Y轴缩放值,默认值为1。设置为负数,可以实现垂直反转效果,比如scaleX=-1。
Sprite
  scrollRect : Rectangle
显示对象的滚动矩形范围,具有裁剪效果(如果只想限制子对象渲染区域,请使用viewport),设置optimizeScrollRect=true,可以优化裁剪区域外的内容不进行渲染。 srollRect和viewport的区别: 1.srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。 2.设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。
Sprite
  skewX : Number
水平倾斜角度,默认值为0。以角度为单位。
Sprite
  skewY : Number
垂直倾斜角度,默认值为0。以角度为单位。
Sprite
  stage : Stage
[read-only] 对舞台 stage 的引用。
Sprite
  staticCache : Boolean
是否静态缓存此对象的当前帧的最终属性。为 true 时,子对象变化时不会自动更新缓存,但是可以通过调用 reCache 方法手动刷新。 注意: 1.
Sprite
  texture : Texture
设置一个Texture实例,并显示此图片(如果之前有其他绘制,则会被清除掉)。等同于graphics.clear();graphics.drawTexture()
Sprite
 Inheritedtimer : Timer
时间控制器,默认为Laya.timer。
Node
  transform : Matrix
对象的矩阵信息。通过设置矩阵可以实现节点旋转,缩放,位移效果。 矩阵更多信息请参考 Matrix
Sprite
  viewport : Rectangle = null
视口大小,视口外的子对象,将不被渲染(如果想实现裁剪效果,请使用srollRect),合理使用能提高渲染性能。比如由一个个小图片拼成的地图块,viewport外面的小图片将不渲染 srollRect和viewport的区别: 1.
Sprite
  visible : Boolean
表示是否可见,默认为true。如果设置不可见,节点将不被渲染。
Sprite
  width : Number
显示对象的宽度,单位为像素,默认为0。 此宽度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。 可以通过getbounds获取显示对象图像的实际宽度。
Sprite
  x : Number
表示显示对象相对于父容器的水平方向坐标值。
Sprite
  y : Number
表示显示对象相对于父容器的垂直方向坐标值。
Sprite
  zOrder : Number
z排序,更改此值,则会按照值的大小对同一容器的所有对象重新排序。值越大,越靠上。默认为0,则根据添加顺序排序。
Sprite
Public Methods
 MethodDefined By
 Inherited
添加子节点。
Node
 Inherited
addChildAt(node:Node, index:int):Node
添加子节点到指定的索引位置。
Node
 Inherited
addChildren(... args):void
批量增加子节点
Node
 Inherited
clearTimer(caller:*, method:Function):void
清理定时器。功能同Laya.timer.clearTimer()。
Node
 Inherited
contains(node:Node):Boolean
当前容器是否包含指定的 Node 节点对象 。
Node
  
customRender(context:RenderContext, x:Number, y:Number):void
自定义更新、呈现显示对象。一般用来扩展渲染模式,请合理使用,可能会导致在加速器上无法渲染。 注意不要在此函数内增加或删除树节点,否则会对树节点遍历造成影响。
Sprite
  
destroy(destroyChild:Boolean = true):void
[override] 销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。 destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。
Sprite
 Inherited
销毁所有子对象,不销毁自己本身。
Node
  
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
  
fromImage(url:String):Sprite
[static] 根据图片地址创建一个新的 Sprite 对象用于加载并显示此图片。
Sprite
  
将父容器坐标系坐标转换到本地坐标系。
Sprite
  
获取本对象在父容器坐标系的矩形显示区域。 注意: 1.计算量较大,尽量少用,如果需要频繁使用,可以通过手动设置 setBounds 来缓存自身边界信息,从而避免比较消耗性能的计算。2.
Sprite
 Inherited
getChildAt(index:int):Node
根据子节点的索引位置,获取子节点对象。
Node
 Inherited
getChildByName(name:String):Node
根据子节点的名字,获取子节点对象。
Node
 Inherited
根据子节点对象,获取子节点的索引位置。
Node
  
getGraphicBounds(realSize:Boolean = false):Rectangle
返回此实例中的绘图对象( Graphics )的显示区域,不包括子对象。
Sprite
  
获得相对于本对象上的鼠标坐标信息。
Sprite
  
获取对象在自身坐标系的边界范围。与 setBounds 对应。 注意:计算量较大,尽量少用,如果需要频繁使用,可以提前手动设置 setBounds 来缓存自身边界信息,从而避免比较消耗性能的计算。
Sprite
  
globalToLocal(point:Point, createNewPoint:Boolean = false):Point
把stage的全局坐标转换为本地坐标。
Sprite
 Inherited
hasListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
  
hitTestPoint(x:Number, y:Number):Boolean
检测某个点是否在此对象内。
Sprite
 Inherited
isMouseEvent(type:String):Boolean
检测指定事件类型是否是鼠标事件。
EventDispatcher
  
loadImage(url:String, x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0, complete:Handler = null):Sprite
加载并显示一个图片。功能等同于graphics.loadImage方法。支持异步加载。 注意:多次调用loadImage绘制不同的图片,会同时显示。
Sprite
  
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
  
on(type:String, caller:*, listener:Function, args:Array = null):EventDispatcher
[override] 增加事件侦听器,以使侦听器能够接收事件通知。 如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。
Sprite
  
once(type:String, caller:*, listener:Function, args:Array = null):EventDispatcher
[override] 增加事件侦听器,以使侦听器能够接收事件通知,此侦听事件响应一次后则自动移除侦听。 如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。
Sprite
  
cacheAs时,设置所有父对象缓存失效。
Sprite
  
pivot(x:Number, y:Number):Sprite
设置轴心点。相当于分别设置pivotX和pivotY属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pivot(...).pos(...);
Sprite
  
pos(x:Number, y:Number, speedMode:Boolean = false):Sprite
设置坐标位置。相当于分别设置x和y属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pos(...).scale(...);
Sprite
  
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
从父容器删除自己,如已经被删除不会抛出异常。
Node
  
render(context:RenderContext, x:Number, y:Number):void
更新、呈现显示对象。由系统调用。
Sprite
  
repaint():void
cacheAs后,设置自己和父对象缓存失效。
Sprite
 Inherited
replaceChild(newNode:Node, oldNode:Node):Node
替换子节点。
Node
  
scale(scaleX:Number, scaleY:Number, speedMode:Boolean = false):Sprite
设置缩放。相当于分别设置scaleX和scaleY属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.scale(...).pos(...);
Sprite
  
setBounds(bound:Rectangle):void
设置对象在自身坐标系下的边界范围。与 getSelfBounds 对应。当 autoSize==true 时,会影响对象宽高。设置后,当需要获取自身边界范围时,就不再需要计算,合理使用能提高性能。比如 getBounds 会优先使用 setBounds 指定的值,如果没有指定则进行计算,此计算会对性能消耗比较大。 注意: setBounds 与 getBounds 并非对应相等关系, getBounds 获取的是本对象在父容器坐标系下的边界范围,通过设置 setBounds 会影响 getBounds 的结果。
Sprite
 Inherited
setChildIndex(node:Node, index:int):Node
设置子节点的索引位置。
Node
  
size(width:Number, height:Number):Sprite
设置宽高。相当于分别设置width和height属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.size(...).pos(...);
Sprite
  
skew(skewX:Number, skewY:Number):Sprite
设置倾斜角度。相当于分别设置skewX和skewY属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.skew(...).pos(...);
Sprite
  
startDrag(area:Rectangle = null, hasInertia:Boolean = false, elasticDistance:Number = 0, elasticBackTime:int = 300, data:* = null, disableMouseEvent:Boolean = false, ratio:Number = 0.92):void
开始拖动此对象。
Sprite
  
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
  
将本地坐标系坐标转转换到父容器坐标系。
Sprite
  
根据zOrder进行重新排序。
Sprite
Events
 Event Summary Defined By
 Inherited添加到父对象后调度。Node
  鼠标点击对象后调度。Sprite
 Inherited加入节点树时调度。Node
  拖动结束后调度。Sprite
  拖动中调度。Sprite
  开始拖动后调度。Sprite
  在显示对象上按下后调度。Sprite
  鼠标在对象身上进行移动后调度Sprite
  鼠标离开对象后调度。Sprite
  鼠标经过对象后调度。Sprite
  在显示对象抬起后调度。Sprite
 Inherited被父对象移除后调度。Node
 Inherited从节点树移除时调度。Node
Property Detail
alphaproperty
alpha:Number

透明度,值为0-1,默认值为1,表示不透明。更改alpha值会影响drawcall。


Implementation
    public function get alpha():Number
    public function set alpha(value:Number):void
autoSizeproperty 
public var autoSize:Boolean = false

指定是否自动计算宽高数据。默认值为 false 。

Sprite宽高默认为0,并且不会随着绘制内容的变化而变化,如果想根据绘制内容获取宽高,可以设置本属性为true,或者通过getBounds方法获取。设置为true,对性能有一定影响。

blendModeproperty 
blendMode:String

指定要使用的混合模式。目前只支持"lighter"。


Implementation
    public function get blendMode():String
    public function set blendMode(value:String):void
cacheAsproperty 
cacheAs:String

指定显示对象是否缓存为静态图像,cacheAs时,子对象发生变化,会自动重新缓存,同时也可以手动调用reCache方法更新缓存。

建议把不经常变化的“复杂内容”缓存为静态图像,能极大提高渲染性能。cacheAs有"none","normal"和"bitmap"三个值可选。

  • 默认为"none",不做任何缓存。
  • 当值为"normal"时,canvas模式下进行画布缓存,webgl模式下进行命令缓存。
  • 当值为"bitmap"时,canvas模式下进行依然是画布缓存,webgl模式下使用renderTarget缓存。
  • webgl下renderTarget缓存模式缺点:会额外创建renderTarget对象,增加内存开销,缓存面积有最大2048限制,不断重绘时会增加CPU开销。优点:大幅减少drawcall,渲染性能最高。 webgl下命令缓存模式缺点:只会减少节点遍历及命令组织,不会减少drawcall数,性能中等。优点:没有额外内存开销,无需renderTarget支持。


    Implementation
        public function get cacheAs():String
        public function set cacheAs(value:String):void
    cacheAsBitmapproperty 
    cacheAsBitmap:Boolean

    指定显示对象是否缓存为静态图像。功能同cacheAs的normal模式。建议优先使用cacheAs代替。


    Implementation
        public function get cacheAsBitmap():Boolean
        public function set cacheAsBitmap(value:Boolean):void
    customRenderEnableproperty 
    customRenderEnable:Boolean  [write-only]

    设置是否开启自定义渲染,只有开启自定义渲染,才能使用customRender函数渲染。


    Implementation
        public function set customRenderEnable(value:Boolean):void
    filtersproperty 
    filters:Array

    滤镜集合。可以设置多个滤镜组合。


    Implementation
        public function get filters():Array
        public function set filters(value:Array):void
    globalScaleXproperty 
    globalScaleX:Number  [read-only]

    获得相对于stage的全局X轴缩放值(会叠加父亲节点的缩放值)。


    Implementation
        public function get globalScaleX():Number
    globalScaleYproperty 
    globalScaleY:Number  [read-only]

    获得相对于stage的全局Y轴缩放值(会叠加父亲节点的缩放值)。


    Implementation
        public function get globalScaleY():Number
    graphicsproperty 
    graphics:Graphics

    绘图对象。封装了绘制位图和矢量图的接口,Sprite所有的绘图操作都通过Graphics来实现的。


    Implementation
        public function get graphics():Graphics
        public function set graphics(value:Graphics):void
    heightproperty 
    height:Number

    显示对象的高度,单位为像素,默认为0。

    此高度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。

    可以通过getbounds获取显示对象图像的实际高度。


    Implementation
        public function get height():Number
        public function set height(value:Number):void
    hitAreaproperty 
    hitArea:*

    可以设置一个Rectangle区域作为点击区域,或者设置一个HitArea实例作为点击区域,HitArea内可以设置可点击和不可点击区域。

    如果不设置hitArea,则根据宽高形成的区域进行碰撞。


    Implementation
        public function get hitArea():*
        public function set hitArea(value:any):void
    hitTestPriorproperty 
    public var hitTestPrior:Boolean = false

    指定鼠标事件检测是优先检测自身,还是优先检测其子对象。鼠标事件检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。

    如果为false,优先检测子对象,当有子对象被命中时,中断检测,获得命中目标。如果未命中任何子对象,最后再检测此对象;如果为true,则优先检测本对象,如果本对象没有被命中,直接中断检测,表示没有命中目标;如果本对象被命中,则进一步递归检测其子对象,以确认最终的命中目标。

    合理使用本属性,能减少鼠标事件检测的节点,提高性能。可以设置为true的情况:开发者并不关心此节点的子节点的鼠标事件检测结果,也就是以此节点作为其子节点的鼠标事件检测依据。

    Stage对象和UI的View组件默认为true。

    The default value is false 优先检测此对象的子对象,当递归检测完所有子对象后,仍然没有找到目标对象,最后再检测此对象。.

    maskproperty 
    mask:Sprite

    遮罩,可以设置一个对象(支持位图和矢量图),根据对象形状进行遮罩显示。

    【注意】遮罩对象坐标系是相对遮罩对象本身的,和Flash机制不同


    Implementation
        public function get mask():Sprite
        public function set mask(value:Sprite):void
    mouseEnabledproperty 
    mouseEnabled:Boolean

    是否接受鼠标事件。 默认为false,如果监听鼠标事件,则会自动设置本对象及父节点的属性 mouseEnable 的值都为 true(如果父节点手动设置为false,则不会更改)。


    Implementation
        public function get mouseEnabled():Boolean
        public function set mouseEnabled(value:Boolean):void
    mouseThroughproperty 
    public var mouseThrough:Boolean = false

    鼠标事件与此对象的碰撞检测是否可穿透。碰撞检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。

    穿透表示鼠标事件发生的位置处于本对象绘图区域内时,才算命中,而与对象宽高和值为Rectangle对象的hitArea属性无关。如果sprite.hitArea值是HitArea对象,表示显式声明了此对象的鼠标事件响应区域,而忽略对象的宽高、mouseThrough属性。

    影响对象鼠标事件响应区域的属性为:width、height、hitArea,优先级顺序为:hitArea(type:HitArea)>hitArea(type:Rectangle)>width/height。

    The default value is false 不可穿透,此对象的鼠标响应区域由width、height、hitArea属性决定。

    .

    mouseXproperty 
    mouseX:Number  [read-only]

    返回鼠标在此对象坐标系上的 X 轴坐标信息。


    Implementation
        public function get mouseX():Number
    mouseYproperty 
    mouseY:Number  [read-only]

    返回鼠标在此对象坐标系上的 Y 轴坐标信息。


    Implementation
        public function get mouseY():Number
    optimizeScrollRectproperty 
    optimizeScrollRect:Boolean

    指定是否对使用了 scrollRect 的显示对象进行优化处理。默认为false(不优化)。

    当值为ture时:将对此对象使用了scrollRect 设定的显示区域以外的显示内容不进行渲染,以提高性能(如果子对象有旋转缩放或者中心点偏移,则显示筛选会不精确)。


    Implementation
        public function get optimizeScrollRect():Boolean
        public function set optimizeScrollRect(value:Boolean):void
    parentproperty 
    parent:Node[override]


    Implementation
        public function get parent():Node
        public function set parent(value:Node):void
    pivotXproperty 
    pivotX:Number

    X轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。


    Implementation
        public function get pivotX():Number
        public function set pivotX(value:Number):void
    pivotYproperty 
    pivotY:Number

    Y轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。


    Implementation
        public function get pivotY():Number
        public function set pivotY(value:Number):void
    rotationproperty 
    rotation:Number

    旋转角度,默认值为0。以角度为单位。


    Implementation
        public function get rotation():Number
        public function set rotation(value:Number):void
    scaleXproperty 
    scaleX:Number

    X轴缩放值,默认值为1。设置为负数,可以实现水平反转效果,比如scaleX=-1。


    Implementation
        public function get scaleX():Number
        public function set scaleX(value:Number):void
    scaleYproperty 
    scaleY:Number

    Y轴缩放值,默认值为1。设置为负数,可以实现垂直反转效果,比如scaleX=-1。


    Implementation
        public function get scaleY():Number
        public function set scaleY(value:Number):void
    scrollRectproperty 
    scrollRect:Rectangle

    显示对象的滚动矩形范围,具有裁剪效果(如果只想限制子对象渲染区域,请使用viewport),设置optimizeScrollRect=true,可以优化裁剪区域外的内容不进行渲染。

    srollRect和viewport的区别: 1.srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。 2.设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。


    Implementation
        public function get scrollRect():Rectangle
        public function set scrollRect(value:Rectangle):void
    skewXproperty 
    skewX:Number

    水平倾斜角度,默认值为0。以角度为单位。


    Implementation
        public function get skewX():Number
        public function set skewX(value:Number):void
    skewYproperty 
    skewY:Number

    垂直倾斜角度,默认值为0。以角度为单位。


    Implementation
        public function get skewY():Number
        public function set skewY(value:Number):void
    stageproperty 
    stage:Stage  [read-only]

    对舞台 stage 的引用。


    Implementation
        public function get stage():Stage
    staticCacheproperty 
    staticCache:Boolean

    是否静态缓存此对象的当前帧的最终属性。为 true 时,子对象变化时不会自动更新缓存,但是可以通过调用 reCache 方法手动刷新。 注意: 1. 设置 cacheAs 为非空和非"none"时才有效。 2. 由于渲染的时机在脚本执行之后,也就是说当前帧渲染的是对象的最终属性,所以如果在当前帧渲染之前、设置静态缓存之后改变对象属性,则最终渲染结果表现的是对象的最终属性。


    Implementation
        public function get staticCache():Boolean
        public function set staticCache(value:Boolean):void
    textureproperty 
    texture:Texture

    设置一个Texture实例,并显示此图片(如果之前有其他绘制,则会被清除掉)。等同于graphics.clear();graphics.drawTexture()


    Implementation
        public function get texture():Texture
        public function set texture(value:Texture):void
    transformproperty 
    transform:Matrix

    对象的矩阵信息。通过设置矩阵可以实现节点旋转,缩放,位移效果。

    矩阵更多信息请参考 Matrix


    Implementation
        public function get transform():Matrix
        public function set transform(value:Matrix):void
    viewportproperty 
    public var viewport:Rectangle = null

    视口大小,视口外的子对象,将不被渲染(如果想实现裁剪效果,请使用srollRect),合理使用能提高渲染性能。比如由一个个小图片拼成的地图块,viewport外面的小图片将不渲染

    srollRect和viewport的区别: 1. srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。 2. 设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。

    The default value is null.

    visibleproperty 
    visible:Boolean

    表示是否可见,默认为true。如果设置不可见,节点将不被渲染。


    Implementation
        public function get visible():Boolean
        public function set visible(value:Boolean):void
    widthproperty 
    width:Number

    显示对象的宽度,单位为像素,默认为0。

    此宽度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。

    可以通过getbounds获取显示对象图像的实际宽度。


    Implementation
        public function get width():Number
        public function set width(value:Number):void
    xproperty 
    x:Number

    表示显示对象相对于父容器的水平方向坐标值。


    Implementation
        public function get x():Number
        public function set x(value:Number):void
    yproperty 
    y:Number

    表示显示对象相对于父容器的垂直方向坐标值。


    Implementation
        public function get y():Number
        public function set y(value:Number):void
    zOrderproperty 
    zOrder:Number

    z排序,更改此值,则会按照值的大小对同一容器的所有对象重新排序。值越大,越靠上。默认为0,则根据添加顺序排序。


    Implementation
        public function get zOrder():Number
        public function set zOrder(value:Number):void
    Method Detail
    customRender()method
    public function customRender(context:RenderContext, x:Number, y:Number):void

    自定义更新、呈现显示对象。一般用来扩展渲染模式,请合理使用,可能会导致在加速器上无法渲染。

    注意不要在此函数内增加或删除树节点,否则会对树节点遍历造成影响。

    Parameters

    context:RenderContext — 渲染的上下文引用。
     
    x:Number — X轴坐标。
     
    y:Number — Y轴坐标。

    destroy()method 
    override public function destroy(destroyChild:Boolean = true):void

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

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

    Parameters

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

    drawToCanvas()method 
    public function drawToCanvas(canvasWidth:Number, canvasHeight:Number, offsetX:Number, offsetY:Number):HTMLCanvas

    绘制 当前SpriteCanvas 上,并返回一个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信息,可以发给服务器或者保存为图片

    Parameters

    canvasWidth:Number — 画布宽度。
     
    canvasHeight:Number — 画布高度。
     
    offsetX:Number — 绘制的 X 轴偏移量。
     
    offsetY:Number — 绘制的 Y 轴偏移量。

    Returns
    HTMLCanvas — HTMLCanvas 对象。
    fromImage()method 
    public static function fromImage(url:String):Sprite

    根据图片地址创建一个新的 Sprite 对象用于加载并显示此图片。

    Parameters

    url:String — 图片地址。

    Returns
    Sprite — 返回新的 Sprite 对象。
    fromParentPoint()method 
    public function fromParentPoint(point:Point):Point

    将父容器坐标系坐标转换到本地坐标系。

    Parameters

    point:Point — 父容器坐标点。

    Returns
    Point — 转换后的点。
    getBounds()method 
    public function getBounds():Rectangle

    获取本对象在父容器坐标系的矩形显示区域。

    注意: 1.计算量较大,尽量少用,如果需要频繁使用,可以通过手动设置 setBounds 来缓存自身边界信息,从而避免比较消耗性能的计算。2. setBoundsgetBounds 并非对应相等关系, getBounds 获取的是本对象在父容器坐标系下的边界范围,通过设置 setBounds 会影响 getBounds 的结果。

    Returns
    Rectangle — 矩形区域。
    getGraphicBounds()method 
    public function getGraphicBounds(realSize:Boolean = false):Rectangle

    返回此实例中的绘图对象( Graphics )的显示区域,不包括子对象。

    Parameters

    realSize:Boolean (default = false) — (可选)使用图片的真实大小,默认为false

    Returns
    Rectangle — 一个 Rectangle 对象,表示获取到的显示区域。
    getMousePoint()method 
    public function getMousePoint():Point

    获得相对于本对象上的鼠标坐标信息。

    Returns
    Point
    getSelfBounds()method 
    public function getSelfBounds():Rectangle

    获取对象在自身坐标系的边界范围。与 setBounds 对应。

    注意:计算量较大,尽量少用,如果需要频繁使用,可以提前手动设置 setBounds 来缓存自身边界信息,从而避免比较消耗性能的计算。

    Returns
    Rectangle — 矩形区域。
    globalToLocal()method 
    public function globalToLocal(point:Point, createNewPoint:Boolean = false):Point

    把stage的全局坐标转换为本地坐标。

    Parameters

    point:Point — 全局坐标点。
     
    createNewPoint:Boolean (default = false) — (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的point对象返回,减少对象创建开销。

    Returns
    Point — 转换后的坐标的点。
    hitTestPoint()method 
    public function hitTestPoint(x:Number, y:Number):Boolean

    检测某个点是否在此对象内。

    Parameters

    x:Number — 全局x坐标。
     
    y:Number — 全局y坐标。

    Returns
    Boolean — 表示是否在对象内。
    loadImage()method 
    public function loadImage(url:String, x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0, complete:Handler = null):Sprite

    加载并显示一个图片。功能等同于graphics.loadImage方法。支持异步加载。

    注意:多次调用loadImage绘制不同的图片,会同时显示。

    Parameters

    url:String — 图片地址。
     
    x:Number (default = 0) — (可选)显示图片的x位置。
     
    y:Number (default = 0) — (可选)显示图片的y位置。
     
    width:Number (default = 0) — (可选)显示图片的宽度,设置为0表示使用图片默认宽度。
     
    height:Number (default = 0) — (可选)显示图片的高度,设置为0表示使用图片默认高度。
     
    complete:Handler (default = null) — (可选)加载完成回调。

    Returns
    Sprite — 返回精灵对象本身。
    localToGlobal()method 
    public function localToGlobal(point:Point, createNewPoint:Boolean = false):Point

    把本地坐标转换为相对stage的全局坐标。

    Parameters

    point:Point — 本地坐标点。
     
    createNewPoint:Boolean (default = false) — (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的point对象返回,减少对象创建开销。

    Returns
    Point — 转换后的坐标的点。
    on()method 
    override public function on(type:String, caller:*, listener:Function, args:Array = null):EventDispatcher

    增加事件侦听器,以使侦听器能够接收事件通知。

    如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。

    Parameters

    type:String — 事件的类型。
     
    caller:* — 事件侦听函数的执行域。
     
    listener:Function — 事件侦听函数。
     
    args:Array (default = null) — (可选)事件侦听函数的回调参数。

    Returns
    EventDispatcher — 此 EventDispatcher 对象。
    once()method 
    override public function once(type:String, caller:*, listener:Function, args:Array = null):EventDispatcher

    增加事件侦听器,以使侦听器能够接收事件通知,此侦听事件响应一次后则自动移除侦听。

    如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。

    Parameters

    type:String — 事件的类型。
     
    caller:* — 事件侦听函数的执行域。
     
    listener:Function — 事件侦听函数。
     
    args:Array (default = null) — (可选)事件侦听函数的回调参数。

    Returns
    EventDispatcher — 此 EventDispatcher 对象。
    parentRepaint()method 
    public function parentRepaint():void

    cacheAs时,设置所有父对象缓存失效。

    pivot()method 
    public function pivot(x:Number, y:Number):Sprite

    设置轴心点。相当于分别设置pivotX和pivotY属性。

    因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pivot(...).pos(...);

    Parameters

    x:Number — X轴心点。
     
    y:Number — Y轴心点。

    Returns
    Sprite — 返回对象本身。
    pos()method 
    public function pos(x:Number, y:Number, speedMode:Boolean = false):Sprite

    设置坐标位置。相当于分别设置x和y属性。

    因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pos(...).scale(...);

    Parameters

    x:Number — X轴坐标。
     
    y:Number — Y轴坐标。
     
    speedMode:Boolean (default = false) — (可选)是否极速模式,正常是调用this.x=value进行赋值,极速模式直接调用内部函数处理,如果未重写x,y属性,建议设置为急速模式性能更高。

    Returns
    Sprite — 返回对象本身。
    reCache()method 
    public function reCache():void

    在设置cacheAs的情况下,调用此方法会重新刷新缓存。

    render()method 
    public function render(context:RenderContext, x:Number, y:Number):void

    更新、呈现显示对象。由系统调用。

    Parameters

    context:RenderContext — 渲染的上下文引用。
     
    x:Number — X轴坐标。
     
    y:Number — Y轴坐标。

    repaint()method 
    public function repaint():void

    cacheAs后,设置自己和父对象缓存失效。

    scale()method 
    public function scale(scaleX:Number, scaleY:Number, speedMode:Boolean = false):Sprite

    设置缩放。相当于分别设置scaleX和scaleY属性。

    因为返回值为Sprite对象本身,所以可以使用如下语法:spr.scale(...).pos(...);

    Parameters

    scaleX:Number — X轴缩放比例。
     
    scaleY:Number — Y轴缩放比例。
     
    speedMode:Boolean (default = false) — (可选)是否极速模式,正常是调用this.scaleX=value进行赋值,极速模式直接调用内部函数处理,如果未重写scaleX,scaleY属性,建议设置为急速模式性能更高。

    Returns
    Sprite — 返回对象本身。
    setBounds()method 
    public function setBounds(bound:Rectangle):void

    设置对象在自身坐标系下的边界范围。与 getSelfBounds 对应。当 autoSize==true 时,会影响对象宽高。设置后,当需要获取自身边界范围时,就不再需要计算,合理使用能提高性能。比如 getBounds 会优先使用 setBounds 指定的值,如果没有指定则进行计算,此计算会对性能消耗比较大。

    注意: setBoundsgetBounds 并非对应相等关系, getBounds 获取的是本对象在父容器坐标系下的边界范围,通过设置 setBounds 会影响 getBounds 的结果。

    Parameters

    bound:Rectangle — bounds矩形区域

    size()method 
    public function size(width:Number, height:Number):Sprite

    设置宽高。相当于分别设置width和height属性。

    因为返回值为Sprite对象本身,所以可以使用如下语法:spr.size(...).pos(...);

    Parameters

    width:Number — 宽度值。
     
    height:Number — 高度值。

    Returns
    Sprite — 返回对象本身。
    skew()method 
    public function skew(skewX:Number, skewY:Number):Sprite

    设置倾斜角度。相当于分别设置skewX和skewY属性。

    因为返回值为Sprite对象本身,所以可以使用如下语法:spr.skew(...).pos(...);

    Parameters

    skewX:Number — 水平倾斜角度。
     
    skewY:Number — 垂直倾斜角度。

    Returns
    Sprite — 返回对象本身
    startDrag()method 
    public function startDrag(area:Rectangle = null, hasInertia:Boolean = false, elasticDistance:Number = 0, elasticBackTime:int = 300, data:* = null, disableMouseEvent:Boolean = false, ratio:Number = 0.92):void

    开始拖动此对象。

    Parameters

    area:Rectangle (default = null) — (可选)拖动区域,此区域为当前对象注册点活动区域(不包括对象宽高),可选。
     
    hasInertia:Boolean (default = false) — (可选)鼠标松开后,是否还惯性滑动,默认为false,可选。
     
    elasticDistance:Number (default = 0) — (可选)橡皮筋效果的距离值,0为无橡皮筋效果,默认为0,可选。
     
    elasticBackTime:int (default = 300) — (可选)橡皮筋回弹时间,单位为毫秒,默认为300毫秒,可选。
     
    data:* (default = null) — (可选)拖动事件携带的数据,可选。
     
    disableMouseEvent:Boolean (default = false) — (可选)禁用其他对象的鼠标检测,默认为false,设置为true能提高性能。
     
    ratio:Number (default = 0.92) — (可选)惯性阻尼系数,影响惯性力度和时长。

    stopDrag()method 
    public function stopDrag():void

    停止拖动此对象。

    toParentPoint()method 
    public function toParentPoint(point:Point):Point

    将本地坐标系坐标转转换到父容器坐标系。

    Parameters

    point:Point — 本地坐标点。

    Returns
    Point — 转换后的点。
    updateZOrder()method 
    public function updateZOrder():void

    根据zOrder进行重新排序。

    Event Detail
    click Event
    Event Object Type: laya.events.Event
    Event.type property = Event.CLICK

    鼠标点击对象后调度。

    dragend Event  
    Event Object Type: laya.events.Event
    Event.type property = Event.DRAG_END

    拖动结束后调度。

    dragmove Event  
    Event Object Type: laya.events.Event
    Event.type property = Event.DRAG_MOVE

    拖动中调度。

    dragstart Event  
    Event Object Type: laya.events.Event
    Event.type property = Event.DRAG_START

    开始拖动后调度。

    mousedown Event  
    Event Object Type: laya.events.Event
    Event.type property = Event.MOUSE_DOWN

    在显示对象上按下后调度。

    mousemove Event  
    Event Object Type: laya.events.Event
    Event.type property = Event.MOUSE_MOVE

    鼠标在对象身上进行移动后调度

    mouseout Event  
    Event Object Type: laya.events.Event
    Event.type property = Event.MOUSE_OUT

    鼠标离开对象后调度。

    mouseover Event  
    Event Object Type: laya.events.Event
    Event.type property = Event.MOUSE_OVER

    鼠标经过对象后调度。

    mouseup Event  
    Event Object Type: laya.events.Event
    Event.type property = Event.MOUSE_UP

    在显示对象抬起后调度。