StageText会出现自动更正和限制问题

时间:2013-01-18 20:07:30

标签: android actionscript-3 air autocorrect

我正在尝试在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属性时才会出现这种情况 - 如果我注释掉限制行,那么所有功能都完全符合我的预期。

1 个答案:

答案 0 :(得分: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
}