入力文字数チェック
Flex で入力文字数は maxChars で制限できる。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Text text="入力制限チェック"/> <mx:TextInput id="aTextInput" styleName="aTextInput" width="200" height="21" maxChars="10" /> </mx:Application>
でもこれでは、半角全角関係なく 10 文字で制限される。
半角20字以内、全角10字以内で制限したいとき ByteArray を使ってチェックします。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Script> <![CDATA[ private var tempStr:String; private function bTextInputChange():void { var byteArray:ByteArray = new ByteArray(); byteArray.writeMultiByte(bTextInput.text, "shift_jis"); var bTextInputLength:int = byteArray.length; if ( bTextInputLength > 20 ) { bTextInput.text = tempStr; } else { tempStr = bTextInput.text; } } ]]> </mx:Script> <mx:Text text="入力制限チェック"/> <mx:TextInput id="bTextInput" styleName="bTextInput" width="200" height="21" change="bTextInputChange();" enter="bTextInputChange();"/> </mx:Application>