[Flex] TextInputにmaxCharsを指定した場合の不具合回避 (Flex4.5.1以下限定)
Flex SDK 4.5.1までのバージョンにおいて、
sparkのTextInputにmaxCharsを指定した状態で日本語入力を行うと、
入力した値がきちんと確定されない不具合が発生します。
TextInput以外にも、TextAreaやComboBoxも同じだと思います。(ComboBoxは未検証)
以前からのバグのようで、FlexのBugとして、登録いただいています。
【Flex Hero beta,Spark TextInput,Chinese localization issue(when using the property of maxChars,the value of text will incorrect).】
http://bugs.adobe.com/jira/browse/SDK-28999
このバグ報告の中でも語られているように、以下のようなコードを書けば、
自分の環境では不具合が発生していません。(今のところ)
import mx.core.mx_internal; import spark.components.RichEditableText; import spark.components.TextInput; public class TextInputEx extends TextInput { public function TextInputEx() { super(); } override protected function partAdded(partName : String, instance : Object) : void { super.partAdded(partName, instance); if ((partName == "textDisplay") && (instance is RichEditableText)) { (instance as RichEditableText).mx_internal::batchTextInput = false; } } }
ただし、自分自身このコードを書くことによって何が行われているのか、全然理解できていません。
真似する方は十分ご注意ください。
まだまだ、スキル不足です。
なお、この不具合はFlexSDK4.6では改善されているようです。
4.6が使える方は問題ありません。
== ランキングに参加しています。ぜひクリックお願いします ==
[Flex][as3] traceの意外に便利な使い方 [Java] switch文で文字列を評価したい
情報ありがとうございます。助かりました。