IME Ŭ·¡½º

IME Ŭ·¡½º¸¦ »ç¿ëÇϸé, operating systemÀÇ IME (Input Method Editor)¸¦ Flash Player ³»¿¡¼­ Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù.

ActionScript ·ÎºÎÅÍ, ´ÙÀ½ÀÏÇ×À» Á¶»çÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

ÅØ½ºÆ® ÀÔ·Â Çʵ带 ƯÁ¤ÀÇ IME ¹®¸Æ¿¡ °ü·ÃÁöÀ» ¼ö°¡ ÀÖ½À´Ï´Ù. ±×°Í¿¡ ÀÇÇØ, ÀÔ·Â Çʵ尣À» Æ÷Ä¿½º°¡ À̵¿Çϴµ¥ µû¶ó¼­ IME ÀÇ º¯È¯ ¸ðµå (È÷¶ó°¡³ª, Àü°¢ ¼ýÀÚ, ¹Ý°¢ ¼ýÀÚ, Á÷Á¢ ÀԷµî)ÀÇ º¯È¯ÀÌ »ý±é´Ï´Ù.

IME ¸¦ »ç¿ëÇϸé, Áß±¹¾î, ÀϺ»¾î, Çѱ¹¾î¶ó°í ÇÏ´Â ¸ÖƼ ¹ÙÀÌÆ®ÀÇ ¾ð¾î·Î ASCII ÀÌ¿ÜÀÇ Ä³¸¯Å͸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

IME ÀÇ »ç¿ë ¹æ¹ýÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â, ¾îÇø®ÄÉÀ̼ÇÀÇ °³¹ß ´ë»óÀÎ operating systemÀÇ ¸Þ´º¾óÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä. Ãß°¡ Á¤º¸¿¡ ´ëÇØ¼­´Â, ´ÙÀ½ÀÇ Web »çÀÌÆ®¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

¸Þ¸ð

 

IME °¡ À¯ÀúÀÇ ÄÄÇ»Åͻ󿡼­ ¾×ƼºêÇÏÁö ¾ÊÀº °æ¿ì, IME ÀÇ ¸Þ¼Òµå ¶Ç´Â properties ÀÇ È£ÃâÀº,Capabilities.hasIME ¸¦ Á¦¿ÜÇØ, ½ÇÆÐÇÕ´Ï´Ù. IME ¸¦ ¼öµ¿À¸·Î ¾×ƼºêÇÏ°Ô Çϸé, ±× ÀÌÈÄÀÇ ActionScript ¿¡ ÀÇÇÑ IME ÀÇ ¸Þ¼Òµå ¶Ç´Â properties ÀÇ È£ÃâÀº, ÀǵµÇß´ø ´ë·Î µ¿ÀÛÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÀϺ»¾î IME ¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â, IME ÀÇ ¸Þ¼Òµå ¶Ç´Â properties ¸¦ È£ÃâÇϱâ Àü¿¡ IME ¸¦ ¾×ƼºêÇÏ°Ô ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

ºÎ ÁÖÁ¦

IME °¡ ¼³Ä¡(Install) µÇ°í À¯È¿ÇÏ°Ô µÇ°í ÀÖ´ÂÁö ¾î¶²ÁöÀÇ È®ÀÎ
¾î´À IME º¯È¯ ¸ðµå°¡ ÇöÀç À¯È¿ÇѰ¡ÀÇ ÆÇº°
IME º¯È¯ ¸ðµåÀÇ ¼³Á¤
ƯÁ¤ÀÇ ÅØ½ºÆ® Çʵ忡 ´ëÇÑ IME ÀÇ ¹«È¿È­
IME ÀÔ·Â À̺¥Æ®°¡ ±â´Ù¸®°í

IME °¡ ¼³Ä¡(Install) µÇ°í À¯È¿ÇÏ°Ô µÇ°í ÀÖ´ÂÁö ¾î¶²ÁöÀÇ È®ÀÎ

IME ÀÇ ¸Þ¼Òµå ¶Ç´Â properties ¸¦ È£ÃâÇϱâ Àü¿¡, ¹Ýµå½Ã À¯ÀúÀÇ ÄÄÇ»Å͸¦ Á¶»çÇØ IME °¡ ÇöÀç ¼³Ä¡(Install) µÇ°í À¯È¿ÇÏ°Ô µÇ°í ÀÖ´ÂÁö ¾î¶²Áö¸¦ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ÄÚµå´Â, ¸î°³ÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇϱâ Àü¿¡, À¯Àú°¡ IME ¸¦ ¼³Ä¡(Install)ÀÌ ³¡³­ »óÅ·Î, ±×°ÍÀÌ ¾×ƼºêÇÑÁö ¾î¶²Áö¸¦ È®ÀÎÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.

