我正在尝试设置一个基本的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
有任何帮助吗? :)
答案 0 :(得分:1)
您的错误看起来像Kinetic希望将“#”连接到元素的id以使用JQuery找到该元素 - 只是为了找到该ID不可用。
尝试将事件处理程序设置为
stage.on('contentMousemove', function (e)
{
//Stuff
});