1

次のように、AndroidAIRアプリでStageTextを使用しようとしています。

var tf:StageText = new StageText();
tf.stage = stage;
tf.viewPort = new Rectangle(0, 0, stage.fullScreenWidth, 90); 
tf.text = "Test";
tf.editable = true;
tf.autoCorrect = false;
tf.fontSize = 50;
tf.color = 0xFF0000;
tf.maxChars = 12;
tf.restrict = "A-Za-z";

AndroidデバイスでこのStageTextを編集する場合、削除ボタンを押すまで、すべてが期待どおりに機能します。これまで、オートコレクトの提案は表示されませんでしたが、削除ボタンを押すと、オートコレクトの提案が表示されるようになります。これで、次に押すキーは、押したキーの代わりにカーソル位置に自動修正された単語を挿入します(たとえば、「s」を押すと、それが自動修正の提案である場合は「Son」が挿入されます)。

本当に奇妙なことは、この動作は、StageTextにrestrictプロパティを設定した場合にのみ発生することです。制限行をコメントアウトすると、すべてが期待どおりに機能します。

4

1 に答える 1

2

ドキュメント(flash.text.StageText.restrict)から:

注:制限はユーザー入力にのみ適用されます。スクリプトは、テキストフィールドに任意の文字を挿入できます。

制限は100%信頼できるものではないため、テキストフィールドのプロパティに値を割り当てる代わりに、イベントハンドラーで独自のロジック( RegExprestrictを使用してテキストを自分で評価できます。これにより、ユーザーがテキストフィールドに入力する内容を完全に制御できます。CHANGE

tf.addEventListener(Event.CHANGE, textFieldChangeEventHandler);

private function textFieldChangeEventHandler(event:Event):void
{
    trace(event.target.text);
    //Manage text
}
于 2013-01-18T21:56:40.773 に答える