Как насчет этого?
<mx:Canvas>
<mx:Script>
[Bindable]
public var myText:String;
</mx:Script>
<mx:TextArea id="textArea" text="{TabUtil.expand(myText)}" valueCommit="myText = TabUtil.contract(myText))" />
</mx:Canvas>
public class TabUtil
{
public static const SPACE:String = " "; // Five spaces;
public static function expand(text:String):String
{
return text.replace("\t",SPACE);
}
public static function contract(text:String):String
{
return text.replace(SPACE,"\t");
}
}
Я забыл параметры замены, но я думаю, что может потребоваться RegEx, и в этом случае вам нужно настроить выше. Но это должно сработать.