Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未为分组层的子级激发KineticJS事件_Javascript_Jquery_Kineticjs_Jquery Events - Fatal编程技术网

Javascript 未为分组层的子级激发KineticJS事件

Javascript 未为分组层的子级激发KineticJS事件,javascript,jquery,kineticjs,jquery-events,Javascript,Jquery,Kineticjs,Jquery Events,我正在尝试将单击事件添加到图像(Kinetic.image)我正在添加到KineticJS阶段 当我使用一个简单的层次结构时,如下图所示(测试0),可以成功触发事件 但是,在更复杂的层次结构(测试1)中添加图像时,不会触发事件 我创建了一个演示这两种层次结构情况的 //舞台的画布容器 var container=$(“#container”).html(“”); //创造舞台 var阶段=新的动力学阶段({ 容器:container.attr(“id”), 宽度:container.wid

我正在尝试将单击事件添加到图像(
Kinetic.image
)我正在添加到KineticJS阶段

  • 当我使用一个简单的层次结构时,如下图所示(测试0),可以成功触发事件
  • 但是,在更复杂的层次结构(测试1)中添加图像时,不会触发事件

我创建了一个演示这两种层次结构情况的

//舞台的画布容器
var container=$(“#container”).html(“”);
//创造舞台
var阶段=新的动力学阶段({
容器:container.attr(“id”),
宽度:container.width(),
高度:container.height()
}); 
//加载图像
var img=新图像();
img.onload=函数(){
//图像的尺寸
var w=此宽度;
var h=此高度;
//基层
var baseLayer=新动能层({
宽度:w,
身高:h
});
//团体
var group=新的动能.group();
//资产层
var assetLayer=新的动能层({
宽度:w,
身高:h
});
//动力学象元
var元素=新的动力学图像({
图片:这个,
宽度:w,
身高:h
});
//单击图像时发生的事件
元素上(“单击”,函数(){alert(“Image clicked”);});
//构建层次结构
assetLayer.add(元素);
添加组(assetLayer);
添加(组);
阶段。添加(基层);
//画舞台
stage.draw();
}
//从URL加载图像
img.src=”http://www.html5canvastutorials.com/demos/assets/lion.png";       

我认为这可能与事件冒泡有关,并尝试更改层上的
侦听
属性,但不幸的是,这没有任何区别。任何建议都将不胜感激。

我感觉您不能分组
Kinetic.Layer
,只能分组
Kinetic.Shape
。请参见本教程中的措辞:

我在你的小提琴上改了两行,我让它开始工作了:

替换:

assetLayer.add(element);
group.add(assetLayer);
与:


瞧!“单击”图像时会触发警报。

我感觉您不能分组
Kinetic.Layer
,只能分组
Kinetic.Shape
。请参见本教程中的措辞:

我在你的小提琴上改了两行,我让它开始工作了:

替换:

assetLayer.add(element);
group.add(assetLayer);
与:


瞧!“单击”图像会触发警报。

谢谢。我知道这很简单。我忽略了层不能包含在组中。我应该意识到,我已经看到了这本书,并且误读了它。感谢您的帮助。+2,1用于代码/问题的出色可视化,1用于动能对象结构图的链接!:)谢谢我知道这很简单。我忽略了层不能包含在组中。我应该意识到,我已经看到了这本书,并且误读了它。感谢您的帮助。+2,1用于代码/问题的出色可视化,1用于动能对象结构图的链接!:)