试图获得“;橡皮擦”;使用HTML5 Canvas和Vaadin,但它只是清除了
Trying to get an "eraser" working with the HTML5 Canvas and Vaadin, but it just clears
我正在使用Vaadin,并试图为一些简单的涂鸦提供画布部分。为了实现这一点,我正在使用Vaadin的CanvasPlus库,它运行得很好,但我不知道如何让它擦除我画的东西。
当用户点击时,我得到坐标并开始在那里绘图:
canvas.beginPath();
canvas.moveTo(relativeX, relativeY);
然后在下一次鼠标移动时,我开始连接他们所画的线:
canvas.lineTo(relativeX, relativeY);
canvas.setStrokeStyle(color);
canvas.stroke();
根据这个答案,当他们点击擦除时,我称之为:
canvas.setGlobalAlpha(0.0);
canvas.setStrokeStyle(0, 0, 0);
canvas.setGlobalCompositeOperation("copy");
但只要我拖动,它就会清除整个画布,即使我离以前的图纸很远。
我做错了什么?
我声称对vaadin一无所知,但一般来说,对于构图,您应该使用destination-out
模式来清除顶部绘制的内容。
copy
将如您所发现的那样只进行复制,因此在0字节被复制时,所有现有的内容都将被清除。
尝试:
canvas.setGlobalCompositeOperation("destination-out");
相关文章:
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 单击jquery清除输入值
- vaadin:使用自定义布局集成angular js
- 如何在Microsoft VirtualEarth 6.3中使用纯javascript清除整个形状层
- 清除以前的$_GET值或不获取仅隐藏字段的值
- Javascript清除缓存以清除基本身份验证凭据
- 清除启动日期选取器值
- 在 SlickGrid 中编辑后,根据不同列中的另一个单元格清除单元格
- php页面,该页面在清除值后接受输入
- 清除数据并将旧值附加到文本框中
- 使用javascript清除Asp.NET FreeTextBox(RTF文本框)
- 如何使Visual Studio自动清除Javascript控制台
- 使用javascript或html本身清除文本字段
- 清除函数中if语句内部不起作用的间隔
- 我应该/如何清除mousemove JQuery事件侦听器
- 从定位目标中的元素中清除类
- 使用查询字符串方法清除浏览器缓存
- 如何在使用AngularJS更改下拉值时清除表单中的数据
- 在Chrome中重新加载页面后清除表单输入值
- Vaadin @Javascript :清除更新的JS文件的缓存