0

是否可以使用 Kinetic.js 创建应用程序,在其中创建形状,然后在移动鼠标时对其进行缩放?我在 Kinetic API 中找不到任何东西,所以我正在混合“原始”JQuery。特别是,我使用$("canvas").last().mousemove函数,但事实证明这实际上非常慢。

是JSFiddle。

有关使其更快的任何提示?

我不认为 Kinetic.js 支持layer.on("mousemove", fn),因为它似乎只适用于形状。

4

1 回答 1

0

是的。你会做这样的事情:

$('#container').on('mousemove', function(evt) {
  shape.setScale(someValue);
  layer.batchDraw();
});

换句话说,将 mousemove 侦听器附加到容器 div 元素(您传递到 Kinetic 阶段的那个)。使用 setScale() 方法设置形状比例。使用 batchDraw() 代替 draw() 以便绘制操作挂钩到 KineticJS 动画引擎以获得更好的性能。否则,如果您使用 draw(),则每次检测到 mousemove 事件时都会重新绘制整个图层,这可能每秒数十万次,具体取决于浏览器

于 2013-06-10T01:47:28.097 回答