1

Flash Pro cs6、AS3、Air3.8 を使用しています。入力にはテキストフィールドを使用しています。ユーザーが「完了」を押すと、次のフィールドに移動するようにしようとしています。これを含むすべてのフォーラムで、これに関する相反する情報を見つけています。検索しましたが、修正が見つかりませんでした..イベントを確実に受信しており、キーコードを識別する行を追加しようとしました.キーコード13を受信して​​いることを確認しました.うまく移行するための焦点..その分野に焦点を当てることを拒否する..

私が使用しているコードは、iOSでは機能しないとドキュメントに記載されています..しかし、スクリプトの同じページと他の2つのページでさらに機能します...私は:

stage.addEventListener(KeyboardEvent.KEY_DOWN,keyhandler);


function keyhandler(event:KeyboardEvent){
if(event.charCode == 13)
{
stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyhandler);
stage.focus = null;
stage.focus = nextTextField;
}
}

最初にリスナーをテキストフィールドに追加してからステージに変更しましたが、どちらも機能しませんでした。「requestsSoftKeyboard」と、iOSで機能すると思われる投稿を見た他のいくつかの方法を試しましたが、機能しませんでした。同じ stage.focus を null に使用し、stage.focus を MyTextField に使用する他の関数があり、それらは機能しますが、ソフト キーボードのボタンではなく、ステージのボタンを押すことによって開始されます。動作するコードは、標準の if ステートメントです。

if (TextField == "")
{
stage.focus=null;
stage.focus=TextField;
}else if (NextTextField == "")
{
stage.focus = null;
stage.focus = NextTextField;
}else if (TextFieldAfterThat == "")
{
stage.focus = null;
stage.focus = TextFieldAfterThat;
}

これはすべてのフィールドで続き、常に正しいフィールドに移動し、ソフト キーボードが開いていて、カーソルが点滅し、入力する準備ができています..毎回。単語を大文字にする機能が機能するため、リスナーがソフトキーボード「Done」から受信されることがわかり、キーコードを確認するコードを追加すると機能しました。「charcode」と「keycode」を使用してその値へのアクセスも見つけました..違いはわかりませんが、どちらも13を返し、どちらも機能しませんでした..同じコードを使用してTextField がアクティブになり、ユーザーがラジオ ボタンを押した後にフォーカスが設定され、それらはすべて毎回機能します。

「完了」を押すのとステージ上のオブジェクトを押すのとの違いはわかりませんが、完了ボタンでフォーカスを設定することを拒否します。誰でもアイデアを持っているか、以前にこれを機能させましたか?

4

2 に答える 2

1

StageText次のように、iOS でフォ​​ーカスを割り当てることに成功しました。

stageText.assignFocus();

StageTextTextFieldネイティブのテキスト入力を表示するため、多くの利点があります。私が知っている唯一の欠点は、カスタム フォントを使用できないことです。

ここにドキュメントチュートリアルがあります。

「Done」キーを試したことはありませんが、「Enter」キーで達成しようとしていることがうまくいきました。また、iOS では「完了」キーはキーボードを非表示にするためのものであるため、これらの問題が発生している可能性があることに注意してください。

于 2013-10-03T16:19:50.867 に答える