我正在使用文本字段输入用户文本(如下所示)。问题是在输入几个字符后,插入符号的位置向左偏移。我试图弄清楚如何重新定位插入符或以某种方式更新字符间距以防止插入符号偏移。
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 :(得分:1)
嗯,我没有注意到的插入符号定位方法,但你可以在TextField的末尾设置一个带有0个选定字符的选择。
这是一个简单的脚本,可以在点击时将插入符号放在TextField的末尾。尝试单击TextField的中间/开头。插入符号将在点击开始时定位在那里,但在点击完成后将跳到最后:
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
}
因此将setSelection()与startPos一起使用并将endPos放在所需的位置。
希望有所帮助!