1
私はTextArea、TextInput、およびボタンを持っています。 TextInputにテキストを入力すると、一致する文字列がTextAreaで検索されますが、最初に見つかった文字列のインスタンスのみが強調表示されます。どのようにして「次を見つける」操作を行うことができますか?フレックス:TextAreaの文字列の次のインスタンスを見つける
protected function searchBtn_clickHandler():void
{
text = mainTextField.text;
search_Str = searchTxt.text;
var search_result:int = text.search(search_Str);
trace(search_result);
mainTextField.setFocus();
mainTextField.selectRange(search_result,search_result+search_Str.length);
}
EDIT
protected function searchBtn_clickHandler():void
{
text = mainTextField.text;
search_Str = searchTxt.text;
search_result = text.search(search_Str);
trace(search_result);
mainTextField.setFocus();
mainTextField.selectRange(search_result,search_result+search_Str.length);
oldSearch_result = search_result;
}
protected function findNextBtn_clickHandler():void
{
search_Str = searchTxt.text;
// truncate the text using substring; this gives you everything in mainTextField after your previous search results
var truncatedText:String = mainTextField.text.substring(oldSearch_result+search_Str.length);
search_result = truncatedText.search(search_Str);
mainTextField.setFocus();
// when you select the range, you want to offset your result index w/ the characters your chopped off
mainTextField.selectRange(oldSearch_result+search_Str.length+search_result,search_result+search_Str.length);
}
感謝します。 :D – RapsFan1981
フォローアップの質問が1つあります。 「次を検索」ボタンを押すと、文字列の次のインスタンスの前のすべてが強調表示されます。私はoldSearch_result = search_result + search_Str.length;を設定しました。それは何でしょうか? – RapsFan1981
私はあなたのコードを見て、デバッグする必要があります。範囲を選択するために間違った値を使用しているようですが、誤った場所で検索を開始する可能性があります。私は私の答えで説明するコンセプトを書いていると信じていますが、私はブラウザに書いたので、いくつかの複雑さがあるかもしれません。 – JeffryHouser