我是这方面的初学者,之前还没有真正做过任何 JavaScript,所以我希望你能帮助我。我制作了一个画布,让用户可以使用单选按钮选择形状和颜色,然后将其绘制到画布上。我还添加了一个复选框,可以选择为所选颜色添加渐变。这是程序: http: //people.dsv.su.se/~caak1743/Canvas/canvas.html
现在我不想让形状可以在画布区域周围拖放。而且我发现了一个我认为可以更改以在我的程序上工作的代码,但我不断收到:TypeError: Cannot call method 'getContext' of null init (anonymous function) for the line:
var ctx = canvas.getContext("2d");
而且我不知道出了什么问题或如何解决它。我试过寻找有类似问题的类似程序,但没有找到任何我可以在这里应用的东西。这是我试图与我合并的代码:
function init() {
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
return setInterval(draw, 10);
}
function draw() {
clear();
ctx.fillStyle = "#FAF7F8";
rectangle(0,0,WIDTH,HEIGHT);
ctx.fillStyle = "#444444";
rectangle();
}
function myMove(e){
if (dragok){
x = e.pageX - canvas.offsetLeft;
y = e.pageY - canvas.offsetTop;
}
}
function myDown(e){
if (e.pageX < x + 15 + canvas.offsetLeft && e.pageX > x - 15 +
canvas.offsetLeft && e.pageY < y + 15 + canvas.offsetTop &&
e.pageY > y -15 + canvas.offsetTop){
x = e.pageX - canvas.offsetLeft;
y = e.pageY - canvas.offsetTop;
dragok = true;
canvas.onmousemove = myMove;
}
}
function myUp(){
dragok = false;
canvas.onmousemove = null;
}
init();
canvas.onmousedown = myDown;
canvas.onmouseup = myUp;