私はJavaScriptを初めて使用します..私は基本的に、ユーザーが目的の形状ボタンをクリックした後にキャンバス上に形状を描画できるときに、このさまざまな形状描画(キャンバス上)プログラムを作成しています...そのコードは次のようになります:
var rectangle = document.getElementById('rec');
rectangle.addEventListener('click', function (e) {
x2 = y2 = 0;
globalOption = 'rec';
var rec = new shape();
e.preventDefault();
}, false)
その後、init関数で..マウスダウンイベントで:
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();」で作成したシェイプ オブジェクトに格納しています。マウスアップイベントでこのオブジェクトを配列にプッシュしています。問題は、配列の長さが正しいにもかかわらず、最後にプッシュされたオブジェクトの情報のみを保存することです..しかし、含まれるすべてのオブジェクトには、最後にプッシュされたオブジェクトの同じ情報が1つあります! それはなぜですか?? 「var rec = new shape();」を配置してみました 違う場所に並んでもダメ!