ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   Flex 4 SDK
     IMEで入力した確定前の文字が表示されません。
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
hiro_w
投稿日時: 2015-1-30 9:52
一見さん
登録日: 2015-1-30
居住地:
投稿: 3
IMEで入力した確定前の文字が表示されません。
FlashBuilder4.7+Flex4.13の組み合わせで開発を始めたのですが、Windows8.1+IE11の環境で問題が発生しました。
※Flex4.14でも障害を確認しました。(2/3追記)

TextInputでいったん漢字を入力してから、マウスでその文字を全選択した後、別の漢字を入力すると、IMEに確定する前の文字が表示されません。Enterキーを押して確定するとTextInputに表示されます。
このとき、どうやらバインディングも正常に行われないようです。

Windows7+IE11の環境や、MXのTextInputで入力したときは、特に問題がありません。

バインディングのほうは解決策がいろいろとありそうなのですが、IMEが表示されない現象についてはあまり良い解決策がありません。

この件に関して、何か情報をお持ちの方はいらっしゃいましたら、教えていただけると幸いです。

参考までにテストコードを貼り付けます。


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx">

    <s:layout>
        <s:VerticalLayout paddingTop="10" paddingLeft="10" paddingRight="10"/>
    </s:layout>

    <fx:Declarations>
        <!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
        <fx:Model id="reg">
            <datas>
                <data1>{txt1.text}</data1>
                <data2>{txt2.text}</data2>
            </datas>
        </fx:Model>
    </fx:Declarations>

    <s:Panel id="p1" height="480" width="640" title="全角入力テスト"
        mouseEnabled="true" creationComplete="p1.skin.mouseEnabled=true">
        <s:Form height="100%" width="100%">
            <s:VGroup height="100%" width="100%">
                <s:FormItem label="入力項目(Spark)" width="100%">
                    <s:TextInput id="txt1" width="100%"
                        focusIn="IME.enabled=true"
                        imeMode="{IMEConversionMode.JAPANESE_HIRAGANA}"/>
                </s:FormItem>
                <s:FormItem label="入力項目(MX)" width="100%">
                    <mx:TextInput id="txt2" width="100%"
                        focusIn="IME.enabled=true"
                        imeMode="{IMEConversionMode.JAPANESE_HIRAGANA}"/>
                </s:FormItem>
                <s:FormItem label="表示項目" width="100%">
                    <s:Label id="lbl1" width="100%"/>
                    <s:Label id="lbl12" width="100%"/>
                </s:FormItem>
            </s:VGroup>
        </s:Form>
        <s:controlBarContent>
            <s:Button label="反映(1)"
                buttonDown="lbl1.text='data:'+reg.data1;lbl12.text='IME:'+txt1.enableIME"/>
            <s:Button label="反映(2)"
                buttonDown="lbl1.text='data:'+reg.data2;lbl12.text='IME:'+txt2.enableIME"/>
            <s:Spacer width="100%"/>
            <s:Button label="クリア"
                buttonDown="txt1.text='';txt2.text='';lbl1.text='';lbl12.text=''"/>
        </s:controlBarContent>
    </s:Panel>

</s:Application>



※今までに調査した情報を追記します。

・FlashPlayerの種類によって動作が異なります。
  IE:NG
  Chrome:NG(PPAPIの場合。NPAPIはOK)
  Firefox:OK
  Opera:OK
  Projector:OK

・Microsoft IMEの他、Google IMEでも障害が発生します。

・Flex4.6で作成しても障害が発生します。
propropg
投稿日時: 2015-1-30 12:02
一見さん
登録日: 2015-1-30
居住地:
投稿: 2
Re: IMEで入力した確定前の文字が表示されません。
日本語の確定タイミングについては、以前に同じような問題が発生しました。

s:TextInputを単純に指定しただけだと問題がないのですが、imeModeやmaxCharsなどを指定するとおかしくなるようです。

参考ページ

Flex4.5.1のときに起きた問題で、そのあとのバージョンでは直ったように見えましたが。。

上記参考ページにあるようなTextInputExを作成し、提示していただいたサンプルページを直して動かしてみたところ、改善が見られました。

環境がまったく同じではないので直るか分かりませんが、一度お試しください。

hiro_w
投稿日時: 2015-1-30 13:47
一見さん
登録日: 2015-1-30
居住地:
投稿: 3
Re: IMEで入力した確定前の文字が表示されません。
propropgさん、ご回答ありがとうございます。

imeModeやmaxChanrsを指定してもしなくても、現象が改善しませんでした。
したがって、Flex4.5.1当時の障害とは違うと考えております。
が、何らかの条件で障害が起きないのかも知れませんね。

障害が起きる環境は、IE11を使う場合にはWindows8.1(32/64とも)が条件でした。
#Windows8が大丈夫かどうかは試していません。
propropg
投稿日時: 2015-1-30 14:52
一見さん
登録日: 2015-1-30
居住地:
投稿: 2
Re: IMEで入力した確定前の文字が表示されません。
私の環境(Windows7+IE11)では、参考ページのTextInputExをs:TextInputの代わりに使うことで改善はしました。

Windows8.1がダメだとすると、OS依存ということになってしまいますね。


hiro_w
投稿日時: 2015-1-30 15:22
一見さん
登録日: 2015-1-30
居住地:
投稿: 3
Re: IMEで入力した確定前の文字が表示されません。
propropgさん、ご回答ありがとうございます。

> Windows8.1がダメだとすると、OS依存ということになってしまいますね。

やはりそういうことでしょうか。
IMEでインライン入力ができないと実際の運用がしずらいので、何らかの回避処理を入れるつもりです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を