检查哪个Kinetic.Layer在顶部

时间:2014-07-17 09:35:10

标签: z-index kineticjs multi-layer

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

我试过layer.getAbsoluteZIndex(),但这并不明显。是否存在实际返回true / false的方法,例如.isOnTop()

编辑:

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

1 个答案:

答案 0 :(得分: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();