кат-то так можно

Код AS1/AS2:
var app: Object = this;
var pattern: String = '<a href="{s}"></a>';
var outputTextField: TextField;
var beginIndex: Number = -1;
var endIndex: Number = -1;
this.button.onRelease = function():Void {
if (app.beginIndex == -1 ||
app.endIndex <= app.beginIndex
) return;
Selection.setFocus( String(app.outputTextField) );
Selection.setSelection(app.beginIndex, app.endIndex);
var inline: String = app.substitute
(
pattern,
app.outputTextField.text.slice(app.beginIndex, app.endIndex)
);
app.outputTextField.replaceSel(inline);
};
this.outputTextField.onMouseUp =
this.outputTextField.onKeyUp = function():Void {
app.beginIndex = Selection.getBeginIndex();
app.endIndex = Selection.getEndIndex();
};
this.outputTextField.onSetFocus = function():Void {
Key.addListener(this);
Mouse.addListener(this);
};
this.outputTextField.onKillFocus = function():Void {
Key.removeListener(this);
Mouse.removeListener(this);
};
function substitute():String {
var temp: Array = arguments[0].split('{s}');
var i: Number = temp.length;
if (i-- > 1) while (i--) temp[i] += arguments[i + 1];
return temp.join('');
}