Javascript 如何清理画布?
出于某种原因,我做这件事是行不通的Javascript 如何清理画布?,javascript,dom,canvas,Javascript,Dom,Canvas,出于某种原因,我做这件事是行不通的 canvas.width = canvas.width; 这是我的密码: function startDraw(){ document.getElementById('PaintArea').setAttribute('onmousemove', 'getMouse(event)'); } function stopDraw(){ document.getElementById('PaintArea').setAttribute('onmousemove',
canvas.width = canvas.width;
这是我的密码:
function startDraw(){
document.getElementById('PaintArea').setAttribute('onmousemove', 'getMouse(event)');
}
function stopDraw(){
document.getElementById('PaintArea').setAttribute('onmousemove', '');
}
function Paint(){
var Size = document.getElementById('Size').value;
var Opacity = document.getElementById('opa').value;
var color = document.getElementById('color').value;
canvas = document.getElementById('PaintArea');
if(canvas.getContext){
var ctx = canvas.getContext('2d');
ctx.fillStyle = color;
ctx.globalAlpha = Opacity;
ctx.beginPath();
ctx.arc(musX-10, musY-10, Size, 0, Math.PI*2);
ctx.closePath();
ctx.fill();
}
}
function clear(){
canvas.width = canvas.width;
}
function getMouse(event) {
musY = event.clientY;
musX = event.clientX;
Paint();
}
按钮:
<button onclick="clear()">Clear</button>
根据错误消息进行猜测。。。试试这个:
<button onclick="window.clear();">Clear</button>
清除
如果是这样的话,考虑使用一个不太模糊的函数名,比如“代码> CurrCANVASE())< /C> >/P>
var _global = this;
// …
function clear ()
{
// …
}
…
<button onclick="_global.clear()">Clear</button>
var\u global=this;
// …
函数清除()
{
// …
}
…
清楚的
(您可以选择任何其他变量标识符来代替\u global
,只要它不与内置或主机定义的符号冲突。\u global
是不可能冲突的标识符。)建议使用方法1,因为它减少了用户定义的全局符号的数量,从而降低了与内置符号和主机定义符号冲突的可能性。
window
是主机定义的属性。它不应用于访问ECMAScript全局对象。相反,使用var global=this
在全局上下文中(变量标识符无关紧要),然后global.clear()
。同样地,global.clearCanvas()
。有关详细信息,请参阅我对该问题的评论。如果下一个浏览器提供了窗口.clearCanvas
属性,该怎么办?容易出错,不推荐。原因和解决方案与我在中解释的相同
<button onclick="clear()">Clear</button>
var myObject = {
startDraw: function (…) {
// …
},
// …
clear: function (…) {
// …
}
};
…
<button onclick="myObject.clear()">Clear</button>
var _global = this;
// …
function clear ()
{
// …
}
…
<button onclick="_global.clear()">Clear</button>