if (Capabilities.hasIME) {
    if (IME.enabled) {
        trace("IME is installed and enabled. ");
    } else {
        trace("IME is installed but not enabled.Please enable your IME and try again. ");
    }
} else {
    trace("IME is not installed.Please install an IME and try again. ");
}

»ó±âÀÇ ÄÚµå´Â, ÃÖÃÊ·Î Capabilities.hasIME properties ¸¦ »ç¿ëÇØ, À¯Àú°¡ IME ¸¦ ¼³Ä¡(Install) µÇ¾î ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÕ´Ï´Ù. ÀÌ properties °¡ true ·Î ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì´Â, ´ÙÀ½¿¡ IME.enabled properties ¸¦ »ç¿ëÇØ, À¯ÀúÀÇ IME °¡ ÇöÀç À¯È¿ÇÏ°Ô µÇ°í ÀÖ´ÂÁö ¾î¶²Áö¸¦ È®ÀÎÇÕ´Ï´Ù.

¾î´À IME º¯È¯ ¸ðµå°¡ ÇöÀç À¯È¿ÇѰ¡ÀÇ ÆÇº°

º¹¼ö ¾ð¾î ¾îÇø®ÄÉÀ̼ÇÀ» ±¸ÃàÇÒ ¶§´Â, À¯Àú°¡ ÇöÀç ¾î´À º¯È¯ ¸ðµå¸¦ ¾×ƼºêÇÏ°Ô Çϰí ÀÖ´ÂÁö¸¦ ÆÇº°ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÑ °æ¿ìµµ ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ÄÚµå´Â, À¯Àú°¡ IME ¸¦ ¼³Ä¡(Install) µÇ¾î ÀÖÀ»Áö ¾î¶³Áö, ¶Ç, ¼³Ä¡(Install) µÇ¾î ÀÖ´Â °æ¿ì´Â, ¾î´À IME º¯È¯ ¸ðµå°¡ ÇöÀç ¾×Æ¼ºêÇѰ¡¸¦ È®ÀÎÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.

if (Capabilities.hasIME) {
    switch (IME.conversionMode) {
        case IMEConversionMode.ALPHANUMERIC_FULL:
            tf.text = "Current conversion mode is alphanumeric (full-width). ";
            break;
        case IMEConversionMode.ALPHANUMERIC_HALF:
            tf.text = "Current conversion mode is alphanumeric (half-width). ";
            break;
        case IMEConversionMode.CHINESE:
            tf.text = "Current conversion mode is Chinese. ";
            break;
        case IMEConversionMode.JAPANESE_HIRAGANA:
            tf.text = "Current conversion mode is Japananese Hiragana. ";
            break;
        case IMEConversionMode.JAPANESE_KATAKANA_FULL:
            tf.text = "Current conversion mode is Japanese Katakana (full-width). ";
            break;
        case IMEConversionMode.JAPANESE_KATAKANA_HALF:
            tf.text = "Current conversion mode is Japanese Katakana (half-width). ";
            break;
        case IMEConversionMode.KOREAN:
            tf.text = "Current conversion mode is Korean. ";
            break;
        default:
            tf.text = "Current conversion mode is " + IME.conversionMode + ". ";
            break;
    }
} else {
    tf.text = "Please install an IME and try again. ";
}

»ó±âÀÇ Äڵ忡¼­´Â, ÃÖÃÊ·Î, À¯Àú°¡ IME ¸¦ ¼³Ä¡(Install) µÇ¾î ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÕ´Ï´Ù. ´ÙÀ½¿¡, ÇöÀçÀÇ IME °¡ ¾î´À º¯È¯ ¸ðµå¸¦ »ç¿ëÇϰí ÀÖ´ÂÁö¸¦ È®ÀÎÇϱâ À§Çؼ­,IME.conversionMode properties ¸¦ IMEConversionMode Ŭ·¡½º³»ÀÇ °¢°¢ÀÇ Á¤¼ö·Î Á¶ÇÕÇÕ´Ï´Ù.

IME º¯È¯ ¸ðµåÀÇ ¼³Á¤

