动作的indexOf问题
-
22-08-2019 - |
题
当我创建与多行设置为true AS3一个TextField和等同的文本说:
“HOLA \ r HOLA”
我无法检索使用的indexOf函数\ r的索引位置时,它总是返回-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
解决方案
随着米克的答案我给它一个尝试:
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。也许换行被以某种方式转化。 (其OS是你吗?)
其他提示
在我看来,你试图让文本字段,而不是你所感兴趣的的TextField.text的索引。
trace(txt.text.indexOf("\r"));
可以工作好一点。
确定,所以第一件事首先,
您还没有实例化你的文本框,你只是做一个参考。
其次,的indexOf,不可用于TextField类,但String类,因此使用下面,你将没有更多的问题。它描绘出对我很好。
var txt:TextField = new TextField();
addChild(txt);
txt.multiline = true;
txt.text = "Hola \r hola";
trace(txt.text.toString().indexOf("\r"));
西奥基本上是有它正确的,但我想我会尝试一个让它多了几分清晰。
希望我能帮上忙。此外,我会建议检查到正则表达式,它可以很方便的方法来找到空白字符,或者你能想到的任何其他模式。
不隶属于 StackOverflow