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>

HTML5飯