Kinetic.js“对象没有方法batchDraw”

时间:2013-11-16 19:54:31

标签: javascript canvas kineticjs

我正在尝试设置一个基本的Kinetic.js应用程序。我一直到处都会遇到奇怪的错误,几乎没有任何关于Kinetic的参考资料。

$(document).ready(function ()
{    
    var stage = new Kinetic.Stage({
        container: 'canvas',
        width: 700,
        height: 434
    });

    var cursorCanvas = new Kinetic.Layer();
    var drawingCanvas = new Kinetic.Layer();

    var outerCircle = new Kinetic.Circle({
        radius: settings.size,
        strokeWidth: 4,
        stroke: "#000"
    });

    var innerCircle = new Kinetic.Circle({
        radius: settings.size,
        strokeWidth: 2,
        stroke: "#fff"
    });

    $(stage.getContent()).on('mousemove', function (e)
    {
        var pos = stage.getMousePosition();
        outerCircle.setAbsolutePosition(pos.x,pos.y);
        innerCircle.setAbsolutePosition(pos.x,pos.y);
        cursorCanvas.batchDraw(); //This throws an error
    }); 

    cursorCanvas.add(outerCircle);
    cursorCanvas.add(innerCircle);

    stage.add(cursorCanvas);
});
  

未捕获的TypeError:对象#没有方法'batchDraw'

此外,每当我尝试在舞台上添加第二层时:     stage.add(drawingCanvas);     stage.add(cursorCanvas);

我得到了

  

未捕获的TypeError:输入错误kinetic.min.js:28

有任何帮助吗? :)

1 个答案:

答案 0 :(得分:1)

您的错误看起来像Kinetic希望将“#”连接到元素的id以使用JQuery找到该元素 - 只是为了找到该ID不可用。

尝试将事件处理程序设置为

stage.on('contentMousemove', function (e)
{
    //Stuff
});