Actionscript 3 AS3-输入文本字段插入符号定位

Actionscript 3 AS3-输入文本字段插入符号定位,actionscript-3,textfield,caret,Actionscript 3,Textfield,Caret,我使用一个文本字段来输入用户文本(如下所示)。问题是,键入几个字符后,插入符号的位置会向左偏移。我试图找出如何重新定位插入符号或以某种方式更新字符间距以防止插入符号偏移 var myFont:Font = new Font2(); var myFormat:TextFormat = new TextFormat(); myFormat.font = myFont.fontName; myFormat.size = 14; myFormat.leading = 3; var myText:Te

我使用一个文本字段来输入用户文本(如下所示)。问题是,键入几个字符后,插入符号的位置会向左偏移。我试图找出如何重新定位插入符号或以某种方式更新字符间距以防止插入符号偏移

var myFont:Font = new Font2();

var myFormat:TextFormat = new TextFormat();
myFormat.font = myFont.fontName;
myFormat.size = 14;
myFormat.leading = 3;

var myText:TextField = new TextField();
myText.multiline = true;
myText.wordWrap = true;
myText.autoSize = TextFieldAutoSize.LEFT;
myText.defaultTextFormat = myFormat;
mainText.embedFonts = true;
myText.antiAliasType = AntiAliasType.ADVANCED;
mainText.text = "Hello";
mainText.type = TextFieldType.INPUT;

this.addChild(mainText);

嗯,我知道没有插入符号定位方法,但是您可以在文本字段的末尾设置一个0个选定字符的选择

这里有一个简单的脚本,在单击时将插入符号放在文本字段的末尾。尝试单击文本字段的中间/开头。插入符号将在单击开始时定位在此处,但在单击完成后将跳转到末尾:

var tf:TextField = new TextField();
tf.type = TextFieldType.INPUT;
tf.addEventListener(MouseEvent.CLICK, onTfClick);
tf.text = "test text";
addChild(tf);
和事件处理程序:

function onTfClick(e:MouseEvent):void
{
    tf.setSelection(tf.length, tf.length); // this sets the caret to your desired position
}
因此,在startPos和as endPos中使用setSelection()将插入符号放置在您想要的位置

希望有帮助