[Actionscript 3.0] HTMLライクなplaceholder付きのtextfield

ActionScript 3.0でテキスト入力をユーザにさせたいときは
flash.text.TextFieldを利用することが多いですが

HTMLのinput type=”text”のようにplaceholder(入力がないときに
表示されるヘルプ用テキストみたいなもの)が利用できるものは
標準では提供されていないので

flash.text.TextFieldを拡張して
作ってみました。

mxでもsparkでも利用することができます。

mxmlからも利用ができるようにコンストラクタの引数はなしです。
独自にplaceholderTextをsetしてあげる必要があります。

仕組みとしては、現在表示しているテキストが、プレースホルダか
そうじゃないかをフラグで管理して、プレースホルダが表示されている
のであれば、マウスのフォーカスがあたったときにリセットしたりしてます。

パスワード用入力のときはスーパークラスのdisplayAsPasswordを
オーバライドして、ユーザの入力はマスクして、プレースホルダなら
普通に表示して、というようにしてます。

これが必要になったときは、この実装でよかったんですが
今思えば、テキストのフォーマットとかも
別途指定できたらよかったかも。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です