flexではテキストフィールドに入力文字の制限ができます。
以下のような感じです。

This movie requires Flash Player 9

この辺りは、HTMLと同じと思っていた人には「へー、そんなこともできるんだー」と思うのではないでしょうか?
私はそう思いました。
さて、この制限を使います。

<mx:TextInput restrict="0-9" />

これで数字しか入力できません。
同じように、

restrict="A-Z" 

で、大文字のA-Zまでです。ちなみに、自動的に大文字になるようです。

このように数値や、アルファベットなどはこれで簡単に制御ができます。
さて、今度は、よくある「カナ」の入力を制限してみましょう。

日本語のカナは\u30F1から\u30FAまでだからと・・・・

<mx:TextInput restrict="\u30A1-\u30FA" />

あれ、効かない????
なぜー、とちょっとはまってしまいました。

いやー、\を使ったエスケープ型の文字列としてではなく、たんなる\として扱われてしまうのです。
理屈ではわかるのですが、流れでつい、それでも問題ないと思ってしまいます。

したがって、これはActionScriptでは、
[AS]
restrict = “\\u30A1-\\u30FA”;
[/AS]
と書いているのと等しくなっているのです。

したがって、エスケープシーケンス(\)をつかって書きたい時は、

<mx:Script>
  <![CDATA[
    [Bindalbe]
    private var hanKana:String = "\u30A1-\u30FA";
  ]]>
</mx:Script>
<mx:TextInput restrict="{hanKana}" />

として記述しなくれてはいけないのですね。面倒です。
どうせ、日本語ではこの辺りの入力制限での処理はそんなにかわらないので、共通ファイルとして作成してインクルードして利用したほうがいいのかもしれませんね。

まあ、どうせソースはUTF-8で書かれているのでしょうから直接書いてしまってもいいのでしょうが、
どうしても、その他の言語の文化がそれを阻害します。。。。。

お仕事のご依頼・相談を承ります
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら

Leave a Reply

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2009年6月
« 5月   7月 »
1234567
891011121314
15161718192021
22232425262728
2930  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