package { import fl.controls.TextInput; import flash.display.Sprite; import flash.display.StageScaleMode; import flash.system.IMEConversionMode; /* * 予めFlashのライブラリにTextInputを用意する必要があります。 */ public class ImeTest extends Sprite { private var numInput:uint = 5; private const IME_MODES:Array = [IMEConversionMode.JAPANESE_HIRAGANA, IMEConversionMode.ALPHANUMERIC_HALF]; public function ImeTest() { stage.scaleMode = StageScaleMode.NO_SCALE; var form1:Sprite = createForm(false); form1.x = 10; form1.y = 10; addChild(form1); var form2:Sprite = createForm(true); form2.x = 190; form2.y = 10; addChild(form2); } private function createForm(useIME:Boolean):Sprite { var form:Sprite = new Sprite(); for (var i:uint = 0; i < numInput; i++) { var input:TextInput = createTextInput(useIME); input.x = 10; input.y = 25 * i + 10; form.addChild(input); } with (form.graphics) { lineStyle(0, 0xb8c2cc); beginFill(0xd8dfe5); drawRect(0, 0, 170, 140); } return form; } private function createTextInput(useIME:Boolean):TextInput { var textInput:TextInput = new TextInput(); textInput.setSize(150, 20); var imeMode:String = "指定なし"; if (useIME) { imeMode = IME_MODES[Math.floor(Math.random() * IME_MODES.length)]; textInput.imeMode = imeMode; //ちなみにimeMode = nullでも、もたつきます。 } textInput.text = imeMode; return textInput; } } }