0

我有一个阶段和多个叠加的层。我用一个按钮来指代每一层。我必须允许用户在他单击一个按钮时在这些多个图层上绘图,并在它们之间进行交换。如何检查哪一层在其他层之上?

我试过layer.getAbsoluteZIndex()了,但不是很明显。是否有一种方法实际上返回真/假,例如,可能像.isOnTop()

编辑 :

好吧,我必须自己实现它,我想这没关系。isOnTop最简单的解决方案是在每一层的定义中添加一个布尔属性,并进行适当的测试和处理。

4

1 回答 1

0

首先在 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();
于 2014-07-17T12:21:24.307 回答