|
|
|||||
Регистрация: Sep 2006
Сообщений: 145
|
Не отображается часть эмбед шрифта
Ситуация схожая с любым шрифтом. Отображается не весь эмбед шрифт. Кривая сдк? Раньше с такой проблемой не встречался. Собираю флэш девелопером
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); } } } |
|
|||||
Регистрация: Sep 2006
Сообщений: 145
|
подсказали директиву unicodeRange для Embed
правильная строка [Embed(source='../assets/ttf/13783.ttf',mimeType='application/x-font-truetype',fontName="13783",embedAsCFF='false',unicodeRange="U+0-7F,U+400-4FF",advancedAntiAliasing="true")] |
|
|||||
Регистрация: Sep 2006
Сообщений: 145
|
получается, что так. Вообще как то от типа шрифта зависит. Эмбедил системный Калибри - в нем все. Эмбедил нужный для проекта, тоже установленный в системе - результат в скрине. Есть вариант встройки через свик библиотеку, но там поведение шрифта какое то непредсказуемое.
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Шрифт нестандартный. Заявлен как европейская латиница, содержит ДВА кириллических сета – на месте европейских символов (1251) и в 400-диапазоне. Легко представить, что компилятор не врубается. Любители часто не заполняют или заполняют неверно технические параметры в шрифтовом файле, а компилятор не телепат, чтобы во всем разобраться. Он опирается на эти самые данные.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Sep 2006
Сообщений: 145
|
Wolsh, спасибо за развернутый ответ. Все таки была интересна причина такого явления
|
|
|||||
.
|
Можно я позанудствую? Если без указания интервалов символов не отображались глифы, а с указанием интервалов они внезапно появились, то в этом виноват кривой шрифт?
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Например, компилятор Flash IDE компилит 95 глифов для Basic Latin, и 188 для Latin 1. Он делает это автоматически, этакие "пресеты", заготовки таблиц.
Здесь у нас последний глиф "Т" (210). Я не в курсе, чем руководствуется компилятор сдк. Если ему не указали руками чарсет, он вроде как обязан вкомпилить всё. Вопрос только, что для него "всё", если в параметрах шрифта, в его данных, не указаны стандартные характеристики. Помню, здесь на форуме дважды были темы про казахские символы в юникодном шрифте, которые не вкомпиливались, пока не укажешь их явно в окне Embed. Так что "всё" это вовсе не "все что есть в файле шрифта". Компилятор берет глифы по пресетам таблиц. Какой он выбирает здесь, я не могу судить.
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 23:17. |
|
« Предыдущая тема | Следующая тема » |
|
|