
ActionScript 2.0 ¾ð¾î ÂüÁ¶ ¼³¸í¼
ActionScript ¾ð¾î ¿ä¼Ò > Àü¿ª ÇÔ¼ö > setInterval ÇÔ¼ö
setInterval ÇÔ¼ö
setInterval(functionReference:Function, interval:Number, [param1:Object, param2, ..., paramN]) : Number
setInterval(objectReference:Object, methodName:String, interval:Number, [param1:Object, param2, ..., paramN]) : Number
SWF ÆÄÀÏÀÌ Àç»ýµÇ´Â µ¿¾È ÁÖ±âÀûÀ¸·Î °´Ã¼ÀÇ ÇÔ¼ö³ª ¸Þ¼µå¸¦ È£ÃâÇÕ´Ï´Ù. setInterval()À» »ç¿ëÇÏ¿© ½Ã°£¿¡ µû¶ó ¸ðµç ÇÔ¼ö¸¦ ¹Ýº¹ÀûÀ¸·Î ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
setInterval()À» »ç¿ëÇÒ ¶§´Â ´ÙÀ½ Âü°í¸¦ »ç¿ëÇÕ´Ï´Ù.
È£ÃâµÇ°í ÀÖ´Â ÇÔ¼ö ¹üÀ§¸¦ ½Äº°ÇÕ´Ï´Ù.
°£°Ý ID(setInterval()ÀÇ ¹Ýȯ°ª)°¡ ¼³Á¤µÈ ¹üÀ§¸¦ ½Äº°ÇÕ´Ï´Ù.
»õ °£°ÝÀ» ½ÃÀÛÇϱâ Àü¿¡ ÀÌÀü¿¡ ¼³Á¤ÇÑ °£°ÝÀ» ÇØÁ¦ÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ Âü°í´Â ´ÙÀ½ ´Ü¶ô¿¡¼ ÀÚ¼¼È÷ ¼³¸íµË´Ï´Ù.
È£ÃâµÇ°í ÀÖ´Â ÇÔ¼ö ¹üÀ§¸¦ ½Äº°ÇÕ´Ï´Ù. È£ÃâµÇ°í ÀÖ´Â ÇÔ¼ö ¹üÀ§¸¦ ½Äº°ÇÏ·Á¸é setInterval() ¸Þ¼µå¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â °´Ã¼(°´Ã¼ ¹üÀ§)¸¦ ù ¹øÂ° ¸Å°³ º¯¼ö·Î Àü´ÞÇÏ°í ½ÇÇàÇÒ ¸Þ¼µå À̸§À» µÎ ¹øÂ° ¸Å°³ º¯¼ö(µÎ ¹øÂ° ¼¸í¿¡ Ç¥½Ã)·Î Àü´ÞÇÕ´Ï´Ù. ÀÌ·¸°Ô Çϸé Àü´ÞµÈ °´Ã¼ ÂüÁ¶ ¹üÀ§¿¡¼ ¿øÇÏ´Â ¸Þ¼µå°¡ ½ÇÇàµË´Ï´Ù. ¸Þ¼µå¸¦ ÀÌ ¹æ¹ýÀ¸·Î ½ÇÇàÇϸé ÀÌ ¸Þ¼µå´Â this Ű¿öµå¸¦ »ç¿ëÇÏ¿© °´Ã¼¿¡¼ ¸â¹ö º¯¼ö¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.
°£°Ý ½Äº°ÀÚ°¡ ¼³Á¤µÈ ¹üÀ§¸¦ ½Äº°ÇÕ´Ï´Ù. °£°Ý ½Äº°ÀÚ(intervalId)°¡ ¼³Á¤µÈ ¹üÀ§¸¦ ½Äº°ÇÏ·Á¸é setInterval()·Î Àü´ÞÇÑ °´Ã¼ ¹üÀ§¿¡¼ ¸â¹ö º¯¼ö¿¡ ÀÌ ¹üÀ§¸¦ ÁöÁ¤ÇÏ¸é µË´Ï´Ù. ÀÌ·¸°Ô Çϸé È£ÃâµÇ°í ÀÖ´Â ÇÔ¼ö´Â this.intervalId¿¡¼ °£°Ý ½Äº°ÀÚ¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù.
ÀÌÀü¿¡ ¼³Á¤ÇÑ °£°ÝÀ» ÇØÁ¦ÇÕ´Ï´Ù. »õ °£°ÝÀ» ½ÃÀÛÇϱâ Àü¿¡ ÀÌÀü¿¡ ¼³Á¤ÇÑ °£°ÝÀ» ÇØÁ¦ÇÏ·Á¸é ÀϹÝÀûÀ¸·Î setInterval()À» È£ÃâÇϱâ Àü¿¡ ÀÌÀü¿¡ clearInterval()À» È£ÃâÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¸°Ô Çϸé ÇöÀç ½ÇÇàµÇ°í ÀÖ´Â °£°Ý¿¡ ´ëÇÑ À¯ÀÏÇÑ ÂüÁ¶ÀÎ intervalId º¯¼ö¸¦ µ¤¾î¾²°Å³ª »èÁ¦ÇÏÁö ¾Ê°Ô µË´Ï´Ù. setInterval()À» È£ÃâÇϱâ Àü¿¡ clearInterval()À» È£ÃâÇÏ·Á¸é ¿¹Á¦¿¡ ³ª¿Í ÀÖ´Â °Íó·³ ½ÃÀÛÇÏ´Â ½ºÅ©¸³Æ®¿Í ½ÇÇà ÁßÀÎ ½ºÅ©¸³Æ® ¸ðµÎ intervalId¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.
Âü°í: ½ºÅ©¸³Æ®¿¡¼ ·çÇÎÀ» ÁßÁöÇÏ·Á¸é Ç×»ó clearInterval()À» È£ÃâÇØ¾ß ÇÕ´Ï´Ù.
Áö¿ø ¹öÀü: Flash Player 6; ActionScript 1.0
¸Å°³ º¯¼ö
functionReference:Function - È£ÃâÇÒ ÇÔ¼ö¿¡ ´ëÇÑ ÂüÁ¶ÀÔ´Ï´Ù.
interval:Number - Àü´ÞµÈ functionReference ¶Ç´Â methodName ÇÔ¼öÀÇ È£Ãâ »çÀÌÀÇ ¹Ð¸®ÃÊ ´ÜÀ§ ½Ã°£ÀÔ´Ï´Ù.
intervalÀÌ SWF ÆÄÀÏÀÇ ÇÁ·¹ÀÓ ¼Óµµ(¿¹: ÃÊ´ç 10ÇÁ·¹ÀÓ(10 fps)Àº 100¹Ð¸®ÃÊ °£°Ý°ú °°À½)º¸´Ù ÀÛÀ¸¸é, ÃÖ´ëÇÑ interval °ªÀÇ ½Ã°£¿¡ °¡±õ°Ô interval ÇÔ¼ö°¡ È£ÃâµË´Ï´Ù. ÇÑ °£°Ý µ¿¾È ¸Þ¸ð¸® »ç¿ëÀÌ ¸¹°í ±ä ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϸé Áö¿¬ÀÌ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. È£ÃâµÇ´Â ÇÔ¼ö¿¡ ÀÇÇØ ½Ã°¢Àû ¿ä¼Ò°¡ º¯°æµÉ °æ¿ì updateAfterEvent() ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ȸéÀ» ÃæºÐÈ÷ »õ·Î °íÃÄ¾ß ÇÕ´Ï´Ù. intervalÀÌ SWF ÆÄÀÏÀÇ ÇÁ·¹ÀÓ ¼Óµµº¸´Ù Å« °æ¿ì interval ÇÔ¼ö´Â intervalÀÌ ¸¸·áµÇ°í Àç»ý Çìµå°¡ ´ÙÀ½ ÇÁ·¹ÀÓÀ¸·Î µé¾î°£ ÈÄ¿¡¸¸ È£ÃâµÇ¸ç ÀÌ·Î ÀÎÇØ ȸéÀ» »õ·Î °íÄ¥ ¶§¸¶´Ù ¿µÇâÀÌ ÃÖ¼Òȵ˴ϴÙ.
param:Object [¼±Åà »çÇ×] - functionReference ¶Ç´Â methodNameÀ¸·Î Àü¼ÛµÈ ÇÔ¼ö¿¡ Àü´ÞµÈ ¸Å°³ º¯¼öÀÔ´Ï´Ù. ¿©·¯ ¸Å°³ º¯¼ö´Â ½°Ç¥·Î ±¸ºÐÇØ¾ß ÇÕ´Ï´Ù. param1 , param2 , ..., paramN
objectReference:Object - methodNameÀ¸·Î ÁöÁ¤ÇÑ ¸Þ¼µå°¡ Æ÷ÇÔµÈ °´Ã¼ÀÔ´Ï´Ù.
methodName:String - objectReference·Î ÁöÁ¤ÇÑ °´Ã¼ ¹üÀ§¿¡ ÀÖ´Â ¸Þ¼µåÀÔ´Ï´Ù.
¹Ýȯ°ª
Number - clearInterval()¿¡ Àü´ÞÇÏ¿© °£°ÝÀ» Ãë¼ÒÇÒ ¼ö ÀÖ´Â °£°Ý(°£°Ý ID)À» ½Äº°ÇÏ´Â Á¤¼öÀÔ´Ï´Ù.
¿¹Á¦
¿¹Á¦ 1: ´ÙÀ½ ¿¹Á¦¿¡¼´Â 20¹Ð¸®ÃÊ °£°ÝÀ¸·Î ¸Þ½ÃÁö¸¦ 10¹ø±îÁö ÃßÀûÇÑ ´ÙÀ½ °£°ÝÀ» ÇØÁ¦ÇÕ´Ï´Ù. °´Ã¼ ¹üÀ§ this´Â ù ¹øÂ° ¸Å°³ º¯¼ö·Î, ¸Þ¼µå À̸§ executeCallbackÀº µÎ ¹øÂ° ¸Å°³ º¯¼ö·Î Àü´ÞµË´Ï´Ù. ÀÌ·¸°Ô Çϸé executeCallback()ÀÌ È£ÃâÇÏ´Â ½ºÅ©¸³Æ®¿Í µ¿ÀÏÇÑ ¹üÀ§¿¡¼ ½ÇÇàµË´Ï´Ù.
var intervalId:Number;
var count:Number = 0;
var maxCount:Number = 10;
var duration:Number = 20;
function executeCallback():Void {
trace("executeCallback intervalId: " + intervalId + " count: " + count);
if(count >= maxCount) {
clearInterval(intervalId);
}
count++;
}
intervalId = setInterval(this, "executeCallback", duration);
¿¹Á¦ 2: ´ÙÀ½ ¿¹Á¦´Â setInterval() Àü¿¡ clearInterval()À» È£ÃâÇÑ´Ù´Â Á¡À» Á¦¿ÜÇϸé ù ¹øÂ° ¿¹Á¦¿Í ºñ½ÁÇÕ´Ï´Ù. ÀÌ ¿¹Á¦´Â ¿øÇÏÁö ¾Ê´Â ·çÇÁ¸¦ ¹æÁöÇÏ´Â µ¥ µµ¿òÀÌ µÉ ¼ö ÀÖ°í Æ¯Á¤ °£°ÝÀÌ ¸ðµÎ ÇØÁ¦µÇ±â Àü¿¡ ½ÃÀÛÇÏ´Â ½ºÅ©¸³Æ®¸¦ ¿©·¯ ¹ø ½ÇÇàÇÒ ¼ö ÀÖ´Â À̺¥Æ® ±â¹Ý ½Ã½ºÅÛ¿¡¼ ƯÈ÷ À¯¿ëÇÕ´Ï´Ù.
var intervalId:Number;
var count:Number = 0;
var maxCount:Number = 10;
var duration:Number = 20;
function executeCallback():Void {
trace("executeCallback intervalId: " + intervalId + " count: " + count);
if(count >= maxCount) {
clearInterval(intervalId);
}
count++;
}
function beginInterval():Void {
if(intervalId != null) {
trace("clearInterval");
clearInterval(intervalId);
}
intervalId = setInterval(this, "executeCallback", duration);
}
beginInterval();
beginInterval();
beginInterval();
¿¹Á¦ 3: ´ÙÀ½ ¿¹Á¦¿¡¼´Â È£ÃâµÇ°í ÀÖ´Â ÇÔ¼ö¿¡ »ç¿ëÀÚ Á¤ÀÇ Àμö¸¦ Àü´ÞÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.
var intervalId:Number;
var count:Number = 0;
var maxCount:Number = 10;
var duration:Number = 20;
var colors:Array = new Array("red",
"blue",
"yellow",
"purple",
"green",
"orange",
"salmon",
"pink",
"lilac",
"powder blue",
"mint");
function executeCallback(param:String) {
trace("executeCallback intervalId: " + intervalId + " count: " + count + " param: " + param);
clearInterval(intervalId);
if(count < maxCount) {
count++;
intervalId = setInterval(this, "executeCallback", duration, colors[count]);
}
}
if(intervalId != null) {
clearInterval(intervalId);
}
intervalId = setInterval(this, "executeCallback", duration, colors[count]);
¿¹Á¦ 4: ´ÙÀ½ ¿¹Á¦¿¡¼´Â ActionScript 2.0 »ç¿ëÀÚ Á¤ÀÇ Å¬·¡½º¿¡¼ setInterval()À» ¿Ã¹Ù¸£°Ô »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù. ÀÌÀü ¿¹Á¦¿Í ¸¶Âù°¡Áö·Î this¸¦ setInterval() ÇÔ¼ö¿¡ Àü´ÞÇÏ¿© ¿Ã¹Ù¸¥ ¹üÀ§ ³»¿¡¼ È£ÃâµÇ´Â ¸Þ¼µå¸¦ ½ÇÇàÇØ¾ß ÇÕ´Ï´Ù.
class CustomClass {
private var intervalId:Number;
private var count:Number = 0;
private var maxCount:Number = 10;
private var duration:Number = 20;
public function CustomClass():Void {
beginInterval();
}
private function beginInterval():Void {
if(intervalId != null) {
trace("clearInterval");
clearInterval(intervalId);
}
intervalId = setInterval(this, "executeCallback", duration);
}
public function executeCallback():Void {
trace("executeCallback intervalId: " + intervalId + " count: " + count);
if(count >= maxCount) {
clearInterval(intervalId);
}
count++;
}
}
»õ ¹®¼¿¡¼ »õ Ŭ·¡½ºÀÇ »õ ÀνºÅϽº¸¦ ÀνºÅϽºÈÇÕ´Ï´Ù.
var custom:CustomClass = new CustomClass();
Âü°í »çÇ×
clearInterval ÇÔ¼ö, updateAfterEvent ÇÔ¼ö, class ¹®
| |