2008/12/16

FlexのテキストコントロールにIMEでインライン入力不可

FlexのTextInput, TextArea, ComboBox(editable), RichTextEditorコントロールにIMEによる日本語入力でインライン入力ができない現象に遭遇した。
Mac OSXでは以前からできないのだけど、今回はWindows Vista, XP + Flash Player 10(Astro)環境で発生。

再現手順:
1. TextInputを作成する。
2. TextInputのプロパティをalphaに1未満の値を設定する。
3. コンパイルオプションに"-target-player=10.0.0"を付けてコンパイルする。
4. Windows環境のFlash Player 10.0.12上で実行し、TextInputに対して日本語入力モードに切り替えて入力する。

再現プログラム:
http://f.air-life.net/samples/flex/AlphaIMETest/

再現用コード:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:TextInput/>
<mx:TextInput alpha="0.99"/>
<mx:VBox alpha="0.99">
<mx:TextInput/>
</mx:VBox>
</mx:Application>

再現する条件としては、テキストコントロール、またはその親コンテナのプロパティalphaに1未満の値、例えば0.99を設定し、Flash Player 10以降をターゲットとしてビルドすることのようだ。

Flash Playerのバージョンは、Flex Builder上ではプロジェクトのプロパティ - Flexコンパイラ - HTMLラッパー から設定する。
なお、Flash Playerのバージョンに10以降を指定するにはFlex SDK 3.2以降が必要になる。

Adobeのバグデータベースを探したけど該当の報告はまだないようなので挙げておいた。
(もし既知バグだったらごめんなさい)

Inline input not supported in Flex text components when compiling for Flash Player 10
http://bugs.adobe.com/jira/browse/SDK-18444

バグデータベースを探していたところ似たような現象がDataGridでも発生するようで報告が挙がっていた。
(再現手順など似ていたので一部コピ)

DataGrid:内部データ編集で確定前の日本語入力が画面左上に表示される
DataGrid:When the internal data is being edited, input text in Japanese is shown in the top-left screen, if it's before being confirmed.
http://bugs.adobe.com/jira/browse/SDK-18317

このバグは入力確定すれば、しっかりとテキストコントロールに入力されるから致命的ではないのだろうけど痛い・・・。

2 件のコメント:

dsh さんのコメント...

Flash Player 10.1 ベータで直ってました。
IE8で確認。

shoito さんのコメント...

教えていただきありがとーございます。
日本語入力周りはFlash Player 10でデグレがあったりと残念なことがあったけど、10.1で改善されるわけですね。