๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JavaScript/Vanilla JS

[๋ฐ”๋‹๋ผJS๋กœ ๊ทธ๋ฆผํŒ ๋งŒ๋“ค๊ธฐ] Canvas Events

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 4. 24.
๋ฐ˜์‘ํ˜•

[์ถœ์ฒ˜-์œ ํŠœ๋ธŒ ๋…ธ๋งˆ๋“œ ์ฝ”๋” Nomad Coders]

https://youtu.be/Efmq3MY7BN8

 

๋จผ์ € canvas ์œ„์— ๋งˆ์šฐ์Šค๊ฐ€ ์˜ฌ๋ ค์ ธ์žˆ์œผ๋ฉด ๊ทธ๊ฒƒ์„ ๊ฐ์ง€ํ•˜๋Š” javascript๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ž„!

app.js์— ์ฝ”๋”ฉ์„ ํ•œ๋‹ค.

const canvas = document.getElementById("jsCanvas");

function onMouseMove(event) {
    console.log(event);
}

if(canvas) {
    canvas.addEventListener("mousemove", onMouseMove);
}

canvas ์œ„์—์„œ ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์ด๋ฉด ์ €๋ ‡๊ฒŒ console์ด ๋Š์ž„์—†์ด ์ถœ๋ ฅ๋œ๋‹ค.

window์—์„  ๊ฐ•์˜์˜์ƒ์ฒ˜๋Ÿผ ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์ด๋Š” ์ฆ‰์‹œ console์ฐฝ์— ๋ฐ”๋กœ๋ฐ”๋กœ ์ถœ๋ ฅ์ด ๋˜์ง€์•Š์Œ.

์‚ฌ์‹ค window ๋ฌธ์ œ์ธ์ง€ ๋‚ด ์ปดํ“จํ„ฐ ๋ฌธ์ œ์ธ์ง„ ์•Œ์ˆ˜ ์—†์Œ. ์ด ๊ธ€์„ ๋ณด๊ณ  ๊ณ„์‹ ๋ถ„๋“ค๋„ ํ•œ๋ฒˆ ํ™•์ธํ•ด ๋ณด์„ธ์š”!!

 

 

 

ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์บ”๋ฒ„์Šค ์•ˆ์˜ ์ขŒํ‘œ๊ฐ€ ์ฐํžˆ๊ธธ ์›ํ•œ๋‹ค ํ•จ..

(์œ„์— ์ฐํžŒ screen, client ์ขŒํ‘œ๋Š” ํ™”๋ฉด์ƒ ์ขŒํ‘œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค)

offset์ด canvas ์•ˆ ์ขŒํ‘œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

๋‹ค์Œ์œผ๋ก  ํด๋ฆญํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” event์ธ MouseDown์„ ๋งŒ๋“ค์–ด ๋ณด์ž.

const canvas = document.getElementById("jsCanvas");

function onMouseMove(event) {
    const x = event.offsetX;
    const y = event.offsetY;   
}

function onMouseDown(event) {
    console.log(event);
}

if(canvas) {
    canvas.addEventListener("mousemove", onMouseMove);
    canvas.addEventListener("mousedown", onMouseDown);
}

๋งˆ์šฐ์Šค๋ฅผ ์ฒ˜์Œ ํด๋ฆญํ•œ ๋ถ€๋ถ„์˜ ์ขŒํ‘œ๊ฐ€ ์ฐํžŒ๋‹ค.

 

 

 

๊ทธ๋‹ค์Œ๋ถ€ํ„ด ๋ณต์žกํ•˜๋‹ค... ์ผ๋‹จ ๋”ฐ๋ผ์„œ ์ฝ”๋”ฉํ•ด๋ณด์ž...

๋Œ€์ถฉ ์š”์•ฝํ•˜์ž๋ฉด canvas์— ์„ ์„ ๊ทธ๋ฆด ์ค€๋น„๋ฅผ ํ•œ๋‹จ๋‹ค...

const canvas = document.getElementById("jsCanvas");

let painting = false;

function stopPainting() {
    painting = false;
}

function onMouseMove(event) {
    const x = event.offsetX;
    const y = event.offsetY;   
}

function onMouseDown(event) {
    painting = true;
}

function onMouseUp(event) {
    stopPainting();
}

if(canvas) {
    canvas.addEventListener("mousemove", onMouseMove);
    canvas.addEventListener("mousedown", onMouseDown);
    canvas.addEventListener("mouseup", onMouseUp);
    canvas.addEventListener("mouseleave", stopPainting);
}

์„ ์„ ๊ทธ๋ฆด ์ค€๋น„ ์™„๋ฃŒ!

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€