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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.07.2007, 13:05
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 51  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
У меня тоже не работает draw на текст.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Не знаю почему, но draw может работать с эмбед шрифтом, только, если стоит Anti-alias for animation или BitmapText, иначе надо помещать текстовое поле в мувиклип.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.07.2007, 15:05
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 53  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
странно, что сейчас у меня все рисует..
но в одном проекте был такой затык, решился через blendMode метода draw:
bmp.draw(txt,new Matrix(),null,"layer",null,true);
не все вполне ясно с этими текстфилдами..

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
blendMode по барабану, антиалисинг какой стоит?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.07.2007, 15:43
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 55  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
дада, blendMode не решает: для ембеденного шрифта и anti-alias for readability не рисует..

Старый 05.07.2007, 16:46
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 56  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Я за точность
Код:
import flash.geom.*;
import flash.display.BitmapData;
getTextBounds = function(txt) {
	var x = txt._x;
	var y = txt._y;
	var w = txt._width;
	var h = txt._height;
	var xs = txt._xscale;
	var ys = txt._yscale;
	var scale = 20;
	txt._xscale = xs*scale;
	txt._yscale = ys*scale;
	var bmp = new BitmapData(txt._width,txt._height,true,0);
	var mtx = new Matrix();
	mtx.scale(scale,scale);
	bmp.draw(txt, mtx);
	bmp.colorTransform(bmp.rectangle,new ColorTransform(1,1,1,1,0,0,0,255));
	var rect = bmp.getColorBoundsRect(0xFF000000,0x00000000, false);
	bmp.fillRect(rect,0x80FFFF00);
	rect.x /= scale;
	rect.y /= scale;
	rect.width /= scale;
	rect.height /= scale;
	txt._xscale = xs;
	txt._yscale = ys;
	bmp.dispose();
	return rect;
}
rect = getTextBounds(txt);
beginFill(0xFF0000, 30);
trace(rect);
moveTo(txt._x+rect.x+2,txt._y+rect.y+2);
lineTo(txt._x+rect.x+rect.width+2,txt._y+rect.y+2);
lineTo(txt._x+rect.x+rect.width+2,txt._y+rect.y+rect.height+2);
lineTo(txt._x+rect.x+2,txt._y+rect.y+rect.height+2);
endFill();

Старый 05.07.2007, 19:19
Friday13 вне форума Посмотреть профиль Отправить личное сообщение для Friday13 Посетить домашнюю страницу Friday13 Найти все сообщения от Friday13
  № 57  
Ответить с цитированием
Friday13
 
Аватар для Friday13

Регистрация: Nov 2001
Адрес: Moscow village
Сообщений: 193
Отправить сообщение для Friday13 с помощью ICQ
Цитата:
Сообщение от __etc
Я за точность
неплохо с фонтами разобрались товарищи
__________________
Тут вам не здесь!!!


Последний раз редактировалось etc; 05.07.2007 в 19:24.
Старый 06.07.2007, 03:20
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 58  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
У меня пишется undefined и ничего не рисуется.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 06.07.2007, 03:36
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 59  
Ответить с цитированием
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.
Старый 06.07.2007, 07:47
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 60  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Код:
import flash.geom.*;
import flash.display.BitmapData;
getTextBounds = function(txt) {
	var mc = txt._parent.createEmptyMovieClip('__textBounds_mc',-3288);
	var t = mc.createTextField('txt',0,0,0,100,100);
	t.setNewTextFormat(txt.getTextFormat());
	t.embedFonts = txt.embedFonts;
	t.html = txt.html;
	t.htmlText = txt.htmlText;
	t._width = txt._width;
	t._height = txt._height;
	txt = t;
	var xs = txt._xscale;
	var ys = txt._yscale;
	var scale = 20;
	var maxXScale = 2800/txt._width;
	var maxYScale = 2800/txt._height;
	if (maxXScale < scale) {
		scale = maxXScale;
	}
	if (maxYScale < scale) {
		scale = maxYScale;
	}
	txt._xscale = xs*scale;
	txt._yscale = ys*scale;
	var bmp = new BitmapData(mc._width,mc._height,true,0);
	bmp.draw(mc);
	bmp.colorTransform(bmp.rectangle,new ColorTransform(1,1,1,1,0,0,0,255));
	var rect = bmp.getColorBoundsRect(0xFF000000,0x00000000, false);
	bmp.fillRect(rect,0x80FFFF00);
	rect.x /= scale;
	rect.y /= scale;
	rect.width /= scale;
	rect.height /= scale;
	txt._xscale = xs;
	txt._yscale = ys;
	bmp.dispose();
	mc.swapDepths(6550);
	mc.removeMovieClip();
	return rect;
}
rect = getTextBounds(txt);
beginFill(0xFF0000, 30);
moveTo(txt._x+rect.x,txt._y+rect.y);
lineTo(txt._x+rect.x+rect.width,txt._y+rect.y);
lineTo(txt._x+rect.x+rect.width,txt._y+rect.y+rect.height);
lineTo(txt._x+rect.x,txt._y+rect.y+rect.height);
endFill();

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:27.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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