À̹ÌÁö´Â ¿ë·®ÀÌ Ä¿¼ ·Îµå ¼Óµµ°¡ ´À¸®´Ù. À¥Àº À̹ÌÁö¿¡ ´ëÇؼ ºñµ¿±âÀûÀ¸·Î
µ¿ÀÛÇϴµ¥ ¿ÏÀüÈ÷ ·ÎµåµÉ ¶§±îÁö ±â´Ù¸®Áö ¾Ê°í À¥ ÆäÀÌÁö¸¦ ÀÏ´Ü Ç¥½ÃÇÑ ÈÄ À̹ÌÁö´Â µû·Î Àд´Ù. ±×·¡¼
À̹ÌÁö¸¦ ÀÐÀº Á÷ÈÄ ¹Ù·Î Ãâ·ÂÇϸé Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê´Â´Ù.
function draw() {
var
img = new Image();
img.src="munjangdae.jpg"
ctx.drawImage(img,
50, 0);
}
src¿¡ ÆÄÀÏ À̸§À» ´ëÀÔÇÑ´Ù°í Çؼ Áï½Ã À̹ÌÁö¸¦ ÀÐ¾î ¿À´Â °ÍÀº
¾Æ´Ï¸ç ÀÐÀ¸¶ó´Â Ç¥½Ã¸¸ ÇØ ³õ°í ´ÙÀ½ ¸í·ÉÀ» ¼öÇàÇÑ´Ù. ±×·¯´Ù º¸´Ï
drawImage ¸Þ¼µå¸¦ È£ÃâÇÒ ¶§´Â ¾ÆÁ÷ À̹ÌÁö°¡ ´Ù ÀÐÈ÷Áö ¾ÊÀº »óÅÂÀ̸ç Ãâ·ÂÀº ½ÇÆÐÇÑ´Ù. ·ÎÄÿ¡¼
ÀÌ ¿¹Á¦¸¦ Å×½ºÆ®Çϸé ÄÄÇ»ÅÍ ¼Óµµ°¡ ¿ö³« »¡¶ó ¼º°øÇÏ´Â °æ¿ìµµ ÀÖÁö¸¸ ¿ø°ÝÁöÀÇ À¥ ¼¹ö¿¡¼ ¹ÞÀ» ¶§´Â ½ÇÆÐÇÒ È®·üÀÌ ³ô´Ù.
±×·¡¼ À̹ÌÁö¸¦ ÀÐÀº ÈÄ ¹Ù·Î Ãâ·ÂÇÏÁö ¾Ê°í À̹ÌÁö ·Îµå°¡ ¿Ï·áµÈ Á÷ÈÄÀÎ
onload À̺¥Æ®¿¡ Ãâ·Â Äڵ带 ÀÛ¼ºÇÏ´Â °ÍÀÌ Á¤»óÀûÀÌ´Ù. Áö±Ý±îÁö ¿ì¸®´Â ÀÌ ¹æ½ÄÀ¸·Î
À̹ÌÁö¸¦ Ãâ·ÂÇß´Ù. ±×·¸´Ù¸é À̹ÌÁö°¡ 2°³ÀÎ °æ¿ì´Â ¾î¶»°Ô
ÇÒ±î? µÑ ´Ù ·Îµå ¿Ï·áµÇ¾î¾ß Ãâ·Â °¡´ÉÇϹǷΠonload À̺¥Æ®¸¦
ÁßøÇØ¾ß ÇÑ´Ù.
imageload.html
function draw() {
var
img = new Image();
img.src="munjangdae.jpg";
img.onload
= function() {
ctx.drawImage(img,
50, 0);
var
img2 = new Image();
img2.src="rose.png";
img2.onload
= function() {
ctx.drawImage(img2,
100, 0);
}
}
}
¹®Àå´ë À§¿¡ Àå¹Ì À̹ÌÁö¸¦ °ãÃļ Ãâ·ÂÇß´Ù. ¹®Àå´ëÀÇ onload ¿¡¼ ¹®Àå´ë¸¦ ¸ÕÀú Ãâ·ÂÇÏ°í Àå¹Ì À̹ÌÁö¸¦ Àд´Ù. Àå¹Ì
À̹ÌÁöµµ À̺¥Æ®¸¦ ±â´Ù·Á¾ß ÇϹǷΠ¿ª½Ã onload¿¡¼ Ãâ·ÂÇÑ´Ù.
µÑ Áß Çϳª¶óµµ ·ÎµåµÇÁö ¾ÊÀ¸¸é Á¦´ë·Î Ãâ·ÂµÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ±×·¸´Ù¸é
À̹ÌÁö°¡ 3°³³ª 4°³ÀÎ °æ¿ì´Â ¾î¶»°Ô µÉ±î? ¸¶Âù°¡Áö·Î onload À̺¥Æ® ¾È¿¡¼ ´Ù¸¥ À̹ÌÁöÀÇ onload¸¦ °è¼Ó ±â´Ù·Á¾ß ÇϹǷΠÁßøÀÌ ³Ê¹« ½ÉÇØÁú °ÍÀÌ´Ù. °ÔÀÓÀÇ
°æ¿ì ¼ö¹é°³ÀÇ À̹ÌÁö¸¦ »ç¿ëÇϴµ¥ ÀÌ·± ½ÄÀ̶ó¸é ¾ðÁ¦ °ÔÀÓÀ» ½ÃÀÛÇϰڴ°¡?
ÀÚ¹Ù½ºÅ©¸³Æ®´Â µ¿±âÀûÀÎ À̹ÌÁö ·Îµå ¹æ¹ýÀ» Á¦°øÇÏÁö ¾ÊÀ¸¸ç ÄÄÆÄÀÏµÈ ½ÇÇà ÆÄÀÏÀÌ ¾Æ´Ï¹Ç·Î ½ÇÇà ÆÄÀÏ¿¡ À̹ÌÁö¸¦
³»ÀåÇÒ ¼öµµ ¾ø´Ù. À̺¥Æ®´Â °¢°¢ µû·Î¿©¼ ÀüºÎ ¼º°øÇß´ÂÁö ÀÏÀÏÀÌ Ã¼Å©ÇÏ´Â ¹æ¹ý¹Û¿¡ ¾ø´Ù. ´ÙÀ½ ¿¹Á¦´Â À̹ÌÁö ·Îµå¸¦ ´ë±âÇÏ´Â ±âÃÊÀûÀÎ ¹æ¹ýÀ» º¸¿© ÁØ´Ù.
imageload2.html
<!DOCTYPE html>
<head>
<meta
charset="utf-8">
<title>imageload2</title>
<style>
canvas
{border:5px solid magenta;}
</style>
</head>
<body>
<canvas
id="canvas" width="400" height="200">
ÀÌ
ºê¶ó¿ìÀú´Â ĵ¹ö½º¸¦ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.
</canvas>
<script>
var
canvas;
var
ctx;
var
loadcount = 0;
var
img = new Array(2);
window.onload
= function() {
canvas
= document.getElementById("canvas");
if
(canvas == null || canvas.getContext == null) return;
ctx
= canvas.getContext("2d");
draw();
img[0]
= new Image();
img[0].src="munjangdae.jpg";
img[0].onload
= function() {
loadcount++;
}
img[1]
= new Image();
img[1].src="rose.png";
img[1].onload
= function() {
loadcount++;
}
var
timer = setInterval(function() {
if
(loadcount == 2) {
clearInterval(timer);
draw();
}
},
100);
}
function
draw() {
if
(loadcount != 2) {
ctx.font="30px
arial";
ctx.fillText("·ÎµùÁß...", 100, 100);
}
else {
ctx.drawImage(img[0],
50, 0);
ctx.drawImage(img[1],
100, 0);
}
}
</script>
</body>
</html>
onload¿¡¼ ÇÊ¿äÇÑ À̹ÌÁö¸¦ ·ÎµåÇ쵂 °¢ À̹ÌÁöÀÇ onload À̺¥Æ®¿¡¼ ¼º°øÇÑ °³¼ö¸¦ Ä«¿îÆ®ÇÑ´Ù. ¸ðµÎ ¼º°øÇßÀ» ¶§ÀÇ
À̺¥Æ®´Â µû·Î ³¯¶ó¿ÀÁö ¾ÊÀ¸¹Ç·Î ŸÀ̸Ӹ¦ µ¹·Á °¡¸ç ÀüºÎ ¼º°øÇß´ÂÁö Á¶»çÇÏ´Â ¹æ¹ý¹Û¿¡ ¾ø´Ù. ·Îµå¸¦
¸í·ÉÇÑ ÈÄ 0.1ÃÊ °£°ÝÀ¸·Î ¼º°ø °³¼öÀÎ loadcount º¯¼ö¸¦
Á¡°ËÇØ º¸°í ÀÌ °ªÀÌ 2°¡ µÉ ¶§±îÁö °è¼Ó ´ë±âÇÑ´Ù.
draw¿¡¼´Â loadcount°¡ 2°¡ ¾Æ´Ï¸é ·ÎµùÁßÀ̶ó´Â ¾È³» ¸Þ½ÃÁö¸¸ Ãâ·ÂÇÏ°í ¾Æ¹« °Íµµ ÇÏÁö ¾Ê´Â´Ù. ÇÊ¿äÇÑ
À̹ÌÁö°¡ ÀÖ¾î¾ß ½ÇÇàÀ» ½ÃÀÛÇÒ ¼ö ÀÖ´Ù. ŸÀ̸ӿ¡¼ loadcount°¡ 2°¡ µÇ¸é »õ·Î ȸéÀ» ±×¸®¸ç ´õ ÀÌ»ó ´ë±âÇÒ ÇÊ¿ä°¡ ¾øÀ¸¹Ç·Î ŸÀ̸Ӵ Á¦°ÅÇÑ´Ù. draw´Â À̶§ ºñ·Î¼Ò À̹ÌÁö¸¦ ȸ鿡 Ãâ·ÂÇÒ °ÍÀÌ´Ù.
À§ ¿¹Á¦´Â À̹ÌÁö ·Îµå¸¦ ´ë±âÇÏ´Â ¿ø·ÐÀûÀÎ ¹æ¹ýÀ» º¸¿© ÁÖÁö¸¸ ½ÇÁ¦ »ç¿ëÇϱ⿡´Â ºÒÆíÇÏ´Ù. ÀÌ Äڵ带 °´Ã¼ ÁöÇâÀûÀ¸·Î Àß °³¼±ÇÏ¿© ÆíÀǼºÀ» ³ô¿©¾ß ÇÑ´Ù. ·ÎµåÇÒ
´ë»óÀ» Å¥¿¡ µî·ÏÇÏ°í ŸÀ̸Ӵ ťÀÇ À̹ÌÁö¸¦ Çϳª¾¿ ·ÎµåÇÏ¸ç ·Îµå°¡ ¼º°øÇÒ ¶§¸¶´Ù ÇÁ·Î±×·¡½º ¹Ù³ª ¼ýÀÚ Ä«¿îÆ®¸¦ º¸¿© ÁÖ¾î »ç¿ëÀÚ°¡ Áö·çÇÏÁö ¾Êµµ·Ï
ÇØ¾ß ÇÑ´Ù. ±× ¿Ü¿¡µµ ¿¡·¯ ó¸®¿Í ½ÇÆнÃÀÇ Àç½Ãµµ Äڵ嵵 ÀÛ¼ºÇØ¾ß ÇÑ´Ù.
ÀÎÅÍÇÁ¸®ÅÍ ¾ð¾îÀÎ ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ ÇÊ¿äÇÑ À̹ÌÁö¸¦ ¿ÏÀüÈ÷ ·ÎµåÇÏ´Â °ÍÀº ½±Áö ¾Ê´Ù. ½ÇÁ¦·Î °ÔÀÓ À̹ÌÁö Áß Çϳª°¡ ´©¶ôµÇ¾î ½ÃÀÛÀ» ¸øÇÏ´Â °æ¿ìµµ Á¾Á¾ ÀÖ´Ù. ¿©·¯
°¡Áö ´Ù¸¥ ÇØ°áÃ¥µµ Àִµ¥ ´ÙÀ½ ¿¹Á¦´Â Äڵ忡¼ ½Ç½Ã°£À¸·Î À̹ÌÁö¸¦ ÀÐ¾î ¿À´Â ´ë½Å HTML ÆäÀÌÁö¿¡
»ì¦ ¼û°Ü ³õÀº À̹ÌÁö¸¦ È°¿ëÇÑ´Ù.
imageload3.html
<!DOCTYPE html>
<head>
<meta
charset="utf-8">
<title>imageload3</title>
<style>
canvas
{border:5px solid magenta;}
</style>
</head>
<body>
<canvas
id="canvas" width="400" height="200">
ÀÌ
ºê¶ó¿ìÀú´Â ĵ¹ö½º¸¦ Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.
</canvas>
<div
style="display:none">
<img
id="munjangdae" src="munjangdae.jpg">
</div>
<script>
var
canvas;
var
ctx;
window.onload
= function() {
canvas
= document.getElementById("canvas");
if
(canvas == null || canvas.getContext == null) return;
ctx
= canvas.getContext("2d");
draw();
}
function
draw() {
var
img = document.getElementById("munjangdae");
ctx.drawImage(img,
50, 0);
}
</script>
</body>
</html>
body¾È¿¡ div ű׸¦
µÎ°í ÀÌ ¾È¿¡ À̹ÌÁö¸¦ ¹èÄ¡Ç쵂 ÀÌ À̹ÌÁö´Â ½ÇÇàÁß¿¡ ĵ¹ö½º¿¡¼ »ç¿ëÇÒ °ÍÀ̹ǷΠÆäÀÌÁö¿¡ ³ªÅ¸³ª¼´Â ¾ÈµÈ´Ù.
divÀÇ display ¼Ó¼ºÀ» noneÀ¸·Î ÁöÁ¤ÇÏ¿©
¼û±ä´Ù. ¶Ç´Â hidden °øÅë ¼Ó¼ºÀ¸·Î ¼û±æ ¼öµµ ÀÖ´Ù. ±×·¯³ª visibility ¼Ó¼ºÀ¸·Î hiddenÀ¸·Î ¼³Á¤ÇÏ´Â ¹æ¹ýÀº À̹ÌÁö Å©±â¸¸Å ½ºÅ©·Ñ ¿µ¿ªÀÌ °è»êµÇ¹Ç·Î ÁÁÁö ¾Ê´Ù.
¼û°ÜÁø µðºñÀü¾È¿¡ À̹ÌÁö¸¦ ¹èÄ¡ÇØ ³õÀ¸¸é HTML ¹®¼¸¦ ÀÐÀ» ¶§
ºê¶ó¿ìÀú°¡ À̹ÌÁö¸¦ ·ÎµåÇÒ °ÍÀÌ´Ù. µû¶ó¼ window.onload À̺¥Æ®°¡
¹ß»ýÇßÀ» ¶§´Â ÀÌ¹Ì À̹ÌÁö°¡ ·ÎµåµÈ »óȲÀ̸ç À̺¥Æ®¸¦ ±â´Ù¸®Áö ¾Ê¾Æµµ ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ½ºÅ©¸³Æ®
Äڵ忡¼ ¼û°ÜÁø À̹ÌÁö¸¦ ÂüÁ¶ÇØ¾ß ÇϹǷΠid¸¦ ¹Ýµå½Ã ÁÖ¾î¾ß ÇÑ´Ù.
Äڵ忡¼´Â documentÀÇ getElementById ¸Þ¼µå·Î
À̹ÌÁö¸¦ ÀÐ¾î »ç¿ëÇÑ´Ù.