我对 JavaScript 很陌生..我基本上是在编写这个不同的形状绘图(在画布上)程序,当用户可以在单击所需的形状按钮后在画布上绘制形状时......代码如下所示:
var rectangle = document.getElementById('rec');
rectangle.addEventListener('click', function (e) {
x2 = y2 = 0;
globalOption = 'rec';
var rec = new shape();
e.preventDefault();
}, false)
之后在 init 函数中.. 在 mousedown 事件中:
else if(globalOption == 'rec')
{
e.target.style.cursor = 'crosshair';
rec.name = 'rec';
started = 'true';
x2 = y2 = 0;
x = e.pageX - canvas.offsetLeft;
y = e.pageY - canvas.offsetTop;
rec.x = x;
rec.y = y;
//context.beginPath();
}
我将有关此形状的所有信息存储在我之前在 addEventListener 代码“var rec = new shape();”中创建的形状对象中。我在鼠标向上事件中将此对象推送到数组中。现在的问题是,它只存储最后推送对象的信息..即使数组长度是正确的..但它包含的所有对象都具有与最后推送对象相同的信息!为什么??我尝试放置“var rec = new shape();” 线在不同的地方,但没有用!