Попробовал перевести на as3 - вот что в итоге вышло:

Код:
public class Example extends Sprite {
public function strike(mc:MovieClip, str:String) {
var txt = mc.getChildByName("txt");
var stru:String = str.split ("<u>").join ("");
stru = stru.split ("</u>").join ("");
stru = stru.split ("strike>").join ("u>");
txt.htmlText = stru;
txt.antiAliasType = "advanced";
var bmp:BitmapData = new BitmapData (txt.width, txt.height, true, 0x0);
bmp.draw(txt);
bmp.scroll(0, -6);
mc.addChild(new Bitmap(bmp));
txt.antiAliasType = "normal";
txt.htmlText = str;
}
public function createText(x:Number, y:Number){
var mc:MovieClip = new MovieClip()
mc.x = x;
mc.y = y;
var txt:TextField = new TextField()
txt.width = 350
txt.height = 200
txt.name = "txt"
txt.wordWrap = true;
txt.multiline = true;
//txt.embedFonts = true;
var fmt:TextFormat = txt.getTextFormat()
fmt.size = 20
txt.defaultTextFormat = fmt
mc.addChild(txt)
return mc;
}
public function ButtonExample() {
var str:String = "Пример <strike>зачеркнутого</strike> текста. <u>Пример</u> <strike>зачеркнутого</strike> текста. Пример <strike>зачеркнутого</strike> текста.";
var mc1:MovieClip = createText (50, 50);
var target = mc1.getChildByName("txt")
target.htmlText = "Не работает:<br>" + str;
addChild(mc1)
var mc2:MovieClip = createText (50, 300);
strike(mc2, "Работает:<br>" + str);
addChild(mc2)
}
}
Проблема в том, что зачеркнутый текст рисуется неправильно(текст рисуется дважды). В принципе понимаю что где-то надо указать embedFonts = true, но либо текст не рисуется, либо смазывается(как сейчас), либо же рисуется просто подчеркивание.