【发布时间】:2012-12-15 20:16:23
【问题描述】:
我正在做一个 HTML5 画布画家,具有绘制、放置矩形、圆形和不同颜色选项的选项。 我的问题是我最初有一个默认值为“铅笔”的 var 工具,我想通过单击将此变量更改为“矩形”(还没有从圆圈开始,因为我想先完成这项工作)在相应的 div 上,这样我就可以有一个用于绘图、矩形或圆形的 if 语句。但这不起作用,我选择了变量,因为我在 onclick 函数中放置了一个警报。 之后我尝试使用布尔变量(pencil = true,rect = false,本来是一个“状态”),但这也不起作用。我确实已经写下了 if 语句,所以我现在的结论是,我以某种方式将布尔值作为常量(因为铅笔 = true 是我的 var 的默认状态),这似乎不太可能。更合乎逻辑的解释是我没有通过 div-click 正确更改变量的值。
这是我的代码的一部分:
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var color = "black";
var drawing = false;
var pencil = true;
var rect = false;
//Pencil
var pencilDiv = document.getElementById("pencil");
pencilDiv.onclick = function () {
pencil = true;
rect = false;
}
//Rect
var rectDiv = document.getElementById("rect");
rectDiv.onclick = function () {
rect = true;
pencil = false;
}
if (pencil) {
canvas.onmousedown = function (event) {
drawing = true;
}
canvas.onmousemove = function (event) {
if (drawing) {
draw()
}
}
canvas.onmouseup = function (event) {
drawing = false;
}
}
if (rect) {
canvas.onmousedown = function (event) {
rect()
}
}
draw 和 rect 功能都有效。我也试过 if(pencil == true && rect == false),也没用。
对不起,如果答案是显而易见的,我只是没有看到,这是我第二次用 Javascript 编程。
提前致谢!
【问题讨论】:
标签: javascript html canvas if-statement boolean