1
私はマウスでキャンバスに矩形を描画しようとしています。ここに私の最初の試みは、次のとおりです。角2:キャンバス上にマウスで描画する矩形。
private captureEvents(canvasEl: HTMLCanvasElement) {
Observable
.fromEvent(canvasEl, 'mousedown')
.subscribe((res: MouseEvent) => {
console.log('MOUSE DOWN');
const rect = canvasEl.getBoundingClientRect();
this.originPoint = new Point();
this.originPoint.x = res.clientX;
this.originPoint.y = res.clientY;
this.startPoint = new Point();
this.startPoint.x = res.clientX - rect.left;
this.startPoint.y = res.clientY - rect.top;
});
Observable
.fromEvent(canvasEl, 'mouseup')
.subscribe((res: MouseEvent) => {
console.log('MOUSE UP');
let w: number = res.clientX - this.originPoint.x ;
let h: number = res.clientY - this.originPoint.y;
this.cx.rect(this.startPoint.x, this.startPoint.y, w, h);
this.cx.stroke();
}
);
}
これは動作しますが、それはmouseUpイベントの後に四角形を示しており、私はマウスを移動するとき描画矩形を見たいのですが。
コンソールに「マウスダウン」文字列が記録されていますが、「マウスアップ」が記録されるまで、その四角形は描画されていません。 –
はい、それはそのように実装されています。私はマウスをドラッグしているときに描画の「進行」を見たいと思います。しかし、私はそれをどのように実装するのか分かりません。 –
onmousemoveイベントを試しましたか? –