当我创建与多行设置为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"));

西奥基本上是有它正确的,但我想我会尝试一个让它多了几分清晰。

希望我能帮上忙。此外,我会建议检查到正则表达式,它可以很方便的方法来找到空白字符,或者你能想到的任何其他模式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top