![]() |
Глючит TextFormat
Есть простенький класс, с переменной TextField
почему-то когда вызывается scores += 10; то формат текста сбрасывается в системный шрифт. А если установить embedFonts то не отображается вобще. :eek: Код AS3:
|
defautTextFormat
|
А я было подумал что объект TextFormat создается где-то не там, спасибо.
|
У меян тоже проблема! Я тут уже все темы перерыл и никак не могу найти того, что нужно. Пишу в CS4, проблема у меня с русским шрифтом.Русский шрифт получаю через xml и вывожу в текстфилде, но вылазят каракули. Я сначала подумал что шрифт не поддерживает(использую не встроенный), но когда протрейсил понял что дело не только в шрифте, т.к. трэйс тоже каракули выдал. Для начала решил встроить шрифт, облазил тут пол форума, перечитал кучу тем, Но так и не понял как в CS4 встраивать шрифты, при том, что все текстфилды у меня динамические. Вот iNils писал:
Цитата:
Код AS3:
|
utf-8
|
А можно чуть-чуть по конкретней? Поиск по AS3 ничего не выдаёт на это
|
Цитата:
|
Угу, нашел я его же советы по данному вопросу и состряпал такую функцию
Код AS3:
|
Если trace выводит коракули, может надо сам xml-файл сделать в utf-8?
|
Теперь выдаёт ошибку :
Цитата:
|
willis83, String нельзя сконвертировать в ByteArray.
|
BloodHound, у Вас такие исчерпывающие ответы...
Может подскажете решение данной проблемы? |
|
Может такое написать в php-скрипте
$title = iconv("ISO-8859-1","utf-8",$title); // из ISO в UTF. Или поищи в google, там тоже куча функций для php |
Buble, спасибо за совет. Буду пытаться
Добавлено через 3 часа 46 минут Плохо, что нет конкретного решения и в каждом отдельном случае человеку приходится решать проблему с самого начала... могли бы уже придумать чё-нибудь... вот мне сейчас больше делать нечего как разбираться в тонкостях кодировок. |
willis83, есть только одна кодировка — utf-8. Никаких тонкостей больше нет. Всё остальное — не кодировки.
|
Ерунда какая-то!!! Это может в CS4 глюк какой, потому что БД отдаёт все на UTF-8, не может же php сам кодировку поменять при выводе!!! А флэш всё равно каляку маляку видит.... уже не знаю чё делать.
Добавлено через 11 минут О! Единственное что даёт результат это прогон ответов БД через функцию iconv в php скрипте.... но я, блин, крякну все ответы через эту функцию прогонять.. |
Переведите БД на utf. Если бы она была в этой кодировке, у вас проблем не возникло бы.
|
Версия сервера: 5.0.22
Версия протокола: 10 Сервер: Localhost via UNIX socket Пользователь: wondernet@localhost MySQL-кодировка: UTF-8 Unicode (utf8) Сопоставление соединения с MySQL: utf8_unicode_ci Куда ещё больше? |
Судя по тексту на первой страницы, у вас вместо кодовой страницы CP1251 стоит CP1252.
|
willis83, это вовсе не означает, что сами данные в базе именно в этой кодировке :)
|
Не знаю.... я вообще не понимаю откуда вылазят CP-125*
Я свою проблему решил так. Добавил в php это: PHP код:
|
Значит данные в базу сохраняются именно в CP1251.
|
__etc, а как узнать в какой они там кодировке и сделать чтобы они были там в utf-8??? База в приницпе тестовая и наполнял я её в ручную через phpMyAdmin
|
В своё время я пару дней потратил на перевод данных из cp1251 в utf-8. Гонял туда-сюда бекапы и прочая. Так до конца с этим phpMyAdmin не разобрался, но в конечном итоге каким-то мистическим образом добился конвертации в нужный формат. Дело было давно, подробностей не помню. Надеюсь, больше мне этим заниматься никогда не придется.
|
Наверное из-за phpMyAdmin и получилось CP-1251, потому как через веб интерфейс команды проходили
|
Скорее всего.
|
Получается, когда база будет наполнятся по запросам от swf необходимость в iconv отпадёт и можно будет функцию echoutf выкинуть из скрипта?
|
По идее да. Вообще никаких конвертаций не производить потом.
|
Нашел где собака зарыта - сами тэйблы на CP-1251. PhpMyAdmin по умолчанию создаёт в этой кодировке... мда, работа меня нашла, придётся всё перетращивать по новой
|
willis83, встраивание шрифтов в Adobe Flash CS4 (Professional) дело несложное. Раз уж вы кучу инфы перерыли и так и не поняли, как это делается, попытаюсь объяснить Вам еще раз. Может у меня лучше получится?!))
Есть два способа встраивания шрифтов в свое Flash-приложение: -традиционный Flash способ. В среде разработки Adobe Flash CS4 открываем библиотеку символов. Правой кнопкой мыши вызываете контекстное меню, в котором выбираете пункт New Font... Далее из выпадающего списка шрифтов (Font), установленных в системе, выбираем тот, который собираемся использовать в своем Flash-приложении. Убираем галочку с пункта Bitmap text. Пункт Name играет чисто косметическую роль для отображения имени шрифта в библиотеки символов. Теперь ставим галочки напротив пунктов Action For ActionScript и Export In Frame 1. После всего этого жмем "Ok" (Flash выведет Вам предупреждение о том, что класс шрифта не найден и будет создан автоматически при экспорте в SWF-файл, можете смело игнорировать данное предупреждение). Вот и всё - шрифт встроен. Однако, Вы можете быть очень удивлены, что шрифт, поддерживающий русский язык фактически не отображает его в проекте. Такое часто происходит в CS4 с ttf-шрифтами, подерживающими русский язык. Суть проблемы со шрифтами TTF заключается в том, что в большинстве (но не во всех!) существующих кириллических шрифтов Unicode-индексы символов, изображающих русские буквы, соответствуют латинской кодовой таблице CP1252, а не кириллической CP1251. Поэтому среда разработки попросту не обнаружит глифов для отображения кирилицы, а следовательно, если текстовое поле отоборжает текст с помощью встроенных шрифтов (myTextField.embedFonts=true) русский текст отображен не будет. В этом случае приходит на помощь нетрадиционный для Flash способ встраивания шрифтов...Способ второй "Flex спешит на помощь" читай ниже... -Второй способ заключается во встраивании шрифтов не с помощью среды разработки Flash, а с помощью AS 3.0 кода и библиотеки Flex SDK. Последняя распространяется бесплатно, актуальный релиз можно скачать с официального сайта корпорации Adobe. Итак скачиваем Flex SDK, создаем новый as-файл следующего содержания (к примеру): Код AS3:
ВНИМАНИЕ!!! Эти два способа не взаимоисключаемые, их можно использовать в комбинации. Например, шрифты, с которыми не возникает проблем могут быть встроены с помощью традиционного метода (да, в таком случае, не забудьте в первом кадре fla-файла с помощью статического метода класса Font - registerFont, добавить втроенные шрифты в глобальный список шрифтов) а проблемные путем подключения класса Fonts. Будьте внимательны, возможно такое, что шрифты, которые нормально внедряются через библиотеку символов - оплошаются при их внедрении с помощью Flex SDK (а чаще всего так и происходит). |
Спасибо! Достойный, развёрнутый ответ. На счёт первого способа, уже столкнулся с проблемой: шрифт встроил, но при
Код AS3:
Добавлено через 1 минуту текст на английском |
willis83, встроили шрифт с пощью библиотеки символов. Проверьте наличие глифов для английского текста и для русского следующим методом:
Код AS3:
P.S. каким способом форматируете TextField? Передаете ссылку на экземпляр класса TextFormat в свойство defaultTextFormat экземпляра класса TextField, или же с помощью метода экземпляра класса TextField setTextFormat?? |
Чё-то я прикола не пойму, у меня он не видит встроенный шрифт, т.е. при попытке скомпилить ваш код выдаёт ошибку:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". ссылуи я правильно прописал, галочки все поставил... не знаю почему не видит Добавлено через 1 минуту про способ форматирования - setTextFormat |
willis83, скиньте мне исходник.))
Используйте defaultTextFormat |
Вложений: 1
вот...
|
willis83, простите меня за описку, при проверке на наличие глифов нужно указывать Имя Шрифта, которое указано в поле Font. У меня показало, что этот встроенный шрифт не содержит глифов для отображения русского текста, так что встраивать его нужно посредством Flex SDK 3.0.2
Это код рабочего класса main (блин, давайте имена классам с Большой буквы, а то, глаза режет)))) Код AS3:
P.S. В fla-файле в библиотеке Вы все встроили правильно.) |
Flex SDK сегодня перепишу и попробую разобраться со вторым способом
|
Делал проект на ас2 (под кс3), сення с дуру снес кс3, но есть кс4, открыл, сразу же скомпилил (ничего не менял) и как пишете выше "Однако, Вы можете быть очень удивлены" Ага, русские шрифты пропали, хотя все честь по чести, в библиотеке валяется самый обычный Trebuchet MS / 10 с линкейджем. Как тут быть?..второй способ как понял только для ас3?
|
да, похоже второй способо только для ас3, т.к. поддержка embed необходима. Мне кажется что если нет надобности с текстом выделывать трюки, то можно остановиться на использовании не втроенных шрифтов и не парить мозги
|
| Часовой пояс GMT +4, время: 05:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.