import flash.text.TextField;
var w:Number=100; //指定宽度
var t:TextField = new TextField();
var s:String =  "12345678901234567890";
t.text =s;
addChild(t);
t.x =100;
t.y =100;

getFinalTxt(w);

function getChar(_str:String , _l:int):String
{
	var _ba:ByteArray = new ByteArray ;
	_ba.writeMultiByte (_str, "");
	if (_ba.length < _l) return _str;
	_ba.position = 0;
	return _ba.readMultiByte(_l-2, "")+"...";
}

function getFinalTxt(len:Number):void
{
	var i:int=s.length;
	while(t.textWidth>len)
	{
		t.text = getChar(s,--i);
		trace(t.text,t.textWidth);
	}
	t.width = w;
}
/*output
12345678901234567... 111
1234567890123456... 105
123456789012345... 99
*/