À¯ÀúÀÇ IME ÀÇ º¯È¯ ¸ðµå¸¦ º¯°æÇÒ ¶§´Â, Äڵ尡 try..catch ºí·Ï³»¿¡ ·¦ µÇ°í ÀÖ´Â °ÍÀ» È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¿Ö³ÄÇϸé,conversionMode properties ¸¦ »ç¿ëÇØ º¯È¯ ¸ðµå¸¦ ¼³Á¤Çϸé, IME °¡ º¯È¯ ¸ðµå¸¦ ¼³Á¤ÇÒ ¼ö ¾ø´Â °æ¿ì¿¡ ¿¡·¯°¡ ½½·Î¿ì µÉ °¡´É¼ºÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù. ´ÙÀ½ÀÇ ÄÚµå´Â,IME.conversionMode properties ¸¦ ¼³Á¤ÇÒ ¶§ÀÇ try..catch ºí·ÏÀÇ »ç¿ë ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.

var statusText:TextField = new TextField;
statusText.autoSize = TextFieldAutoSize.LEFT;
addChild(statusText);
if (Capabilities.hasIME) {
    try {
        IME.enabled = true;
        IME.conversionMode = IMEConversionMode.KOREAN;
        statusText.text = "Conversion mode is " + IME.conversionMode + ". ";
    } catch (error:Error) {
        statusText.text = "Unable to set conversion mode. \n" + error.message;
    }
}

»ó±âÀÇ ÄÚµå´Â, ÃÖÃÊ·Î, À¯Àú¿¡ ´ëÇØ¼­ ½ºÅ×ÀÌÅͽº ¸Þ¼¼Áö¸¦ Ç¥½ÃÇϱâ À§ÇÑ ÅØ½ºÆ® Çʵ带 ÀÛ¼ºÇÕ´Ï´Ù. ´ÙÀ½¿¡, ÀÌ ÄÚµå´Â, IME °¡ ¼³Ä¡(Install) µÇ°í ÀÖ´Â °æ¿ì, IME ¸¦ À¯È¿ÇÏ°Ô ÇØ º¯È¯ ¸ðµå¸¦ Çѱ¹¾î·Î ¼³Á¤ÇÕ´Ï´Ù. À¯ÀúÀÇ ÄÄÇ»ÅÍ¿¡ Çѱ¹¾î IME °¡ ¼³Ä¡(Install)µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â Flash Player ¿¡ ÀÇÇØ ¿¡·¯°¡ ½½·Î¿ì µÇ¾îtry..catch ºí·Ï¿¡ ÀÇÇØ ijġ µË´Ï´Ù. try..catch ºí·ÏÀº, Àü¿¡ ÀÛ¼ºµÈ ÅØ½ºÆ® Çʵ忡 ¿¡·¯ ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÕ´Ï´Ù.

ƯÁ¤ÀÇ ÅØ½ºÆ® Çʵ忡 ´ëÇÑ IME ÀÇ ¹«È¿È­

°æ¿ì¿¡ µû¶ó¼­´Â, À¯Àú°¡ ij¸¯Å͸¦ ÀÔ·ÂÇÏ´Â µ¿¾È, À¯ÀúÀÇ IME ¸¦ ¹«È¿·Î ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÒ ¶§µµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ¼öÄ¡ ÀԷ¸¸À» ¹Þ¾ÆµéÀÌ´Â ÅØ½ºÆ® Çʵ尡 ÀÖ´Â °æ¿ì, IME °¡ ±âµ¿µÇ¾î µ¥ÀÌÅÍ ÀÔ·Â Á¶ÀÛÀÌ ´Ê¾îÁö´Â °ÍÀº ¹Ù¶÷Á÷ÇÏÁö´Â ¾Ê½À´Ï´Ù.

´ÙÀ½ÀÇ ¿¹´Â,FocusEvent.FOCUS_IN À̺¥Æ®¿Í FocusEvent.FOCUS_OUT À̺¥Æ®¸¦ ±â´Ù·Á ±×·¯ÇÑ À̺¥Æ®¿¡ ÀÀÇØ À¯ÀúÀÇ IME ¸¦ ¹«È¿·Î ÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.

var phoneTxt:TextField = new TextField();
var nameTxt:TextField = new TextField();

phoneTxt.type = TextFieldType.INPUT;
phoneTxt.addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
phoneTxt.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
phoneTxt.restrict = "0-9";
phoneTxt.width = 100;
phoneTxt.height = 18;
phoneTxt.background = true;
phoneTxt.border = true;
addChild(phoneTxt);

nameField.type = TextFieldType.INPUT;
nameField.x = 120;
nameField.width = 100;
nameField.height = 18;
nameField.background = true;
nameField.border = true;
addChild(nameField);

function focusInHandler(event:FocusEvent) :void {
    if (Capabilities.hasIME) {
        IME.enabled = false;
    }
}
function focusOutHandler(event:FocusEvent) :void {
    if (Capabilities.hasIME) {
        IME.enabled = true;
    }
}

