当我在AS3中创建一个Textline,多行设置为true并将文本等同于:
“Hola \ r hola”
我无法使用indexOf函数检索\ r \ n的索引位置,它总是返回-1
有谁知道我做错了什么?
var txt:TextField;
txt.multiline = true;
txt.text = "Hola \r hola";
//txt now renders fine with the line break
trace(txt.indexOf("\r")); //Returns -1, should return the valid index of \r in txt
答案 0 :(得分:2)
按照Mikko的回答,我试了一下:
var textField:TextField = addChild(new TextField()) as TextField;
textField.multiline = true;
textField.text = "test \r test";
trace("result>" + textField.text.indexOf("\r"));
此代码跟踪:
result>5
......正如预期的那样。
如果它仍然不起作用,首先尝试搜索除\ r之外的其他字符,如果这样做也会尝试搜索\ n。也许换行符会以某种方式变换。 (你在哪个操作系统?)
答案 1 :(得分:1)
在我看来,您正在尝试获取TextField的索引,而不是您感兴趣的TextField.text。
trace(txt.text.indexOf("\r"));
可以更好一点。
答案 2 :(得分:1)
好的,首先要做的事情,
您尚未实例化您的文本字段,您只是作了参考。
其次,indexOf不可用于TextField类,而是String类,因此请使用以下内容,您将不再有任何问题。它对我来说很好。
var txt:TextField = new TextField();
addChild(txt);
txt.multiline = true;
txt.text = "Hola \r hola";
trace(txt.text.toString().indexOf("\r"));
Theo基本上是正确的,但我想我会试着让它更清晰一点。
希望我能提供帮助。此外,我建议您查看正则表达式,这些表达式可以轻松找到空白字符或您能想到的任何其他模式。