入力文字数チェック
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>

