0

私は iOS 用のアプリケーションを作成しており、最終的には Adob​​e Air を使用して Android 用のアプリケーションを作成しています。クロスワードパズルです。多くのクロスワード パズル アプリ/ゲームにはこの機能があり、文字の四角形をタップすると、選択した四角形が単語内の残りの文字と共に強調表示されます。つまり、5 文字の単語の最初の文字の四角形をタップすると、その単語を構成するすべての文字の四角形が強調表示されます。

多くのクロスワード パズルで行われているもう 1 つのことは、ユーザーが同じ四角形をもう一度タップして方向を変えられるようにすることです。たとえば、パズルの左上隅にある最初の文字の四角形を 1 回タップすると、隅から水平に移動する単語が強調表示されます。同じ文字の四角形をもう一度タップすると、垂直方向の単語が強調表示されます。

これはすべて意図したとおりに機能していますが、問題は iOS ソフトキーボードにあります。softKeyboard が起動している場合、タップは登録されません。ソフトキーボードを非表示にするには、タップしてから、同じ文字の四角形をもう一度タップする必要があります。

四角形は、その上に TextField がある単純なスプライトです。

softKeyboard が起動していることと関係がありますか、それとも TextField にフォーカスがあるため、イベントのディスパッチをインターセプトするのでしょうか?

注目すべき興味深い点の 1 つは、softKeyboard を上にして TextField でカーソルを点滅させて、文字の四角形を 2 回目にタップすると、テキスト フィールドの上に [貼り付け] オプションが表示されることです。おそらくそれが私のリスナーを傍受しているのですか?もしそうなら、それを無効にすることはできますか?

誰かがこれに光を当てることができますか?

私が使用する文字の正方形について

square.addEventListener(TouchEvent.TOUCH_TAP, tileTapped);
4

1 に答える 1

0

モバイルAIRアプリは、デフォルトでTextInputとTextAreaをStageTextに置き換えます。StageTextを使用すると、ネイティブの入力動作(コピー/貼り付け、予測テキストなど)にアクセスできます。

この機能を削除するには、TextInputやTextAreaのスキンクラスを明示的に定義します。

<s:TextInput skinClass="spark.skins.mobile.TextInputSkin" />
<s:TextArea skinClass="spark.skins.mobile.TextAreaSkin" />

この方法では、StageTextは使用されず、迷惑な貼り付けオプションのポップアップが表示されません。

于 2013-01-15T11:59:03.320 に答える