没有正确地调用kinetic.js?

时间:2014-02-06 15:48:09

标签: jquery canvas kineticjs

我正在尝试复制http://jsfiddle.net/m1erickson/tLwSM/,但我不能成功。这是我的代码:

<!DOCTYPE html>
<html>
    <head>
         <link rel="stylesheet" href="bootstrap.min.css" />
        <link type="text/css" rel="stylesheet" href="test.css"/>
        <title>title</title>
        <script src="kinetic.js"></script>

    </head>
    <body>

        <h4>Double-Click to create text.<br>Drag text.</h4>
        <div id="container"></div>
        <script>
            var stage = new Kinetic.Stage({
                container: 'container',
                width: 350,
                height: 350
            });
            var layer = new Kinetic.Layer();
            stage.add(layer);

            $(stage.getContent()).on('dblclick', function (event) {
                var pos = stage.getMousePosition();
                var mouseX = parseInt(pos.x);
                var mouseY = parseInt(pos.y);
                var text = new Kinetic.Text({
                    x: mouseX,
                    y: mouseY,
                    text: "@:" + mouseX + "/" + mouseY,
                    fill: "blue",
                    draggable: true,
                });
                layer.add(text);
                layer.draw();
            });
        </script>

    </body>
</html>

我的kinetic.js文件包含直接从http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v5.0.1.min.js复制的代码。

当我运行文件时,我看到的内容在视觉上看起来是正确的,但它实际上并没有做任何事情。 console.log中没有错误。也许是因为我在本地跑步,我需要在终端或其他什么地方做点什么......?

2 个答案:

答案 0 :(得分:1)

你不需要jQuery来监听舞台上发生的事件。 你可以写这样的听众:

stage.on('click', function() {
  //function code
});

layer.on('click', function() {
  //function code
});

您在舞台上使用的任何kineticJS对象也是如此。

答案 1 :(得分:0)

我没有看到jQuery包含在您的代码中。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="kinetic.js"></script>