我正在使用最新的kineticjs。(第3.10节) 这是问题
我正在使用单个功能将图像发送到画布上,点击时画布外部。 我正在制作图像可拖动的所有.. 我还在双击时添加了删除图像功能。 当我双击任何图像.. 最后添加的图像被删除,之后如果我尝试点击其他图像.. 我收到此错误:TypeError:this.children [child.index]未定义
这是一个小代码。:
使用此函数使用ajax
从另一个文件中获取路径 function loadajax(imgpath,imgid){
sources = {
yoda1 : imgpath,
};
loadImages(sources,initStage1);
};
来源功能:----
function loadImages(sources, callback){
var images = {};
var loadedImages = 0;
var numImages = 0;
for (var src in sources) {
numImages++;
}
for (var src in sources) {
images[src] = new Image();
images[src].onload = function(){
if (++loadedImages >= numImages) {
callback(images);
}
};
images[src].src = sources[src];
}
}
这是我用来删除/拖放/等等的函数。
function initStage1(images){
yodaGroup1 = new Kinetic.Group({
x: 100,
y: 110,
draggable: true,
});
layery = new Kinetic.Layer();
layery.add(yodaGroup1);
stage.add(layery);
var yoda1 = new Kinetic.Image({
image: images.yoda1,
x: 0,
y: 0,
width: 100,
height: 120,
name:"image",
detectionType:"Pixel"
});
yodaGroup1.add(yoda1);
yodaGroup1.on("dragstart", function() {
yodaGroup1.moveToTop();
layery.draw();
});
yodaGroup1.on("dblclick dbltap", function() {
layery.remove(yodaGroup1);
layery.draw();
});
yodaGroup1.on("dragend", function() {
layery.draw();
yoda1.saveImageData();
});
addAnchor(yodaGroup1,0, 0, "topLeft");
addAnchor(yodaGroup1, 100, 0, "topRight");
addAnchor(yodaGroup1, 100, 120, "bottomRight");
addAnchor(yodaGroup1, 0, 120, "bottomLeft");
stage.draw();
yoda1.saveImageData();
}
现在根据这个功能 我应该能够将图像添加到画布(工作正常) 当我拖动它时,应该能够将一个图像移动到另一个图像上(.ie.moveToTop函数)_Not working 应该能够在双击时删除图像(仅适用于最新添加的图像)
请帮忙
由于
答案 0 :(得分:2)
layery.remove(yodaGroup1);
指的是这个功能:
http://www.kineticjs.com/docs/symbols/Kinetic.Layer.php#remove
没有功能只删除图层中包含的一个节点:/
答案 1 :(得分:1)
要删除图层中包含的节点,请使用以下命令:
node.remove();
所以在你的情况下你会这样做:
yodaGroup1.remove();
layery.draw();