2

actionscript 3 と flash cs5 を使用して、TLF フィールド内のテキストのサブテキストをキャプチャするにはどうすればよいですか? たとえば、選択したテキストのオフセットを取得しました

var zz:int = textpane.selectionBeginIndex;
var zzz:int = textpane.selectionEndIndex;

textpane は TLF ボックスのインスタンスです。選択範囲の開始位置と終了位置のインデックスを取得しましたが、それらの値を使用してサブテキストを取得する方法がわかりません。

私の最終的な目標は、単にテキストを置き換えるのではなく、テキストの前と後に何かを動的に追加することです。

4

1 に答える 1

0

substring開始インデックスと終了インデックスを使用して、 fromを呼び出しますtextpane.text

var start:int = textpane.selectionBeginIndex;
var end:int = textpane.selectionEndIndex;

var text:String = textpane.text.substring(start, end);

TextFieldテキストを挿入できる機能を実装TLFTextFieldします。replaceText()

開始インデックスで置き換えるには:

textpane.replaceText(start, start, "-->");

最後のインデックスで置き換えるには:

textpane.replaceText(end, end, "<--");

開始インデックスと終了インデックスの両方に挿入するには、挿入されたテキストの長さを補正する必要があります。

end += insertedText.length;

全体として、これは次のようになります。

// find start and end positions
var start:int = textpane.selectionBeginIndex;
var end:int = textpane.selectionEndIndex;

// selected text
var text:String = textpane.text.substring(start, end);

// insert text at beginning of selection
var inseredtText:String = "-->";
textpane.replaceText(start, start, insertText);

// insert text at end of selection
end += insertedText.length;
textpane.replaceText(end, end, "<--");
于 2012-07-13T00:55:37.900 に答える