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

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

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

Регистрация: Sep 2006
Сообщений: 145
По умолчанию Не отображается часть эмбед шрифта

Ситуация схожая с любым шрифтом. Отображается не весь эмбед шрифт. Кривая сдк? Раньше с такой проблемой не встречался. Собираю флэш девелопером
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFormat;
 
	/**
	 * ...
	 * @author
	 */
	public class Main extends Sprite
	{
		[Embed(source='../assets/ttf/13783.ttf',mimeType='application/x-font-truetype',fontName="13783",embedAsCFF='false')]
		private 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);
			// entry point
			var tf:TextField = new TextField();
			tf.defaultTextFormat = new TextFormat("13783", 35);
			tf.embedFonts = true;
			tf.multiline = true;
			tf.wordWrap = true;
			tf.width = 500;
			tf.height = 300;
			tf.border = true;
			tf.text = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦШЩЭЮЯабвгдеёжзийклмнопростуфхцшщэюяABCDEFGHIJKLMNOPQRWTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
			stage.addChild(tf);
		}
 
	}
 
}
Изображения
 
Вложения
Тип файла: zip 13783.zip (11.6 Кб, 17 просмотров)

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

Регистрация: Sep 2006
Сообщений: 145
подсказали директиву unicodeRange для Embed
правильная строка
Код AS3:
[Embed(source='../assets/ttf/13783.ttf',mimeType='application/x-font-truetype',fontName="13783",embedAsCFF='false',unicodeRange="U+0-7F,U+400-4FF",advancedAntiAliasing="true")]
диапазоны unicodeRange есть тут http://www.compuart.ru/article.aspx?id=21970&iid=1004

Старый 04.03.2012, 23:46
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Получается, что без указания unicodeRange эмбедятся не все глифы?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Sep 2006
Сообщений: 145
получается, что так. Вообще как то от типа шрифта зависит. Эмбедил системный Калибри - в нем все. Эмбедил нужный для проекта, тоже установленный в системе - результат в скрине. Есть вариант встройки через свик библиотеку, но там поведение шрифта какое то непредсказуемое.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Шрифт нестандартный. Заявлен как европейская латиница, содержит ДВА кириллических сета – на месте европейских символов (1251) и в 400-диапазоне. Легко представить, что компилятор не врубается. Любители часто не заполняют или заполняют неверно технические параметры в шрифтовом файле, а компилятор не телепат, чтобы во всем разобраться. Он опирается на эти самые данные.
__________________
Reality.getBounds(this);

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

Регистрация: Sep 2006
Сообщений: 145
Wolsh, спасибо за развернутый ответ. Все таки была интересна причина такого явления

Старый 05.03.2012, 00:10
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Можно я позанудствую? Если без указания интервалов символов не отображались глифы, а с указанием интервалов они внезапно появились, то в этом виноват кривой шрифт?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Например, компилятор Flash IDE компилит 95 глифов для Basic Latin, и 188 для Latin 1. Он делает это автоматически, этакие "пресеты", заготовки таблиц.
Здесь у нас последний глиф "Т" (210). Я не в курсе, чем руководствуется компилятор сдк. Если ему не указали руками чарсет, он вроде как обязан вкомпилить всё. Вопрос только, что для него "всё", если в параметрах шрифта, в его данных, не указаны стандартные характеристики.
Помню, здесь на форуме дважды были темы про казахские символы в юникодном шрифте, которые не вкомпиливались, пока не укажешь их явно в окне Embed. Так что "всё" это вовсе не "все что есть в файле шрифта". Компилятор берет глифы по пресетам таблиц. Какой он выбирает здесь, я не могу судить.
__________________
Reality.getBounds(this);

Старый 05.03.2012, 02:03
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 9  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от dimarik
Получается, что без указания unicodeRange эмбедятся не все глифы?
Завтра сделаю ресерч.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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