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

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

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

Регистрация: Apr 2010
Адрес: Санкт-Петербург
Сообщений: 44
Question Не подключается шрифт в FlashDevelop

Не могу внедрить шрифты *.otf
Если в source подставить путь к любому *.ttf файлу, то всё работает как надо.

Код AS3:
[Embed(source="../../bin/files/HelveticaNeueCyr_Bold.otf",fontName="HelveticaNeueCyr_font",mimeType="application/x-font-truetype",embedAsCFF="false")]
		static private const HelveticaNeueCyr_Bold_class:Class;
Вылетают такие ошибки:
Код:
Error: exception during transcoding:
Error: unable to build font 'HelveticaNeueCyr_font'
Error: Unable to transcode ../../bin/files/HelveticaNeueCyr_Bold.otf.
В чём может быть проблема?

Старый 10.06.2013, 15:49
Ёлочка вне форума Посмотреть профиль Отправить личное сообщение для Ёлочка Найти все сообщения от Ёлочка
  № 2  
Ответить с цитированием
Ёлочка
 
Аватар для Ёлочка

Регистрация: Jun 2013
Адрес: Воронеж
Сообщений: 101
Вот так подключается. Я заметила, что если fontName писать такой же, как имя файла otf, то работает, а если свое имя писать, то не работает.
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.Font;
	import flash.text.TextField;
	import flash.text.TextFormat;
 
	public class Main extends Sprite 
	{
		[Embed(source = "../fonts/mathilde.otf", fontName="mathilde", mimeType="application/x-font")] public static var FontClass:Class;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			var font:Font = new FontClass() as Font;
			var tff:TextFormat = new TextFormat(font.fontName, 120, 0);
			var tf:TextField = new TextField();
			tf.text = "Hello, World!";
			tf.width = 800;
			tf.height = 600;
			tf.setTextFormat(tff);
			this.addChild(tf);
		}
 
	}
 
}
Изображения
 
Вложения
Тип файла: zip test.zip (106.0 Кб, 33 просмотров)

Старый 10.06.2013, 16:05
needForAnswer вне форума Посмотреть профиль Отправить личное сообщение для needForAnswer Найти все сообщения от needForAnswer
  № 3  
Ответить с цитированием
needForAnswer
 
Аватар для needForAnswer

Регистрация: Apr 2010
Адрес: Санкт-Петербург
Сообщений: 44
Спасибо, но, к сожалению, в моем случае это не помогает.
Компилировал ваш код и выводились аналогичные ошибки.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ёлочка
Цитата:
Я заметила, что если fontName писать такой же, как имя файла otf, то работает, а если свое имя писать, то не работает.
Абсолютно без разницы. Имя файла вообще никакой роли не играет.
В вашем примере отображается системный шрифт, а не внедренный (у текстового поля не стоит embedFonts = true), поэтому название так важно

needForAnswer
Цитата:
mimeType="application/x-font-truetype"
вот объясните мне, зачем Вы указываете TrueType (TTF = "true type font"), если импортируете шрифты OpenType (OTF)?
Код AS3:
mimeType="application/x-font"
И еще вопрос: Вы только болд будете использовать, или импортируете и другие начертания этого же шрифта?
Просто fontName давно уже не моден и рекомендуется использовать fontFamily. Пример можете посмотреть в этой теме.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 10.06.2013 в 16:50.
Старый 10.06.2013, 16:46
Ёлочка вне форума Посмотреть профиль Отправить личное сообщение для Ёлочка Найти все сообщения от Ёлочка
  № 5  
Ответить с цитированием
Ёлочка
 
Аватар для Ёлочка

Регистрация: Jun 2013
Адрес: Воронеж
Сообщений: 101
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Абсолютно без разницы. Имя файла вообще никакой роли не играет. В вашем случае отображается системный шрифт, а не внедренный (у текстового поля не стоит embedFonts = true), поэтому название так важно)))
Вот блин. embedFonts вообще не отображаются.

Старый 10.06.2013, 16:48
needForAnswer вне форума Посмотреть профиль Отправить личное сообщение для needForAnswer Найти все сообщения от needForAnswer
  № 6  
Ответить с цитированием
needForAnswer
 
Аватар для needForAnswer

Регистрация: Apr 2010
Адрес: Санкт-Петербург
Сообщений: 44
Цитата:
вот объясните мне, зачем Вы указываете TrueType (TTF = "true type font"), если импортируете шрифты OpenType (OTF)?
Простите, это моя невнимательность.
Но всё же, изменение этого свойства (как и его отсутствие) не решило проблему - выводятся всё те же ошибки.

Старый 10.06.2013, 16:58
Ёлочка вне форума Посмотреть профиль Отправить личное сообщение для Ёлочка Найти все сообщения от Ёлочка
  № 7  
Ответить с цитированием
Ёлочка
 
Аватар для Ёлочка

Регистрация: Jun 2013
Адрес: Воронеж
Сообщений: 101
Я поняла! Всё дело в теге embedAsCFF! needForAnswer нужно поставить embedAsCFF = "false" и tf.embedFonts = true;
Код AS3:
[Embed(source = "../fonts/mathilde.otf", fontName="asdfsdf", embedAsCFF = "false")] public static var FontClass:Class;

Старый 10.06.2013, 17:03
needForAnswer вне форума Посмотреть профиль Отправить личное сообщение для needForAnswer Найти все сообщения от needForAnswer
  № 8  
Ответить с цитированием
needForAnswer
 
Аватар для needForAnswer

Регистрация: Apr 2010
Адрес: Санкт-Петербург
Сообщений: 44
Ёлочка, у меня всё точно так и было изначально...

Добавлено через 1 минуту
Заметил, что в книге К.Мука написано:
Цитата:
Тег метаданных [Embed] может применяться только для шрифтов TrueType
хотя в этом форуме неоднократно цитировался рабочий код, в котором таким же образом встраивались шрифты *.otf. Как это можно объяснить?
Я новичок в FD, и возможно не знаю что-то очевидное, какие-нибудь настройки?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ёлочка, в Вашем примере — да. Но у автора топика проблема совсем в другом — у него компиляция завершается ошибкой, потому что компилятор не может транскодировать файл шрифта.
Такое кстати бывает и по вине шрифта. Большинство шрифтов, которые не покупаются у владельцев, а скачиваются с файлопомоек "для дизайнеров", делаются такими же доморощенными дизайнерами и часто содержат ошибки, несъедобные для компилятора.
Другая причина может быть в несоответствиях внутренних данных шрифта о его семействе и свойствах и тем местом, которое вы ему назначаете. Например, в данном случае Вы импортируете шрифт в полужирном начертании (Bold) как регулярный. Если Вы при этом импортируете так же и настоящий регулярный из того же семейства, компилятор может взбунтоваться.
needForAnswer, почему бы не пройти по ссылке, которую я дал выше, и не убедиться в том что OpenType давно уже прекрасно импортируется, и заодно посмотреть "настройки"?
__________________
Reality.getBounds(this);

Старый 10.06.2013, 17:57
needForAnswer вне форума Посмотреть профиль Отправить личное сообщение для needForAnswer Найти все сообщения от needForAnswer
  № 10  
Ответить с цитированием
needForAnswer
 
Аватар для needForAnswer

Регистрация: Apr 2010
Адрес: Санкт-Петербург
Сообщений: 44
Wolsh, прежде чем начать тему, я видел вашу ссылку, и много других примеров импортирования OpenType.
Тут, как мне кажется, вопрос уже в другом: почему проект Ёлочки не компилируется в моём FD, с её кодом и файлом шрифта?

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

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

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


 


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


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