0

1 つのステージと重ねられた複数のレイヤーがあります。ボタンで各レイヤーを参照します。ユーザーが 1 つのボタンをクリックするたびにこれらの複数のレイヤーに描画し、それらを切り替えることができるようにする必要があります。どのレイヤーが他のレイヤーの上にあるかを確認するにはどうすればよいですか?

私は試しlayer.getAbsoluteZIndex()ましたが、それは明らかではありません。たとえば、実際に true/false を返すメソッドはあり.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 に答える