¿ÀÈÄ 5:39 2004-11-08 ÀÛ¼º
¿ÀÀü 11:54 2004-11-24 ¾÷µ¥ÀÌÆ®
¾îÇø®ÄÉÀ̼ǿ¡ Flash·Î ¸¸µç UI¸¦ µÚÁý¾î ¾º¿öº¸ÀÚ´Â ¸ñÀûÀ¸·Î ÀÛ¼ºµÇ¾úÀ½.
Kenial : Kenial_at_shinbiro_com
¸ÕÀú 'µµ±¸ »óÀÚ'¿¡¼ ¿ìŬ¸¯ -> 'Ç׸ñ Ãß°¡/Á¦°Å' ¸Þ´º¿¡¼
±× ´ÙÀ½ Shockwave Flash Object ÄÁÆ®·ÑÀ» Ãß°¡ÇÑ´Ù :
Movie ¼Ó¼º¿¡ Ç÷¡½Ã ÆÄÀÏÀÇ °æ·Î¸¦ ¹Ì¸® ÁöÁ¤ÇØÁ൵ ÁÁÁö¸¸
±×¸®°í Ç÷¡½Ã ¹«ºñ¸¦ Çϳª ¸¸µé¾îº¸ÀÚ.
ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â °æ·Î¿¡ ¸¸µé¾îÁø test.swf ÆÄÀÏÀ» ³Ö¾î³õÀ¸¸é
¸¸µé¾îÁø ¾ÖÇø®ÄÉÀÌ¼Ç È¸é :
ÀÏ´Ü Ç÷¡½Ã ¹«ºñ°¡ ¾îÇø®ÄÉÀ̼ǿ¡ ¾ñ¾îÁö±â´Â ÇßÁö¸¸,
Ç÷¡½Ã ¹«ºñ¿¡¼´Â ±× ÀÚ½ÅÀ» Æ÷ÇÔÇÏ´Â ÄÁÅ×À̳Ê(=À¥ ºê¶ó¿ìÀú)¿ÍÀÇ ¿¬µ¿ÇÏ´Â ¹æ¹ýÀ¸·Î º¸Åë FSCommand¸¦ »ç¿ëÇÑ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ ¾µ ¼ö ÀÖ´Â ½ºÅ¸ÀÏ°ú ºñ½ÁÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î À¥¿¡¼ FSCommand¸¦ »ç¿ëÇØ º» °æÇèÀÌ ÀÖ´Â »ç¶÷Àº Á» ´õ ÆíÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ°Ú´Ù. ±×¸®°í ActiveXÀÇ Event°¡ ±¸ÇöµÇ¾î ÀÖÀ¸¹Ç·Î, ±×´ë·Î C#ÀÇ Delegate¿¡ ÇÒ´çÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù.
»ç¿ë¹ýÀº °£´ÜÇÏ´Ù.
¸ÕÀú Ç÷¡½Ã ¹«ºñÀÇ ¹öÆ°¿¡ fscommand() ÇÔ¼ö¸¦ ³ÖÀÚ :
ActionScript?¿¡ ÀüÇô ¹®¿ÜÇÑÀÎ »ç¶÷À» À§ÇØ Ã·¾ðÇÏÀÚ¸é,
¾î·µç Ç÷¡½Ã¿¡¼ÀÇ ÄÚµùÀº Àú°ÍÀ¸·Î ³¡ÀÌ´Ù.
±× ´ÙÀ½ vs.net¿¡¼´Â FSCommandÀÇ Delegate¿¡ ÇÔ¼ö¸¦ ÇÒ´çÇÏ°í :
´ÙÀ½ Äڵ带 ÀÔ·ÂÇϵµ·Ï ÇÏÀÚ :
À§ ÄÚµå´Â param °ªÀ» ¸Þ½ÃÁö¹Ú½º·Î º¸¿©ÁÖ°í ¾îÇø®ÄÉÀ̼ÇÀ» Á¾·áÇÏ´Â ÄÚµåÀÌ´Ù.
ÀÌ·± ½ÄÀ¸·Î ¾ÖÇø®ÄÉÀ̼ÇÀÇ UI ºÎºÐÀº Ç÷¡½Ã·Î ¸¸µé°í, ÇÊ¿äÇÑ ±â´É ÀÚü´Â ¾ÖÇø®ÄÉÀÌ¼Ç ³»ºÎ Äڵ忡¼ ±¸ÇöÇÏ´Â ¹æ¹ýÀ¸·Î dzºÎÇÑ UI¸¦ Á¦°øÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇØ º¸µµ·Ï ÇÏÀÚ.
ÀÚ. À̹ø¿£ ¹Ý´ë »óȲÀÌ´Ù.
¾ÆÁÖ °£´ÜÇÑ ¹æ¹ýÀ¸·Î´Â, Flash Object¿¡¼ ±âº»À¸·Î »ç¿ëÇÏ´Â ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. Flash Object¿¡¼ Á¦°øÇÏ´Â ¸Þ¼µå¸¦ ¹Ì¸® »ìÆ캸½Å ¿©·¯ºÐµéÀº ¸ðµÎ ´«Ä¡¸¦ ä¼Ì°ÚÁö¸¸, ÀÌ ÄÁÆ®·Ñ¿¡¼´Â ÇÁ·¹ÀÓ ´ÜÀ§ÀÇ À̵¿À» µ½´Â ¸î °¡Áö ¸Þ¼µå°¡ Á¦°øµÈ´Ù :
Ç÷¡½ÃÀÇ Timeline °³³äÀ» ÀÌÇØÇÏ°í Àִ°¡? (¾ÆÁ÷ ¸ð¸£°í °è½Å ºÐµéÀº Àá½Ã ÁÖÀ§ÀÇ Ç÷¡¼Å¸¦ ºÙÀâ¾Æ 5ºÐ °ÀǸ¦ µéÀ¸½Ã±â ¹Ù¶õ´Ù. ÇÊÀڴ ȸé ĸóÇϱⰡ ºÎ´ã½º·¯¿ö¼; ¿©±â¼± Àá½Ã ³Ñ¾î°¡°Ú´Ù) Àú ¸Þ¼µåµéÀº Timeline À§¿¡¼ÀÇ Æ¯Á¤ ÇÁ·¹ÀÓÀ¸·Î À̵¿Çϰųª, ±× ÇÁ·¹ÀÓ¿¡ ÇÒ´çµÇ¾î ÀÖ´Â Actionscript¸¦ È£ÃâÇÏ´Â ¸Þ¼µåÀÌ´Ù.
'SetVariable?À» È£Ãâ, _root¿¡ Variable °ªÀ» ÇÒ´çÇÑ´Ù. -> TCallLabel?À» È£Ãâ, ÇÒ´çµÈ Variable °ªÀ» ó¸®ÇÏ´Â ½ºÅ©¸³Æ® Äڵ尡 ÀÖ´Â ÇÁ·¹ÀÓÀÇ Äڵ带 È£ÃâÇÑ´Ù.' ÀÇ ¼ø¼´ë·Î ó¸®ÇÒ ¼ö ÀÖ´Ù. ´Ù¸¸ ÀÌ °æ¿ì¿¡´Â, TimelineÀÇ ÀÛ¾÷ Ư¼º»ó Äڵ尡 ºÐ»êµÇ¾î ã¾Æº¸´Â °Í ÀÚü°¡ ¾î·Æ´Ù´Â °Íµµ ¹®Á¦°í, °¢ ÇÁ·¹ÀÓÀÇ ·¹ÀÌºí¿¡ ¾Æ¹«¸® ½¬¿î À̸§À» ÁÖ´õ¶óµµ °¢ ÇÔ¼ö ´ÜÀ§·Î ó¸®ÇϱⰡ ½±Áö ¾ÊÀºµ¥´Ù°¡, Àμö¸¦ Àü´ÞÇϱâ À§Çؼ´Â Àμö¿¡ ÇØ´çÇÏ´Â VariableÀ» Àß Á¤¸®ÇÑ »óÅ¿¡¼ ÀÛ¾÷ÇØ¾ß ÇÑ´Ù´Â µîµîÀÇ ´ÜÁ¡ÀÌ ÀÖ¾î¼ ¼ö¸¹Àº Ç÷¡¼Å¿Í ÇÁ·Î±×·¡¸Óµé¿¡°Ô ³ë°¡´ÙÀÇ ÁüÀ» ¾È°ÜÁÖ¾ú´Ù.
ÀÌ·± ¹®Á¦°¡ ÀÖ¾î¼, ÇÊÀÚÀÇ °æ¿ì¿¡´Â ƯÁ¤ ¹«ºñŬ¸³¿¡¼ VariableÀÇ °ªÀ» °è¼Ó °Ë»çÇÏ´Â ÇüÅ·Π¸¸µé¾î¼ »ç¿ëÇØ ¿Ô¾ú°í ÀÌ ¾ÆƼŬ¿¡¼µµ ±× ³»¿ëÀ» ¼Ò°³ÇÏ·Á°í ÇßÀ¸³ª, ¾ó¸¶ Àü¿¡ ¹ß°ßÇÑ Mindfire Solutions(www.mindfiresolutions.com)ÀÇ ¾ÆƼŬÀÌ ÀÖ¾î ±× ³»¿ëÀ» ´ë½Å ¼Ò°³Çϵµ·Ï ÇÏ°Ú´Ù. (ÄÚµå ³»¿ëÀº Flash MX 2004¿¡ ¸ÂÃç ¾à°£ ¼öÁ¤µÇ¾ú´Ù)
ÀÚ. ½ÃÀÛÇÏÀÚ.
¸ÕÀú ´ÙÀ½°ú °°Àº ÇüÅÂÀÇ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé¾î º¸ÀÚ :
ÇÒ ÀÏÀº °£´ÜÇÏ´Ù : ¾îÇø®ÄÉÀ̼ÇÀÇ 'Ç÷¡½ÃÈ£Ãâ' ¹öÆ°À» ´©¸£¸é, Ç÷¡½Ã ¹«ºñÀÇ VariableÀÎ 'Message'¿¡ 'CallFunction1?'°ªÀ» ÇÒ´çÇÏ°í, Ç÷¡½Ã ¹«ºñ¿¡¼´Â ÀÌ ÇÒ´çµÈ °ªÀ» ÀνÄÇؼ ´Ù½Ã FSCommand·Î ¾îÇø®ÄÉÀ̼ǿ¡ 'CallFunction1?'ÀÌ Ã³¸®µÇ¾ú´Ù´Â °ÍÀ» ¾Ë¸°´Ù.
1. 'Ç÷¡½ÃÈ£Ãâ' ¹öÆ°(btnCall)ÀÇ Click ¸Þ¼µå¸¦ ÀÛ¼ºÇÑ´Ù :
2. Ç÷¡½Ã ¹«ºñ¿¡¼ Variable °ªÀÇ º¯È¸¦ ÀνÄÇÏ°í, ÅؽºÆ®¹Ú½º(TextBox?)¿¡ functionÀÇ À̸§À» ³Ö°í, fscommand È£ÃâÀ» ó¸®ÇÏ´Â Äڵ带 ÀÛ¼ºÇÑ´Ù :
À§ ȸéó·³ ·¹À̾îÀÇ ÇÁ·¹ÀÓÀ» ¼±ÅÃÇÑ »óÅ¿¡¼ ½ºÅ©¸³Æ®¸¦ ³Ö¾îÁÖ¸é µÈ´Ù. ÄÚµå´Â ´ÙÀ½°ú °°´Ù :
3. ¾îÇø®ÄÉÀ̼ǿ¡¼ FSCommand¸¦ ó¸®ÇÏ´Â Äڵ带 ³Ö´Â´Ù :
°á°ú ȸéÀº ´ÙÀ½°ú °°´Ù :
¿©±â¿¡¼´Â 'CallFunction1?'À̶õ À̸§ÀÇ Message Çϳª¸¦ ó¸®ÇÏ°í ÀÖÀ¸³ª, ÀÀ¿ëÇϱ⿡ µû¶ó¼ ¿©·¯ ÇÔ¼ö¸¦ ó¸®ÇÏ´Â ÇüÅ·Π¸¸µé ¼öµµ ÀÖ°í, º°µµÀÇ VariableÀ» Á¤ÇØ ÇÔ¼öÀÇ Àμö·Î¼ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
Ç÷¡½Ã¸¦ Æ÷ÇÔÇÏ´Â ¾îÇø®ÄÉÀÌ¼Ç »ý¼º
´ÙÀ½°ú °°ÀÌ Shockwave Flash Object¸¦ Ãß°¡ÇÑ´Ù :
(±×³É ´õºíŬ¸¯Çϸé axShockwaveFlash1?À̶ó´Â À̸§À¸·Î Ãß°¡µÈ´Ù)
KenialÀÇ °æ¿ì¿£ ÇÁ·Î±×·¥À» ¹èÆ÷ÇÒ ¶§ ÇÁ·Î±×·¥ÀÇ °æ·Î¿¡ °°ÀÌ ³Ö¾îÁÙ ¿¹Á¤À̹ǷÎ,
´ÙÀ½°ú °°ÀÌ ÄÚµùÇØÁÖÀÚ.
private void Form1_Load(object sender, System.EventArgs e)
{
axShockwaveFlash1.Movie = System.IO.Directory.GetCurrentDirectory() + "\\test.swf";
}
ÀÏ´Ü Ç÷¡½Ã ¹«ºñ¿Í ¾îÇø®ÄÉÀ̼ÇÀÇ ¿¬µ¿À» ÇØ¾ß ÇÏ´Ï,
°¡Àå ¸¸¸¸ÇÑ ¹öÆ°À» Çϳª Ãß°¡Çغ¸µµ·Ï ÇÏÀÚ :
ÀÏ´Ü Ç÷¡½Ã ¹«ºñ°¡ ¶ß´Â ¾îÇø®ÄÉÀ̼ÇÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù. Ç÷¡½Ã¿¡¼ ¾îÇø®ÄÉÀÌ¼Ç È£ÃâÇϱâ
À̰͸¸À¸·Î´Â ´ÜÁö Á»´õ ÇÁ·¹ÀÓ ¼ö°¡ ¸¹Àº Animated GIF¿¡ ºÒ°úÇÒ »ÓÀÌ´Ù.
¾Æ±î Ç÷¡½Ã ¹«ºñ¿¡ Ãß°¡ÇÑ ¹öÆ°À» °¡Áö°í C# ¾îÇø®ÄÉÀ̼ǰú ¿¬µ¿µÇµµ·Ï ¸¸µé¾î º¸ÀÚ.
Ç÷¡½Ã ¹«ºñÀÇ ActionScript?¿¡¼ fscommand(command, param); ¸¦ È£ÃâÇϸé
axShockwaveFlash1?.FSCommand Delegate°¡ È£ÃâµÇ°í,
¾îÇø®ÄÉÀ̼ǿ¡¼´Â Delegate¿¡ ÇÒ´çÇÑ ÇÔ¼ö¿¡¼ Àü´Þ¹ÞÀº command¿Í paramÀÇ °ªÀ» ó¸®Çϵµ·Ï ÄÚµùÇÏ¸é µÈ´Ù.
À§ ȸéÀº ¹öÆ°ÀÇ click À̺¥Æ®¿¡ ¹ÝÀÀÇÏ´Â Äڵ带 ÀÔ·ÂÇÑ »óÅÂÀÌ´Ù. vs ±â¹ÝÀÇ ÇÁ·Î±×·¡¸Ó ÀÔÀå¿¡¼ º¸ÀÚ¸é °³¹ß ȯ°æÀÌ Á» ¸¾¿¡ ¾Èµé ¼öµµ ÀÖ°ÚÁö¸¸, ÀÏ´Ü Ç÷¡½Ã¿¡¼ÀÇ ÄÚµù ȯ°æÀº Á» ÀÌÁúÀûÀ̹ǷΠÀûÀÀÇصεµ·Ï ÇÏÀÚ.
private void axShockwaveFlash1_FSCommand(
object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
{
if(e.command=="test")
{
System.Windows.Forms.MessageBox.Show(e.args);
Application.Exit();
}
}
½ÇÇà ȸé : C# ¾îÇø®ÄÉÀÌ¼Ç Äڵ忡¼ Ç÷¡½Ã ¹«ºñÀÇ ÄÚµå È£ÃâÇϱâ
GotoFrame(frameNum);
TGotoFrame(strTarget, frameNum);
TGotoLabel(strTarget, strLabel);
TCallFrame(strTarget, frameNum);
TCallLabel(strTarget, strLabel);
private void btnCall_Click(object sender, System.EventArgs e)
{
axShockwaveFlash1.SetVariable("Message", "CallFunction1");
}
// Ç÷¡½Ã ¹«ºñÀÇ ·Îµå°¡ ³¡³ª¸é ½ºÅ©¸³Æ® ½ÃÀÛ
_root.onLoad = function()
{
// ±â´Ù¸®´Â ÇÔ¼ö È£Ãâ
keepWaitingForResponse();
}
// Message Variable¿¡ °ªÀÌ ÇÒ´çµÇ±â¸¦ ±â´Ù¸²
function keepWaitingForResponse()
{
// 100ms¸¶´Ù °è¼Ó È£Ãâ
// intervalID°¡ clearµÇ¸é ÀÛµ¿À» ¸ØÃá´Ù
intervalID = setInterval(
function () {
if (_root.Message != undefined) {
VariableReturned(_root.Message);
}
}, 100);
}
// VariableÀÌ ÇÒ´çµÇ¸é ó¸®ÇÏ´Â ÄÚµå
function VariableReturned(callMessage) {
// È£ÃâÀ» ¸ØÃß´Â ÄÚµå. ¿©±â¼´Â ÁÖ¼®Ã³¸®
//clearInterval(intervalID);
// ¿©±â¼ºÎÅÍ ½ÇÁ¦ message¿¡ ´ëÇÑ Ã³¸®¸¦ ÇÑ´Ù.
switch(callMessage)
{
case 'CallFunction1':
_root.TextBox.text = "Proc:CallMessage1";
fscommand("Result:CallMessage1", "");
break;
default:
_root.TextBox.text = callMessage;
fscommand("-_-", "");
break;
}
// ó¸® ÈÄ undefined »óÅ·Π¸¸µé¾î 󸮸¦ °è¼ÓÇÒ ¼ö ÀÖ°Ô ÇÔ
_root.Message = undefined;
}
private void axShockwaveFlash1_FSCommand(object sender,
AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
{
System.Windows.Forms.MessageBox.Show(e.command);
}
ÇÁ·Î±×·¡¹ÖºÐ·ù FlashWorkBook