Packagelaya.ui
Classpublic class DialogManager
InheritanceDialogManager Inheritance Sprite Inheritance Node Inheritance EventDispatcher Inheritance Object

DialogManager 对话框管理容器,所有的对话框都在该容器内,并且受管理器管理。 任意对话框打开和关闭,都会出发管理类的open和close事件 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭,点击窗口是否切换层次等 通过设置对话框的zOrder属性,可以更改弹出的层次



Public Properties
 PropertyDefined By
 Inheritedalpha : Number
透明度,值为0-1,默认值为1,表示不透明。更改alpha值会影响drawcall。
Sprite
 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
  closeEffectHandler : Handler
全局默认弹出对话框效果,可以设置一个效果代替默认的弹出效果,如果不想有任何效果,可以赋值为null
DialogManager
 InheritedcustomRenderEnable : Boolean
[write-only] 设置是否开启自定义渲染,只有开启自定义渲染,才能使用customRender函数渲染。
Sprite
 Inheriteddestroyed : Boolean
[只读]是否已经销毁。对象销毁后不能再使用。
Node
 InheriteddisplayedInStage : Boolean
[read-only] 表示是否在显示列表中显示。
Node
 Inheritedfilters : Array
滤镜集合。可以设置多个滤镜组合。
Sprite
 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
  lockLayer : Sprite
锁屏层
DialogManager
 Inheritedmask : Sprite
遮罩,可以设置一个对象(支持位图和矢量图),根据对象形状进行遮罩显示。 【注意】遮罩对象坐标系是相对遮罩对象本身的,和Flash机制不同
Sprite
  maskLayer : Sprite
遮罩层
DialogManager
 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
  popupEffectHandler : Handler
全局默认关闭对话框效果,可以设置一个效果代替默认的关闭效果,如果不想有任何效果,可以赋值为null
DialogManager
 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
 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
 Inheritedx : Number
表示显示对象相对于父容器的水平方向坐标值。
Sprite
 Inheritedy : Number
表示显示对象相对于父容器的垂直方向坐标值。
Sprite
 InheritedzOrder : Number
z排序,更改此值,则会按照值的大小对同一容器的所有对象重新排序。值越大,越靠上。默认为0,则根据添加顺序排序。
Sprite
Public Methods
 MethodDefined By
  
创建一个新的 DialogManager 类实例。
DialogManager
 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
  
close(dialog:Dialog, type:String = null):void
关闭对话框。
DialogManager
  
closeAll():void
关闭所有的对话框。
DialogManager
  
closeByGroup(group:String):Array
根据组关闭所有弹出框
DialogManager
 Inherited
contains(node:Node):Boolean
当前容器是否包含指定的 Node 节点对象 。
Node
 Inherited
customRender(context:RenderContext, x:Number, y:Number):void
自定义更新、呈现显示对象。一般用来扩展渲染模式,请合理使用,可能会导致在加速器上无法渲染。 注意不要在此函数内增加或删除树节点,否则会对树节点遍历造成影响。
Sprite
 Inherited
destroy(destroyChild:Boolean = true):void
[override] 销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。 destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。
Sprite
 Inherited
销毁所有子对象,不销毁自己本身。
Node
  
doClose(dialog:Dialog, type:String = null):void
执行关闭对话框。
DialogManager
  
doOpen(dialog:Dialog):void
执行打开对话框。
DialogManager
 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
  
getDialogsByGroup(group:String):Array
根据组获取所有对话框
DialogManager
 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
hasListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
hitTestPoint(x:Number, y:Number):Boolean
检测某个点是否在此对象内。
Sprite
 Inherited
isMouseEvent(type:String):Boolean
检测指定事件类型是否是鼠标事件。
EventDispatcher
 Inherited
loadImage(url:String, x:Number = 0, y:Number = 0, width:Number = 0, height:Number = 0, complete:Handler = null):Sprite
加载并显示一个图片。功能等同于graphics.loadImage方法。支持异步加载。 注意:多次调用loadImage绘制不同的图片,会同时显示。
Sprite
 Inherited
