0

マルチラインをtrueに設定してAS3でTextFieldを作成し、テキストを同等にすると、次のようになります。

「オラ\rオラ」

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
4

3 に答える 3

2

ミッコの答えに続いて、私はそれを試してみました:

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を使用していますか?)

于 2009-03-29T14:34:28.867 に答える
1

興味のある TextField.text の代わりに TextField のインデックスを取得しようとしているように見えます。

trace(txt.text.indexOf("\r"));

もう少しうまくいくかもしれません。

于 2009-03-29T13:41:04.143 に答える
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"));

テオは本質的に正しいと思っていますが、もう少し明確にしようと思いました。

私が助けてくれることを願っています。また、空白文字や考えられるその他のパタ​​ーンを簡単に見つける方法がある正規表現を確認することをお勧めします。

于 2009-03-30T23:48:02.880 に答える