У меня есть холст HTML5, на котором отображается несколько изображений и четыре поля описания. В настоящее время можно перетаскивать изображения по холсту, но я хочу добавить функцию удаления изображения, когда оно перетаскивается в правильное поле описания.
Я попытался написать следующую функцию, но в настоящее время она, похоже, ничего не делает... т.е. если я перетащу изображение в поле его описания и отпущу его, оно все равно останется на холсте:
function initStage(images){
var stage = new Kinetic.Stage({
container: "container",
width: 1000,
height: 500
});
var descriptionLayer = new Kinetic.Layer();
//var imagesLayer = new Kinetic.Layer();
var allImages = [];
var currentScore = 0;
var descriptionBoxes = {
assetsDescriptionBox: {
x: 70,
y: 400
},
liabilitiesDescriptionBox: {
x: 300,
y: 400
},
incomeDescriptionBox: {
x: 530,
y: 400
},
expenditureDescriptionBox: {
x: 760,
y: 400
},
};
/*Code to detect whether image has been dragged to correct description box */
for (var key in sources){
/*Anonymous function to induce scope */
(function(){
var privateKey = key;
var imageSource = sources[key];
/*Check if image has been dragged to the correct box, and add it to that box's
array and remove from canvas if it has */
canvasImage.on("dragend", function(){
var descriptionBox = descriptionBoxes[privateKey];
if(!canvasImage.inRightPlace && isNearDescriptionBox(itemImage, descriptionBox)){
context.remove(canvasImage);
/*Will need to add a line in here to add the image to the box's array */
}
})
})();
}
}
Код, который я написал, основан на руководстве, которое я нашел по адресу: http://www.html5canvastutorials.com/labs/html5-canvas-animals-on-the-beach-game-with-kineticjs./
Может ли кто-нибудь определить, что я делаю неправильно, и как я могу убедиться, что изображение удаляется с холста, когда оно перетаскивается в соответствующее поле описания?