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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.01.2015, 16:43
a7s1h1 вне форума Посмотреть профиль Отправить личное сообщение для a7s1h1 Найти все сообщения от a7s1h1
  № 1  
Ответить с цитированием
a7s1h1

Регистрация: Oct 2013
Сообщений: 126
Post Межстрочный интервал внедрённого шрифта

Уважаемые форумчане, вопрос такой:
Чтобы текст отображался на компах, где нужный шрифт не установлен, во Flash IDE внедрил и экспортировал вместе с картинками в swc 2 шрифта.
Для текстового поля у меня есть отдельный публичный класс TF. Вот он целиком:
Код AS3:
package  rc {
	import flash.text.Font;
	import flash.text.TextField;
	import flash.text.TextFormat;
 
	public class TF extends TextField {
 
		/**
		 * 
		 * @param	xx координата x
		 * @param	yy координата y
		 * @param	txt текст
		 * @param	fs размер текста
		 * @param	b жирный или нет
		 * @param	c цвет текста
		 * @param	t скорость исчезновения (для тающего текста)
		 */
 
		public var ft:Number // скорость исчезновения тающего
 
		// CONSTRUCTOR
		public function TF(
			xx:int, 
			yy:int, 
			txt:String, 
			fs:uint = 9, 
			b:Boolean = false,
			c:uint = 0x000000,
			t:Number = .05
		) {
			x = xx;
			y = yy;
			// используем внедрённый шрифт
			embedFonts = true;
			var fontM:Font = new f_MyFont(); 	// добавляем обычный шрифт
			var fontB:Font = new f_MyFontB();	// добавляем толстый шрифт
			antiAliasType = 'advanced';	// делаем шрифты чётче
 
			var fnt:String = (b)?('Albertus Extra Bold'):('Albertus Medium');
			// Формат текста
			var textFormat:TextFormat = new TextFormat(fnt, fs, c);
			textFormat.kerning = true; // улучшаем читаемость текста
			defaultTextFormat = textFormat;
			//border=fr; 			// рамка
			selectable=false; 	// возможность выделять текст (по умолчанию можно)
			//blendMode = bm; // надпись будет противоположного цвета относительно своего фона если invert
			text = txt;
			width = textWidth+4;			// ширина блока
			height = textHeight + 8;			// высота блока
 
			ft = t; // время таяния
 
			mouseEnabled = false;
		};
 
		public function update(txt:String=''):void {
			text = txt; 			// обновляем текст
			width = textWidth+4;	// ширина блока
			height = textHeight + 8;	// высота блока
		};
	};
};
Текст во флешке отображается даже на компе, где эти шрифты не установлены, с этим всё ок. Проблема в том, что текст жирным шрифтом ('Albertus Extra Bold') отображается нормально, а обычным ('Albertus Medium') - почему-то с огромными межстрочными интервалами (если же строчка всего одна, всё равно видно, что она расположена немного правее и ниже, чем следует). В коде проблем не нашёл, в IDE у шрифтов абсолютно идентичные, все необходимые символы при внедрении выбраны. Есть какие-нибудь мысли по поводу того, в чём проблема и как её исправить?

Старый 15.01.2015, 18:20
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Если с другим шрифтом все нормально, то очевидно, что дело в шрифте?
__________________
Reality.getBounds(this);

Старый 15.01.2015, 18:56
a7s1h1 вне форума Посмотреть профиль Отправить личное сообщение для a7s1h1 Найти все сообщения от a7s1h1
  № 3  
Ответить с цитированием
a7s1h1

Регистрация: Oct 2013
Сообщений: 126
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Если с другим шрифтом все нормально, то очевидно, что дело в шрифте?
Спасибо. Я тоже так думаю, просто пока не успел проверить эту теорию, используя другой шрифт.

[Спойлер с нытьём]Просто думал, мало ли, это какой-нибудь известный баг Adobe Flash или распространённая проблема. Ведь если окажется, что проблема в конкретном шрифте, прийдётся отказаться от него и либо оставлять только жирный, либо искать вообще другой (а жаль, ведь этот так хорошо подходит, и все панельки под него подогнаны).[/Спойлер]

P.S. Кстати, тут можно как-нибудь сворачивать текст в спойлеры?

Добавлено через 2 часа 7 минут
Попробовал другие шрифты. Действительно, с некоторыми всё нормально, а некоторые глючат, как проблемный. Но непонятно, почему нормально работает бестолковый Algerian, а тупят самые что ни на есть стандартные Arial и Times New Roman...

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

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

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


 


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


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