我有一个阶段和多个叠加的层。我用一个按钮来指代每一层。我必须允许用户在他单击一个按钮时在这些多个图层上绘图,并在它们之间进行交换。如何检查哪一层在其他层之上?
我试过layer.getAbsoluteZIndex()
了,但不是很明显。是否有一种方法实际上返回真/假,例如,可能像.isOnTop()
?
编辑 :
好吧,我必须自己实现它,我想这没关系。isOnTop
最简单的解决方案是在每一层的定义中添加一个布尔属性,并进行适当的测试和处理。
我有一个阶段和多个叠加的层。我用一个按钮来指代每一层。我必须允许用户在他单击一个按钮时在这些多个图层上绘图,并在它们之间进行交换。如何检查哪一层在其他层之上?
我试过layer.getAbsoluteZIndex()
了,但不是很明显。是否有一种方法实际上返回真/假,例如,可能像.isOnTop()
?
编辑 :
好吧,我必须自己实现它,我想这没关系。isOnTop
最简单的解决方案是在每一层的定义中添加一个布尔属性,并进行适当的测试和处理。
首先在 Kinetic.Stage 上添加一个新方法:
Kinetic.Stage.prototype.getTopLayer=function(){
var layers=stage.find('Layer');
var topLayerIndex=-100;
var topLayer;
for(var i=0;i<layers.length;i++){
var index=layers[i].getAbsoluteZIndex();
if(index>topLayerIndex){
topLayerIndex=index;
topLayer=layers[i];
}
}
return(topLayer);
}
然后你可以像这样得到具有最高 z-index 的层:
var myTopLayer = stage.getTopLayer();