Просмотр полной версии : Внедрение шрифта "выключает" отображение текста
Дано:
1. серверный скрипт, отдающий по запросу некий XML в кодировке UTF-8;
2. флэшка, которая этот XML принимает и помещает в текстовое поле
Всё работает до тех пор, пока в текстовое поле не внедряется шрифт. После этого (в моем случае) из всех символов, которые посылаются, видны лишь символы "равно" ("="). :confused: Остальных как будто бы нет, хотя трейс показывает обратное.
Найти:
Способ заставить текстовое поле отображать данные при внедренном шрифте. Или доказать невозможность этого и определить причину такого поведения.
Запрос на дополнительные данные:
-- язык -- русский?
-- отдаешь через echo?
-- кодировку указываешь через header("ContentType: text/xml; charset=utf-8"); ?
-- или в объявлении XML: <?xml version="1.0" encoding="utf-8"?> ?
=)
Доп. данные:
1. Язык -- русский. По крайней мере на данный момент только русский. Английский как всегда отображается корректно =/
2. Отдаю через echo
3. Кодировку не указывал =). После запроса доп. данных указал кодировку и в хедере и в самом XML -- не помогло.
У меня подозрение на шрифт. Там вообще русские символы есть? А то бывает и такое.
Ну, шрифт Arial Cyr, однако =)
Сделал у себя тестовый пример, что интересно: при включенной useCodepage отображает, причем указывай ты хедером кодировку utf-8, не указывай -- похеру.
Щас помучаем еще, вопрос действительно интересный.
То есть, если давать флэшке данные в кодировке, отличной от Юникода (скажем win-1251), то всё работает даже при внедренном шрифте? Я не проверял, так как мне по-любому нужен Юникод. =/
Люди! Кого-нибудь еще волнует эта проблема?
Я думал, этот случай довольно распространен -- неужели никто не делал подгрузку Юникода в текстовое поле с внедренным шрифтом? =/
Или все пользуются стандартными шрифтами?
если грузить из файла, то все ОК,
может серверный скрипт чего мутит..?
если грузить из файла, то все ОК,
может серверный скрипт чего мутит..?
У меня и из файла не получилось =/
Шрифт эмбеддил? =)
А насчет скрипта -- как я уже сказал, если не внедрять шрифт, то всё ОК.
ну да
var x = new XML();
x.onLoad = function() {
_root.createTextField('_txt', 0, 0, 0, 0, 0);
_root._txt.autoSize = _root._txt.embedFonts = true;
_root._txt.text = this.toString();
_root._txt.setTextFormat(new TextFormat('f'));//f-шрифт в библиотеке
};
x.load('test.txt');
ну да
var x = new XML();
x.onLoad = function() {
_root.createTextField('_txt', 0, 0, 0, 0, 0);
_root._txt.autoSize = _root._txt.embedFonts = true;
_root._txt.text = this.toString();
_root._txt.setTextFormat(new TextFormat('f'));//f-шрифт в библиотеке
};
x.load('test.txt');
Везёт =) Дай исходник, если не жалко, -- покручу-поверчу, может найду, в чем загвоздка.
держи..
Однако! Всё работает!
А ты пробовал создавать текстовое поле НЕ динамически и включать туда шрифт тоже НЕ динамически? У меня именно так.
Ну, так или иначе, выход найден
_root._txt.setTextFormat(new TextFormat('f')); //f-шрифт в библиотеке
Что ж, спасибо. Но все-таки хочется разобраться, почему так происходит.
>>создавать текстовое поле НЕ динамически и включать туда шрифт тоже НЕ динамически
тож работает :rolleyes:
Ребята, а я дальше зашел. И забыл у наших PHP-программеров спросить... Если у Апача настройка кодировки одна, а выдавать надо в другой, причем iconv_set_encoding не спасает -- как быть? Тогда получается описанный выше маразм.
Ясное дело, что крутить надо серверную часть, но интересно:) Думаю, надо вопрос в руфлэш кинуть, тут разве что Силин приимет участие в беседе, а не просто отметится постом.
Причем тут сервер-то, я не понимаю? =/
Если я подгружаю данные и не внедрил шрифт -- всё нормально, т.е. кодировка = Юникод. Просто внедрив символы шрифта, я никоим образом не могу повлиять на то, что происходит на сервере -- там всё по-старому -- а текст уже не отображается.
И, кажется, я нашел корень всех бед. Вобщем, текстовое поле имеет StyleSheet. Варианта два:
1. без StyleSheet'a всё работает, как показал Silin, в обоих случаях
2. если же подключать стили -- только, когда шрифт не внедрен
Я так понимаю, надо просто внедрить ВСЕ начертания и цвета шрифта, которые используются, для того, чтоб это заработало?
Короче говоря, мой косяк! Каюсь. Во всем виноват CSS. Но, почему у Антареса не работало? Тоже, что ли подключал таблицы стилей? =)
попробовал с CSS: все работает если в *.css указывать linkage_Id шрифта в библиотеке:
font-family: f;
KidsKilla
10.01.2006, 15:35
есть 2 ариала ариал кир и ариал юникод.
юзай 2й, т.к. в 1м русские буквы на другом месте.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.