gpt4 book ai didi

javascript - KineticJS 点击了哪一层?

转载 作者:行者123 更新时间:2023-11-30 17:17:58 25 4
gpt4 key购买 nike

我使用 KineticJS 将图像添加到图层。我需要知道点击了哪一层。

这是 jsfiddle:http://jsfiddle.net/yvp79ryf/1/

如果我点击第一张图片只需要得到提醒点击是第一层否则是第二层

HTML

<div id="container"></div>
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.4.3.min.js"></script>
<script defer="defer">

JavaScript

  var stage = new Kinetic.Stage({
container: 'container',
width: 578,
height: 200
});


var layer = new Kinetic.Layer();
var imageObj = new Image();
imageObj.onload = function() {
var yoda = new Kinetic.Image({
x: 140,
y: stage.getHeight() / 2 - 59,
image: imageObj,
width: 106,
height: 118
});

layer.add(yoda);
stage.add(layer);

};
imageObj.src = 'http://www.html5canvastutorials.com/demos/assets/yoda.jpg';



var layer2 = new Kinetic.Layer();
var imageObj2 = new Image();
imageObj2.onload = function() {
var filteredYoda = new Kinetic.Image({
x: 280,
y: stage.getHeight() / 2 - 59,
image: imageObj2,
width: 106,
height: 118
});

layer2.add(filteredYoda);
stage.add(layer2);
};
imageObj2.src = 'http://demo-stable-ofbiz.apache.org/images/products/GZ-1000/small.png';

最佳答案

您需要为图层设置 id 以识别它们。

var layer = new Kinetic.Layer({id:1});
var layer2 = new Kinetic.Layer({id:2});

在舞台上添加点击事件处理程序

stage.on('click', function(e) {
if(e.targetNode.parent.attrs.id == 1){
alert('first layer');
}else{
alert('second layer');
}
});

你可以通过后代查看图层id

e 是 MouseEvent 对象。

e.targetNode 是 Kinetic.Image

e.targetNode.parent 是 Kinetic.Layer

e.targetNode.parent.attrs.id是Kinetic.Layer的id

关于javascript - KineticJS 点击了哪一层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25726071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com