【发布时间】:2012-06-28 14:31:09
【问题描述】:
我正在使用 canvas 和 node.js 创建一个小型绘图应用程序。 假设有很多用户连接到我的应用 - 用户 A、用户 B 等。
当用户 A 在画布上绘制任何东西时,我想通过在其他用户的画布上输出绘图来让其他用户知道用户 A 已经绘制了一些东西。
我通过在画布元素上附加一个click 事件来实现。它有效,但问题是它只有在用户一键完成绘图时才有效。我希望在运行时将绘图共享给其他用户,例如逐像素更改。有没有像.canvaschange() 这样的画布活动?
我的点击事件代码是 -
$("#imageTemp").click(function(){
var can = document.getElementById("imageView");
var img = can.toDataURL("image/png");
socket.emit('emit_draw', img, function (data){
console.log('Emit Broadcast draw', data);
});
});
【问题讨论】:
-
在每次更改时广播整个画布数据可能会使您的应用程序非常慢。您是否考虑过仅在每次更改时传递事件数据,并且接收者可以像处理这些事件数据一样处理他们当地的绘画活动。此外,您可能需要在每次 mousedown、mousemove 和 mouseup 时广播,而不是单击。
标签: jquery html node.js canvas drawing