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 从html5画布中删除图像时';它被拖到某个位置_Javascript_Html5 Canvas_Kineticjs - Fatal编程技术网

Javascript 从html5画布中删除图像时';它被拖到某个位置

Javascript 从html5画布中删除图像时';它被拖到某个位置,javascript,html5-canvas,kineticjs,Javascript,Html5 Canvas,Kineticjs,我有一个HTML5画布,它显示了许多图像和四个描述框。目前可以在画布上拖放图像,但我想添加一些功能,以便在将图像拖动到正确的描述框时将其删除 我已经试着编写以下函数,但它目前似乎没有做任何事情。。。i、 e.如果我将图像拖到其描述框并将其放下,它仍会保留在画布上: function initStage(images){ var stage = new Kinetic.Stage({ container: "container", width: 1000,

我有一个HTML5画布,它显示了许多图像和四个描述框。目前可以在画布上拖放图像,但我想添加一些功能,以便在将图像拖动到正确的描述框时将其删除

我已经试着编写以下函数,但它目前似乎没有做任何事情。。。i、 e.如果我将图像拖到其描述框并将其放下,它仍会保留在画布上:

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 */
                }
            })

        })();
    }

}
我编写的代码基于我在以下网站上找到的教程:


任何人都能发现我做错了什么,以及我如何确保在将图像拖到相应的描述框时将其从画布上删除?

该示例让我感到困扰,因为它看起来很旧,所以我对其进行了一些编辑…

…请记住,我不能肯定我所有的编辑都是做事情的最佳方式,我是全新的;)

在这里,我再次编辑了它,以显示正在删除的图像

    animal.on("dragend", function() {
        var outline = outlines[privKey + "_black"];
        if (!animal.inRightPlace && isNearOutline(animal, outline)) {
            animal.remove();
            animalLayer.draw();
        }
    });

jsfiddle是否仍在运行?@perl用户我已经很久没有看过Kinect了,看起来好像没有,对不起。我用来链接KinectJS源代码的url不再有效,我也找不到cdn或任何东西。如果您可以找到一个url,那么只需删除外部资源中的旧url,并将其替换为该url即可。对不起,我帮不上忙了……事实上,我把url改成了主页上的那个,但是看着那个url,我不认为它是永久性的,但是,嗯,给你。。。看起来它无论如何都不起作用;(