localToGlobal(point:Point, createNewPoint:Boolean = false):Point
把本地坐标转换为相对stage的全局坐标。
Sprite
  
lock(value:Boolean):void
锁定所有层,显示加载条信息,防止双击
DialogManager
 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
  
open(dialog:Dialog, closeOther:Boolean = false):void
显示对话框(非模式窗口类型)。
DialogManager
 Inherited
cacheAs时,设置所有父对象缓存失效。
Sprite
 Inherited
pivot(x:Number, y:Number):Sprite
设置轴心点。相当于分别设置pivotX和pivotY属性。 因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pivot(...).pos(...);
Sprite
 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
从父容器删除自己,如已经被删除不会抛出异常。
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
  
设置锁定界面,如果为空则什么都不显示
DialogManager
 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
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
  关闭任意窗口后调度。DialogManager
 Inherited加入节点树时调度。Node
 Inherited拖动结束后调度。Sprite
 Inherited拖动中调度。Sprite
 Inherited开始拖动后调度。Sprite
 Inherited在显示对象上按下后调度。Sprite
 Inherited鼠标在对象身上进行移动后调度Sprite
 Inherited鼠标离开对象后调度。Sprite
 Inherited鼠标经过对象后调度。Sprite
 Inherited在显示对象抬起后调度。Sprite
  打开任意窗口后调度。DialogManager
 Inherited被父对象移除后调度。Node
 Inherited从节点树移除时调度。Node
Property Detail
closeEffectHandlerproperty
public var closeEffectHandler:Handler

全局默认弹出对话框效果,可以设置一个效果代替默认的弹出效果,如果不想有任何效果,可以赋值为null

lockLayerproperty 
public var lockLayer:Sprite

锁屏层

maskLayerproperty 
public var maskLayer:Sprite

遮罩层

popupEffectHandlerproperty 
public var popupEffectHandler:Handler

全局默认关闭对话框效果,可以设置一个效果代替默认的关闭效果,如果不想有任何效果,可以赋值为null

Constructor Detail
DialogManager()Constructor
public function DialogManager()

创建一个新的 DialogManager 类实例。

Method Detail
close()method
public function close(dialog:Dialog, type:String = null):void

关闭对话框。

Parameters

dialog:Dialog — 需要关闭的对象框 Dialog 实例。
 
type:String (default = null) — 关闭的类型,默认为空

closeAll()method 
public function closeAll():void

关闭所有的对话框。

closeByGroup()method 
public function closeByGroup(group:String):Array

根据组关闭所有弹出框

Parameters

group:String — 需要关闭的组名称

Returns
Array — 需要关闭的对话框数组
doClose()method 
public function doClose(dialog:Dialog, type:String = null):void

执行关闭对话框。

Parameters

dialog:Dialog — 需要关闭的对象框 Dialog 实例。
 
type:String (default = null) — 关闭的类型,默认为空

doOpen()method 
public function doOpen(dialog:Dialog):void

执行打开对话框。

Parameters

dialog:Dialog — 需要关闭的对象框 Dialog 实例。

getDialogsByGroup()method 
public function getDialogsByGroup(group:String):Array

根据组获取所有对话框

Parameters

group:String — 组名称

Returns
Array — 对话框数组
lock()method 
public function lock(value:Boolean):void

锁定所有层,显示加载条信息,防止双击

Parameters

value:Boolean

open()method 
public function open(dialog:Dialog, closeOther:Boolean = false):void

显示对话框(非模式窗口类型)。

Parameters

dialog:Dialog — 需要显示的对象框 Dialog 实例。
 
closeOther:Boolean (default = false) — 是否关闭其它对话框,若值为ture,则关闭其它的对话框。

setLockView()method 
public function setLockView(value:Component):void

设置锁定界面,如果为空则什么都不显示

Parameters

value:Component

Event Detail
close Event
Event Object Type: laya.events.Event
Event.type property = Event.CLOSE

关闭任意窗口后调度。

open Event  
Event Object Type: laya.events.Event
Event.type property = Event.OPEN

打开任意窗口后调度。