1

我正在尝试在 Android AIR 应用程序中使用 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 属性时才会发生——如果我注释掉了 restrict 行,那么所有的功能都完全符合我的预期。

4

1 回答 1

2

从文档(flash.text.StageText.restrict):

注意:限制仅适用于用户输入;脚本可以在文本字段中插入任​​何字符。

由于限制不是 100% 可靠的,因此您可以在事件处理程序中restrict使用自己的逻辑 ( RegExp )自己评估文本,而不是为文本字段的属性分配值。CHANGE这将使您可以完全控制用户在文本字段中输入的内容。

tf.addEventListener(Event.CHANGE, textFieldChangeEventHandler);

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