Показать сообщение отдельно
Старый 05.07.2007, 11:41
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 46  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Не надо создавать несколько сообщений подряд, надо исправить последнее в теме.

Что-то код слишком громоздкий. Мой вариант:
Код:
function getSize (txt:TextField):Object {
	var bmp:BitmapData = new BitmapData (Math.ceil (txt._width), Math.ceil (txt._height), true, 0x00);
	var bmpW:BitmapData = new BitmapData (1, bmp.height, true, 0x00);
	var bmpH:BitmapData = new BitmapData (bmp.width, 1, true, 0x00);
	bmp.draw (txt);
	var offsetW:Number = 0;
	var offsetH:Number = 0;
	var i:Number = bmp.width;
	while (i > 0 && !bmp.hitTest (new Point (0, 0), 1, bmpW, new Point (i, 0), 0)) {
		i--;
	}
	offsetW = i;
	i = 0;
	while (i < bmp.width && !bmp.hitTest (new Point (0, 0), 1, bmpW, new Point (i, 0), 0)) {
		i++;
	}
	offsetW -= i - 2;
	////
	i = bmp.height;
	while (i > 0 && !bmp.hitTest (new Point (0, 0), 1, bmpH, new Point (0, i), 0)) {
		i--;
	}
	offsetH = i;
	i = 0;
	while (i < bmp.height && !bmp.hitTest (new Point (0, 0), 1, bmpH, new Point (0, i), 0)) {
		i++;
	}
	offsetH -= i - 2;
	return {w:offsetW, h:offsetH};
}
var o:Object = getSize (txt);
trace (o.w + " " + o.h);
__________________
(и)Нильс.ru | Плагины для FlashDevelop