ÀÌ ¿¹´Â,phoneTxt ¿Í nameTxt ¶ó°í ÇÏ´Â 2 °³ÀÇ ÀÔ·Â ÅØ½ºÆ® Çʵ带 ÀÛ¼ºÇÑ ÈÄ, 2 °³ÀÇ event listener¸¦ phoneTxt ÅØ½ºÆ® Çʵ忡 Ãß°¡ÇÕ´Ï´Ù. À¯Àú°¡ phoneTxt ÅØ½ºÆ® Çʵ忡 Æ÷Ä¿½º¸¦ ¼³Á¤Çϸé,FocusEvent.FOCUS_IN À̺¥Æ®°¡ ¼ÛÃâ(Dispatch)µÇ¾î IME ´Â ¹«È¿°¡ µË´Ï´Ù. phoneTxt ÅØ½ºÆ® Çʵ尡 Æ÷Ä¿½º¸¦ ÀÒÀ¸¸é,FocusEvent.FOCUS_OUT À̺¥Æ®°¡ ¼ÛÃâ(Dispatch)µÇ¾î IME °¡ ´Ù½Ã À¯È¿ÇÏ°Ô µË´Ï´Ù.

IME ÀÔ·Â À̺¥Æ®°¡ ±â´Ù¸®°í

IME ÀÔ·Â À̺¥Æ®´Â, ÀÔ·Â string°¡ ¼³Á¤ µÇ·Á°í Çϰí ÀÖÀ» ¶§ ¼ÛÃâ(Dispatch)µË´Ï´Ù. ¿¹¸¦ µé¾î, À¯Àú°¡ IME ¸¦ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ¾î, ±×°ÍÀ» ¾×ƼºêÇÏ°Ô ÇØ ÀϺ»¾î·Î string¸¦ ÀÔ·ÂÇÏ´Â °æ¿ì, À¯Àú°¡ ÀÔ·Â string¸¦ ¼±ÅÃÇÏ´Â °Í°ú µ¿½Ã¿¡ IMEEvent.IME_COMPOSITION À̺¥Æ®°¡ ¼ÛÃâ(Dispatch)µË´Ï´Ù. IMEEvent.IME_COMPOSITION À̺¥Æ®¸¦ ±â´Ù¸®±â À§Çؼ­(¶§¹®¿¡)´Â, ´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ, System class (flash.system.System.ime.addEventListener(...))ÀÇ Á¤Àû properties ime ¿¡ event listener¸¦ Ãß°¡ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

var inputTxt:TextField;
var outputTxt:TextField;

inputTxt = new TextField();
inputTxt.type = TextFieldType.INPUT;
inputTxt.width = 200;
inputTxt.height = 18;
inputTxt.border = true;
inputTxt.background = true;
addChild(inputTxt);

outputTxt = new TextField();
outputTxt.autoSize = TextFieldAutoSize.LEFT;
outputTxt.y = 20;
addChild(outputTxt);

if (Capabilities.hasIME) {
    IME.enabled = true;
    try {
        IME.conversionMode = IMEConversionMode.JAPANESE_HIRAGANA;
    } catch (error:Error) {
        outputTxt.text = "Unable to change IME. ";
    }
    System.ime.addEventListener(IMEEvent.IME_COMPOSITION, imeCompositionHandler);
} else {
    outputTxt.text = "Please install IME and try again. ";
}

function imeCompositionHandler(event:IMEEvent) :void {
    outputTxt.text = "you typed:" + event.text;
}

»ó±âÀÇ ÄÚµå´Â 2 °³ÀÇ ÅØ½ºÆ® Çʵ带 ÀÛ¼ºÇØ, Ç¥½Ã ¸®½ºÆ®¿¡ Ãß°¡ÇÕ´Ï´Ù. ÃÖÃÊÀÇ ÅØ½ºÆ® Çʵå,inputTxt ´Â, À¯Àú°¡ ÀϺ»¾î ÅØ½ºÆ®¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ´Â ÀÔ·Â ÅØ½ºÆ® ÇʵåÀÔ´Ï´Ù. 2 ¹øÂ°ÀÇ ÅØ½ºÆ® Çʵå,outputTxt ´Â, À¯Àú¿¡ ´ëÇÑ ¿¡·¯ ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÏ´ÂÁö, À¯Àú°¡ inputTxt ÅØ½ºÆ® Çʵ忡 ÀÔ·ÂÇÑ ÀϺ»¾î string¸¦ ¿¡ÄÚÇϱâ À§ÇÑ µ¿Àû ÅØ½ºÆ® ÇʵåÀÔ´Ï´Ù.