【发布时间】:2011-12-10 09:55:29
【问题描述】:
现在我正在使用 HTML5 画布开发一个绘画聊天程序,我遇到了两个或多个用户同时在同一个画布上绘图的问题。
Canvas 的每个属性只有一个实例,只有一个 strokeStyle、一个 fillStyle 等等。当两个用户在同一个画布上绘图时;混乱随之而来。
我尝试过使用更多具有相同定位的画布,但是何时以及如何交换两个画布的数据是一个问题。
有谁知道这样做的任何其他方法,或者我怎样才能在画布之间正确交换数据?
编辑:
我觉得我说得不够清楚。现在我有了画布,通过 socket.io 来自服务器的消息,手头有不同的绘画请求。当用户移动鼠标画一条线时,画布现在获得 lineWidth、strokeStyle、globalOpacity。但是由于canvas一次只能有一个painter,所以服务器的draw request,包括另一种painter,不能同时绘制。如果我们有足够的用户,画就不会流畅。
我准备写一个队列或类似的东西来实现这个功能,但可能还有其他方法可以做到。
【问题讨论】:
-
你说“两个或多个用户在同一个画布上绘图”是什么意思???