Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 06.07.2007, 03:36
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 39  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
У меня рисует раз через пять, причем непонятно от чего зависит. Ставил input, dynamic, разные параметры сглаживания и разный размер шрифта. Не стоит отрисовывать битмапой тектовое поле, нет в это веры.
Стало быть...
Код:
import flash.geom.*;
import flash.display.BitmapData;

function getSize (mc:MovieClip):Rectangle {
	var bmp:BitmapData = new BitmapData (Math.ceil(mc._width), Math.ceil(mc._height), true, 0);
	bmp.draw (mc);
	var rect:Rectangle = bmp.getColorBoundsRect(0xFF000000, 0x00000000,false);
	bmp.dispose();
	drawBounds(mc, rect);
	return rect; 
}
getTextBounds = function(txt) {
	var x = txt._x;
	var y = txt._y;
	var w = txt._width;
	var h = txt._height;
	var temp_mc:MovieClip = createEmptyMovieClip('temp_mc', getNextHighestDepth());
	var temp_txt:TextField = temp_mc.createTextField('txt',1,0,0,w+5,h+5);
	temp_txt.embedFonts = txt.embedFonts;
	temp_txt.text = txt.text;	
	temp_txt.setTextFormat(txt.getTextFormat());

	var rect:Rectangle = getSize(temp_mc);
//	temp_mc.removeMovieClip();
	rect.offset(x,y);
	return rect;
}

function drawBounds( mc:MovieClip, rect:Rectangle ){
	mc.clear();
	mc.beginFill(0xFF0000, 30);
	mc.moveTo(rect.left, rect.top);
	mc.lineTo(rect.left, rect.bottom);
	mc.lineTo(rect.right, rect.bottom);
	mc.lineTo(rect.right, rect.top);
	mc.lineTo(rect.left, rect.top);
	mc.endFill();
}
	
rect = getTextBounds(txt);
drawBounds(this, rect);
trace(rect);
Все равно косячит, но программный клон нормально обводит.


Последний раз редактировалось Kikasso; 06.07.2007 в 05:11.
Создать новую тему   Часовой пояс GMT +4, время: 18:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.