終了
ロック済み

s:textArea部品+Windows10の入力不具合

ゲスト
Oct 31, 2016 Oct 31, 2016

リンクをクリップボードにコピー

コピー完了

SparkのtextAreaにて、いったん全角を入力してから、マウスでその文字を範囲選択した後、

再度全角を入力すると以下の現象が発生することがあります。

※別のtextAreaなどにカーソルを移した状態で、マウスで範囲選択すると、私の環境では100%発生します。

※mxのtextAreaでは発生しません。

①IMEで入力した確定前の文字が表示されなくなる。

 ※Enterキーを押して確定すると表示される。

②TextOperationEvent.CHANGING イベントや、TextOperationEvent.CHANGE イベントが発生しなくなる。

③Bindableしている箇所も更新されなくなる。

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

<検証パターン>

Windows10 + IE11 + FlexSDK 4.15.0 + FlashPlayer21.0.0.xxx ⇒問題発生する

Windows10 + IE11 + FlexSDK 4.15.0 + FlashPlayer22.0.0.209 ⇒問題発生する

Windows10 + IE11 + FlexSDK 4.15.0 + FlashPlayer23.0.0.162 ⇒問題発生する

Windows7 + IE9 + FlexSDK 4.5.1 + FlashPlayer18       ⇒問題発生しない 

Windows7 + IE11 + FlexSDK 4.15.0 + FlashPlayer21.0.0.213  ⇒問題発生しない

Windows7 + IE11 + FlexSDK 4.15.0 + FlashPlayer23.0.0.162  ⇒問題発生しない

<テストコード>

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:s="library://ns.adobe.com/flex/spark"

               xmlns:mx="library://ns.adobe.com/flex/mx"

               xmlns:fx="http://ns.adobe.com/mxml/2009"

               minWidth="300"

               minHeight="400">

    <fx:Script>

        <![CDATA[

            import mx.controls.Alert;

            [Bindable] private var testStringPrivate:String = "test data";

            [Bindable] private var testStringPrivate2:String = "test2 data";

            private function doChanging():void {

                Alert.show("doChanging 現象発生後は呼び出されなくなる");

            }

            private function doChange():void {

                Alert.show("doChange 現象発生後は呼び出されなくなる");

            }

            private function doTextInput():void {

//              Alert.show("doTextInput 現象発生後も呼び出される");

                // ※例えば、ここで testString.text を無理やり更新すると、

                //   現象発生後も、doChange が呼び出されるようになる。

            }

            private function doChanging2():void {

                Alert.show("doChanging2 現象発生後は呼び出されなくなる");

            }

            private function doChange2():void {

                Alert.show("doChange2 現象発生後は呼び出されなくなる");

            }

            private function doTextInput2():void {

//              Alert.show("doTextInput2 現象発生後も呼び出される");

                // ※例えば、ここで testString2.text を無理やり更新すると、

                //   現象発生後も、doChange2 が呼び出されるようになる。

            }

        ]]>

    </fx:Script>

    <s:VGroup>

        <s:Label text="範囲選択選択後、入力すると現象が発生する。発生しない場合は、別のtextAreaにカーソルを移動した上で行うと100%発生する。">

        </s:Label>

        <s:Label text="※現象発生後は、changeイベント、changingイベントが呼び出されなくなり、Bindableしている箇所も更新されなくなる。">

        </s:Label>

            <mx:HBox>

            <mx:VBox>

                <s:Label text="[TextArea1]">

                </s:Label>

                <mx:Text x="10" y="10" text="{testString.text}" width="286" height="53" id="text"/>

                <s:TextArea id="testString" text="{testStringPrivate}" changing="doChanging()" change="doChange()" textInput="doTextInput()" >

                </s:TextArea>

                <s:Label text="[TextArea2]">

                </s:Label>

                <mx:Text x="10" y="10" text="{testString2.text}" width="286" height="53" id="text2"/>

                <s:TextArea id="testString2" text="{testStringPrivate2}" changing="doChanging2()" change="doChange2()" textInput="doTextInput2()">

                </s:TextArea>

            </mx:VBox>

        </mx:HBox>

    </s:VGroup>

</s:Application>

表示

418

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines