Простой вариант из сложных

Простой, потому что не учитывает вариант с разной высотой букв и выводит линию на одной высоте (в примере -6). Если этого достаточно, то гуд, если же будут разные высоты, попробуем придумать более сложный вариант.
Для корректной работы примера нужно создать текстовое поле с вшитым шрифтом Times New Roman.

Код:
import flash.display.BitmapData;
function strike (mc:MovieClip, str:String):Void {
var txt:TextField = mc.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);
mc.attachBitmap (bmp, 1);
bmp.scroll (0, -6);
txt.antiAliasType = "normal";
txt.htmlText = str;
}
function createText (name:String, x:Number, y:Number):MovieClip {
var mc:MovieClip = this.createEmptyMovieClip (name, this.getNextHighestDepth ());
mc._x = x;
mc._y = y;
var txt:TextField = mc.createTextField ("txt", 0, 0, 0, 350, 200);
var fmt:TextFormat = txt.getTextFormat ();
fmt.size = 20;
txt.setNewTextFormat (fmt);
txt.embedFonts = true;
txt.html = true;
txt.wordWrap = true;
txt.multiline = true;
return mc;
}
var str:String = "Пример <strike>зачеркнутого</strike> текста. <u>Пример</u> <strike>зачеркнутого</strike> текста. Пример <strike>зачеркнутого</strike> текста.";
var mc1:MovieClip = createText ("mc1", 50, 50);
mc1.txt.htmlText = "Не работает:<br>" + str;
////
var mc2:MovieClip = createText ("mc2", 50, 300);
strike (mc2, "Работает:<br>" + str);