Package | laya.display |
Class | public class Sprite |
Inheritance | Sprite Node EventDispatcher 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
的宽高一般用于进行碰撞检测和排版,并不影响显示图像大小,如果需要更改显示图像大小,请使用 scaleX
, scaleY
, scale
。
Sprite
默认不接受鼠标事件,即mouseEnabled=false
,但是只要对其监听任意鼠标事件,会自动打开自己以及所有父对象的mouseEnabled=true
。所以一般也无需手动设置mouseEnabled
。
LayaAir引擎API设计精简巧妙。核心显示类只有一个Sprite
。Sprite
针对不同的情况做了渲染优化,所以保证一个类实现丰富功能的同时,又达到高性能。
Property | Defined 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 | ||
destroyed : Boolean [只读]是否已经销毁。对象销毁后不能再使用。 | Node | ||
displayedInStage : 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 | ||
name : String 节点名称。 | Node | ||
numChildren : 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 | ||
timer : 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 |
Method | Defined By | ||
---|---|---|---|
添加子节点。
| Node | ||
添加子节点到指定的索引位置。
| Node | ||
addChildren(... args):void
批量增加子节点
| Node | ||
clearTimer(caller:*, method:Function):void
清理定时器。功能同Laya.timer.clearTimer()。
| Node | ||
当前容器是否包含指定的 Node 节点对象 。
| Node | ||
customRender(context:RenderContext, x:Number, y:Number):void
自定义更新、呈现显示对象。一般用来扩展渲染模式,请合理使用,可能会导致在加速器上无法渲染。
注意不要在此函数内增加或删除树节点,否则会对树节点遍历造成影响。
| Sprite | ||
destroy(destroyChild:Boolean = true):void [override]
销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。
destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。
| Sprite | ||
destroyChildren():void
销毁所有子对象,不销毁自己本身。
| 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 | ||
event(type:String, data:* = null):Boolean
派发事件。
| EventDispatcher | ||
frameLoop(delay:int, caller:*, method:Function, args:Array = null, coverBefore:Boolean = true):void
定时重复执行某函数(基于帧率)。功能同Laya.timer.frameLoop()。
| Node | ||
frameOnce(delay:int, caller:*, method:Function, args:Array = null, coverBefore:Boolean = true):void
定时执行一次某函数(基于帧率)。功能同Laya.timer.frameOnce()。
| Node | ||
[static]
根据图片地址创建一个新的 Sprite 对象用于加载并显示此图片。
| Sprite | ||
将父容器坐标系坐标转换到本地坐标系。
| Sprite | ||
获取本对象在父容器坐标系的矩形显示区域。
注意: 1.计算量较大,尽量少用,如果需要频繁使用,可以通过手动设置 setBounds 来缓存自身边界信息,从而避免比较消耗性能的计算。2. | Sprite | ||
getChildAt(index:int):Node
根据子节点的索引位置,获取子节点对象。
| Node | ||
getChildByName(name:String):Node
根据子节点的名字,获取子节点对象。
| Node | ||
getChildIndex(node:Node):int
根据子节点对象,获取子节点的索引位置。
| Node | ||
getGraphicBounds(realSize:Boolean = false):Rectangle
返回此实例中的绘图对象( Graphics )的显示区域,不包括子对象。
| Sprite | ||
获得相对于本对象上的鼠标坐标信息。 | Sprite | ||
获取对象在自身坐标系的边界范围。与 setBounds 对应。
注意:计算量较大,尽量少用,如果需要频繁使用,可以提前手动设置 setBounds 来缓存自身边界信息,从而避免比较消耗性能的计算。
| Sprite | ||
把stage的全局坐标转换为本地坐标。
| Sprite | ||
hasListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
| EventDispatcher | ||
hitTestPoint(x:Number, y:Number):Boolean
检测某个点是否在此对象内。
| Sprite | ||
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 | ||
把本地坐标转换为相对stage的全局坐标。
| Sprite | ||
off(type:String, caller:*, listener:Function, onceOnly:Boolean = false):EventDispatcher
从 EventDispatcher 对象中删除侦听器。
| EventDispatcher | ||
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 | ||
parentRepaint():void cacheAs时,设置所有父对象缓存失效。 | Sprite | ||
设置轴心点。相当于分别设置pivotX和pivotY属性。
因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pivot(...).pos(...);
| Sprite | ||
设置坐标位置。相当于分别设置x和y属性。
因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pos(...).scale(...);
| Sprite | ||
reCache():void 在设置cacheAs的情况下,调用此方法会重新刷新缓存。 | Sprite | ||
删除子节点。
| Node | ||
removeChildAt(index:int):Node
根据子节点索引位置,删除对应的子节点对象。
| Node | ||
removeChildByName(name:String):Node
根据子节点名字删除对应的子节点对象,如果找不到不会抛出异常。
| Node | ||
removeChildren(beginIndex:int = 0, endIndex:int = 0x7fffffff):Node
删除指定索引区间的所有子对象。
| Node | ||
从父容器删除自己,如已经被删除不会抛出异常。
| Node | ||
render(context:RenderContext, x:Number, y:Number):void
更新、呈现显示对象。由系统调用。
| Sprite | ||
repaint():void cacheAs后,设置自己和父对象缓存失效。 | Sprite | ||
替换子节点。
| Node | ||
设置缩放。相当于分别设置scaleX和scaleY属性。
因为返回值为Sprite对象本身,所以可以使用如下语法:spr.scale(...).pos(...);
| Sprite | ||
设置对象在自身坐标系下的边界范围。与 getSelfBounds 对应。当 autoSize==true 时,会影响对象宽高。设置后,当需要获取自身边界范围时,就不再需要计算,合理使用能提高性能。比如 getBounds 会优先使用 setBounds 指定的值,如果没有指定则进行计算,此计算会对性能消耗比较大。
注意: setBounds 与 getBounds 并非对应相等关系, getBounds 获取的是本对象在父容器坐标系下的边界范围,通过设置 setBounds 会影响 getBounds 的结果。
| Sprite | ||
设置子节点的索引位置。
| Node | ||
设置宽高。相当于分别设置width和height属性。
因为返回值为Sprite对象本身,所以可以使用如下语法:spr.size(...).pos(...);
| 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 | ||
timerLoop(delay:int, caller:*, method:Function, args:Array = null, coverBefore:Boolean = true, jumpFrame:Boolean = false):void
定时重复执行某函数。功能同Laya.timer.timerLoop()。
| Node | ||
timerOnce(delay:int, caller:*, method:Function, args:Array = null, coverBefore:Boolean = true):void
定时执行某函数一次。功能同Laya.timer.timerOnce()。
| Node | ||
将本地坐标系坐标转转换到父容器坐标系。
| Sprite | ||
updateZOrder():void 根据zOrder进行重新排序。 | Sprite |
Event | Summary | Defined By | ||
---|---|---|---|---|
添加到父对象后调度。 | Node | |||
鼠标点击对象后调度。 | Sprite | |||
加入节点树时调度。 | Node | |||
拖动结束后调度。 | Sprite | |||
拖动中调度。 | Sprite | |||
开始拖动后调度。 | Sprite | |||
在显示对象上按下后调度。 | Sprite | |||
鼠标在对象身上进行移动后调度 | Sprite | |||
鼠标离开对象后调度。 | Sprite | |||
鼠标经过对象后调度。 | Sprite | |||
在显示对象抬起后调度。 | Sprite | |||
被父对象移除后调度。 | Node | |||
从节点树移除时调度。 | Node |
alpha | property |
alpha:Number
透明度,值为0-1,默认值为1,表示不透明。更改alpha值会影响drawcall。
public function get alpha():Number
public function set alpha(value:Number):void
autoSize | property |
public var autoSize:Boolean = false
指定是否自动计算宽高数据。默认值为 false 。
Sprite宽高默认为0,并且不会随着绘制内容的变化而变化,如果想根据绘制内容获取宽高,可以设置本属性为true,或者通过getBounds方法获取。设置为true,对性能有一定影响。
blendMode | property |
blendMode:String
指定要使用的混合模式。目前只支持"lighter"。
public function get blendMode():String
public function set blendMode(value:String):void
cacheAs | property |
cacheAs:String
指定显示对象是否缓存为静态图像,cacheAs时,子对象发生变化,会自动重新缓存,同时也可以手动调用reCache方法更新缓存。
建议把不经常变化的“复杂内容”缓存为静态图像,能极大提高渲染性能。cacheAs有"none","normal"和"bitmap"三个值可选。
webgl下renderTarget缓存模式缺点:会额外创建renderTarget对象,增加内存开销,缓存面积有最大2048限制,不断重绘时会增加CPU开销。优点:大幅减少drawcall,渲染性能最高。 webgl下命令缓存模式缺点:只会减少节点遍历及命令组织,不会减少drawcall数,性能中等。优点:没有额外内存开销,无需renderTarget支持。
public function get cacheAs():String
public function set cacheAs(value:String):void
cacheAsBitmap | property |
cacheAsBitmap:Boolean
指定显示对象是否缓存为静态图像。功能同cacheAs的normal模式。建议优先使用cacheAs代替。
public function get cacheAsBitmap():Boolean
public function set cacheAsBitmap(value:Boolean):void
customRenderEnable | property |
customRenderEnable:Boolean
[write-only] 设置是否开启自定义渲染,只有开启自定义渲染,才能使用customRender函数渲染。
public function set customRenderEnable(value:Boolean):void
filters | property |
filters:Array
滤镜集合。可以设置多个滤镜组合。
public function get filters():Array
public function set filters(value:Array):void
globalScaleX | property |
globalScaleX:Number
[read-only] 获得相对于stage的全局X轴缩放值(会叠加父亲节点的缩放值)。
public function get globalScaleX():Number
globalScaleY | property |
globalScaleY:Number
[read-only] 获得相对于stage的全局Y轴缩放值(会叠加父亲节点的缩放值)。
public function get globalScaleY():Number
graphics | property |
graphics:Graphics
绘图对象。封装了绘制位图和矢量图的接口,Sprite所有的绘图操作都通过Graphics来实现的。
public function get graphics():Graphics
public function set graphics(value:Graphics):void
height | property |
height:Number
显示对象的高度,单位为像素,默认为0。
此高度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。
可以通过getbounds获取显示对象图像的实际高度。
public function get height():Number
public function set height(value:Number):void
hitArea | property |
hitArea:*
可以设置一个Rectangle区域作为点击区域,或者设置一个HitArea
实例作为点击区域,HitArea内可以设置可点击和不可点击区域。
如果不设置hitArea,则根据宽高形成的区域进行碰撞。
public function get hitArea():*
public function set hitArea(value:any):void
hitTestPrior | property |
public var hitTestPrior:Boolean = false
指定鼠标事件检测是优先检测自身,还是优先检测其子对象。鼠标事件检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。
如果为false,优先检测子对象,当有子对象被命中时,中断检测,获得命中目标。如果未命中任何子对象,最后再检测此对象;如果为true,则优先检测本对象,如果本对象没有被命中,直接中断检测,表示没有命中目标;如果本对象被命中,则进一步递归检测其子对象,以确认最终的命中目标。
合理使用本属性,能减少鼠标事件检测的节点,提高性能。可以设置为true的情况:开发者并不关心此节点的子节点的鼠标事件检测结果,也就是以此节点作为其子节点的鼠标事件检测依据。
Stage对象和UI的View组件默认为true。
The default value is false 优先检测此对象的子对象,当递归检测完所有子对象后,仍然没有找到目标对象,最后再检测此对象。
.
mask | property |
mask:Sprite
遮罩,可以设置一个对象(支持位图和矢量图),根据对象形状进行遮罩显示。
【注意】遮罩对象坐标系是相对遮罩对象本身的,和Flash机制不同
public function get mask():Sprite
public function set mask(value:Sprite):void
mouseEnabled | property |
mouseEnabled:Boolean
是否接受鼠标事件。 默认为false,如果监听鼠标事件,则会自动设置本对象及父节点的属性 mouseEnable 的值都为 true(如果父节点手动设置为false,则不会更改)。
public function get mouseEnabled():Boolean
public function set mouseEnabled(value:Boolean):void
mouseThrough | property |
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属性决定。
mouseX | property |
mouseX:Number
[read-only] 返回鼠标在此对象坐标系上的 X 轴坐标信息。
public function get mouseX():Number
mouseY | property |
mouseY:Number
[read-only] 返回鼠标在此对象坐标系上的 Y 轴坐标信息。
public function get mouseY():Number
optimizeScrollRect | property |
optimizeScrollRect:Boolean
指定是否对使用了 scrollRect 的显示对象进行优化处理。默认为false(不优化)。
当值为ture时:将对此对象使用了scrollRect 设定的显示区域以外的显示内容不进行渲染,以提高性能(如果子对象有旋转缩放或者中心点偏移,则显示筛选会不精确)。
public function get optimizeScrollRect():Boolean
public function set optimizeScrollRect(value:Boolean):void
parent | property |
parent:Node
[override] public function get parent():Node
public function set parent(value:Node):void
pivotX | property |
pivotX:Number
X轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
public function get pivotX():Number
public function set pivotX(value:Number):void
pivotY | property |
pivotY:Number
Y轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
public function get pivotY():Number
public function set pivotY(value:Number):void
rotation | property |
rotation:Number
旋转角度,默认值为0。以角度为单位。
public function get rotation():Number
public function set rotation(value:Number):void
scaleX | property |
scaleX:Number
X轴缩放值,默认值为1。设置为负数,可以实现水平反转效果,比如scaleX=-1。
public function get scaleX():Number
public function set scaleX(value:Number):void
scaleY | property |
scaleY:Number
Y轴缩放值,默认值为1。设置为负数,可以实现垂直反转效果,比如scaleX=-1。
public function get scaleY():Number
public function set scaleY(value:Number):void
scrollRect | property |
scrollRect:Rectangle
显示对象的滚动矩形范围,具有裁剪效果(如果只想限制子对象渲染区域,请使用viewport),设置optimizeScrollRect=true,可以优化裁剪区域外的内容不进行渲染。
srollRect和viewport的区别: 1.srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。 2.设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。
public function get scrollRect():Rectangle
public function set scrollRect(value:Rectangle):void
skewX | property |
skewX:Number
水平倾斜角度,默认值为0。以角度为单位。
public function get skewX():Number
public function set skewX(value:Number):void
skewY | property |
skewY:Number
垂直倾斜角度,默认值为0。以角度为单位。
public function get skewY():Number
public function set skewY(value:Number):void
stage | property |
staticCache | property |
staticCache:Boolean
是否静态缓存此对象的当前帧的最终属性。为 true 时,子对象变化时不会自动更新缓存,但是可以通过调用 reCache 方法手动刷新。 注意: 1. 设置 cacheAs 为非空和非"none"时才有效。 2. 由于渲染的时机在脚本执行之后,也就是说当前帧渲染的是对象的最终属性,所以如果在当前帧渲染之前、设置静态缓存之后改变对象属性,则最终渲染结果表现的是对象的最终属性。
public function get staticCache():Boolean
public function set staticCache(value:Boolean):void
texture | property |
texture:Texture
设置一个Texture实例,并显示此图片(如果之前有其他绘制,则会被清除掉)。等同于graphics.clear();graphics.drawTexture()
public function get texture():Texture
public function set texture(value:Texture):void
transform | property |
transform:Matrix
对象的矩阵信息。通过设置矩阵可以实现节点旋转,缩放,位移效果。
矩阵更多信息请参考 Matrix
public function get transform():Matrix
public function set transform(value:Matrix):void
viewport | property |
public var viewport:Rectangle = null
视口大小,视口外的子对象,将不被渲染(如果想实现裁剪效果,请使用srollRect),合理使用能提高渲染性能。比如由一个个小图片拼成的地图块,viewport外面的小图片将不渲染
srollRect和viewport的区别: 1. srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。 2. 设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。
The default value is null
.
visible | property |
visible:Boolean
表示是否可见,默认为true。如果设置不可见,节点将不被渲染。
public function get visible():Boolean
public function set visible(value:Boolean):void
width | property |
width:Number
显示对象的宽度,单位为像素,默认为0。
此宽度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。
可以通过getbounds获取显示对象图像的实际宽度。
public function get width():Number
public function set width(value:Number):void
x | property |
x:Number
表示显示对象相对于父容器的水平方向坐标值。
public function get x():Number
public function set x(value:Number):void
y | property |
y:Number
表示显示对象相对于父容器的垂直方向坐标值。
public function get y():Number
public function set y(value:Number):void
zOrder | property |
zOrder:Number
z排序,更改此值,则会按照值的大小对同一容器的所有对象重新排序。值越大,越靠上。默认为0,则根据添加顺序排序。
public function get zOrder():Number
public function set zOrder(value:Number):void
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
绘制 当前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信息,可以发给服务器或者保存为图片Parameters
canvasWidth:Number — 画布宽度。
| |
canvasHeight:Number — 画布高度。
| |
offsetX:Number — 绘制的 X 轴偏移量。
| |
offsetY:Number — 绘制的 Y 轴偏移量。
|
HTMLCanvas — HTMLCanvas 对象。
|
fromImage | () | method |
public static function fromImage(url:String):Sprite
根据图片地址创建一个新的 Sprite
对象用于加载并显示此图片。
Parameters
url:String — 图片地址。
|
Sprite — 返回新的 Sprite 对象。
|
fromParentPoint | () | method |
public function fromParentPoint(point:Point):Point
将父容器坐标系坐标转换到本地坐标系。
Parameters
point:Point — 父容器坐标点。
|
Point — 转换后的点。
|
getBounds | () | method |
public function getBounds():Rectangle
获取本对象在父容器坐标系的矩形显示区域。
注意: 1.计算量较大,尽量少用,如果需要频繁使用,可以通过手动设置 setBounds
来缓存自身边界信息,从而避免比较消耗性能的计算。2. setBounds
与 getBounds
并非对应相等关系, getBounds
获取的是本对象在父容器坐标系下的边界范围,通过设置 setBounds
会影响 getBounds
的结果。
Rectangle — 矩形区域。
|
getGraphicBounds | () | method |
public function getGraphicBounds(realSize:Boolean = false):Rectangle
返回此实例中的绘图对象( Graphics
)的显示区域,不包括子对象。
Parameters
realSize:Boolean (default = false ) — (可选)使用图片的真实大小,默认为false
|
Rectangle — 一个 Rectangle 对象,表示获取到的显示区域。
|
getMousePoint | () | method |
getSelfBounds | () | method |
public function getSelfBounds():Rectangle
获取对象在自身坐标系的边界范围。与 setBounds
对应。
注意:计算量较大,尽量少用,如果需要频繁使用,可以提前手动设置 setBounds
来缓存自身边界信息,从而避免比较消耗性能的计算。
Rectangle — 矩形区域。
|
globalToLocal | () | method |
public function globalToLocal(point:Point, createNewPoint:Boolean = false):Point
把stage的全局坐标转换为本地坐标。
Parameters
point:Point — 全局坐标点。
| |
createNewPoint:Boolean (default = false ) — (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的point对象返回,减少对象创建开销。
|
Point — 转换后的坐标的点。
|
hitTestPoint | () | method |
public function hitTestPoint(x:Number, y:Number):Boolean
检测某个点是否在此对象内。
Parameters
x:Number — 全局x坐标。
| |
y:Number — 全局y坐标。
|
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 ) — (可选)加载完成回调。
|
Sprite — 返回精灵对象本身。
|
localToGlobal | () | method |
public function localToGlobal(point:Point, createNewPoint:Boolean = false):Point
把本地坐标转换为相对stage的全局坐标。
Parameters
point:Point — 本地坐标点。
| |
createNewPoint:Boolean (default = false ) — (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的point对象返回,减少对象创建开销。
|
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 ) — (可选)事件侦听函数的回调参数。
|
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 ) — (可选)事件侦听函数的回调参数。
|
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轴心点。
|
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属性,建议设置为急速模式性能更高。
|
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属性,建议设置为急速模式性能更高。
|
Sprite — 返回对象本身。
|
setBounds | () | method |
public function setBounds(bound:Rectangle):void
设置对象在自身坐标系下的边界范围。与 getSelfBounds
对应。当 autoSize==true 时,会影响对象宽高。设置后,当需要获取自身边界范围时,就不再需要计算,合理使用能提高性能。比如 getBounds
会优先使用 setBounds
指定的值,如果没有指定则进行计算,此计算会对性能消耗比较大。
注意: setBounds
与 getBounds
并非对应相等关系, 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 — 高度值。
|
Sprite — 返回对象本身。
|
skew | () | method |
public function skew(skewX:Number, skewY:Number):Sprite
设置倾斜角度。相当于分别设置skewX和skewY属性。
因为返回值为Sprite对象本身,所以可以使用如下语法:spr.skew(...).pos(...);
Parameters
skewX:Number — 水平倾斜角度。
| |
skewY:Number — 垂直倾斜角度。
|
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 — 本地坐标点。
|
Point — 转换后的点。
|
updateZOrder | () | method |
public function updateZOrder():void
根据zOrder进行重新排序。
click | Event |
dragend | Event |
dragmove | Event |
dragstart | Event |
mousedown | Event |
mousemove | Event |
mouseout | Event |
mouseover | Event |
mouseup | Event |