![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Не могу поменять шрифт, уже написал кусочек кода совсем простой и всё равно:
import flash.display.*; import flash.events.MouseEvent; import fl.text.TLFTextField; import flash.text.TextFormat; mc.addEventListener(MouseEvent.CLICK, onCLICK); function onCLICK(e:MouseEvent):void { trace("Замена шрифта"); var TLFformat:TextFormat=new TextFormat("SegoeWP", 90, 0x666666); txt.text="Новый текст"; txt.defaultTextFormat=TLFformat; } [IMG]http://s3.********************/uploads/images/2012/08/2a96cd3cc543ac174bbf4d715670d4a1.jpg[/IMG] Не меняется шрифт, точнее шрифт ставится на какой-то по умолчанию (видимо). И ошибки не выдаёт. Сделал без классов, чтоб проще и нагляднее, но в классах та же беда. Что не так? У буржуев всё просто на форумах описывается: Последний раз редактировалось zerAlex2; 11.08.2012 в 22:06. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Не, результат тот же. И буржуины рекомендуют применять формат после:
http://flash.xgraves.com/?tag=defaulttextformat Подозреваю, что как-то нужно внедрять шрифт по другому. Еще интересная закономерность: если не отключить прослушку колёсика на тексте, то при прокручивании оного шрифт меняется на такой же и делается маленьким. Последний раз редактировалось zerAlex2; 11.08.2012 в 23:39. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Вы не видите разницы между setTextFormat() и defaultTextFormat? Давайте ка еще раз прочитаем. Обратите внимание на порядок в двух последних блоках "работает!" 4. Pitfall: setTextFormat is not defaultTextFormat textField.setTextFormat will format your text field, but the formatting will disappear if you reset the textField.text. So use textField.defaultTextFormat to set the base style for all future content. Examples: // DOES NOT WORK! var fmt:TextFormat = new TextFormat("Arial", 24, 0x666666); myField.setTextFormat(fmt); // format what's there now myField.text = "whatever"; // resetting content loses format // WORKS var fmt:TextFormat = new TextFormat("Arial", 24, 0x666666); myField.text = "whatever"; // set content first myField.setTextFormat(fmt); // format what's there now // WORKS var fmt:TextFormat = new TextFormat("Arial", 24, 0x666666); myField.defaultTextFormat = fmt; // note the syntax is different myField.text = "whatever"; // works
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 11.08.2012 в 23:45. |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Я уже и так и сяк пробовал:
и так: var fd1:FontDescription = new FontDescription(); fd1.fontLookup = FontLookup.EMBEDDED_CFF; fd1.fontName = "SegoeWP"; function onCLICK(e:MouseEvent):void { var TLFformat:TextFormat=new TextFormat(); TLFformat.color=0xFF0000; TLFformat.font="SegoeWP"; TLFformat.size=32; trace("Замена шрифта"); txt.defaultTextFormat=TLFformat; txt.setTextFormat(TLFformat); txt.text="Новый текст"; txt.defaultTextFormat=TLFformat; txt.setTextFormat(TLFformat); } Последний раз редактировалось zerAlex2; 12.08.2012 в 00:16. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
ОК. У Вас вообще внедренный шрифт для поля включен? Попробуйте включить программно:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Добавил строку, результат тот же (
ссылка на проект (CS6): http://**************/32079225 Вот, смотрю, у людей всё просто: http://flashthusiast.com/2010/05/05/...and-flash-cs5/ Скачал их пример (№7), переделал под свой шрифт - заработало. Но только, если указывать настоящее имя шрифта черех .font, а через ссылку не фурычит совсем. Самое странное, что сначала не работало с оригинальным названием шрифта. Последний раз редактировалось zerAlex2; 12.08.2012 в 01:29. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Всегда удивляло во Flash IDE это безобразие. То, что невозможно импортировать в библиотеку шрифт из папки, то есть не установленный в системе. Получается что шрифт, которому делаешь embed, у тебя всегда установлен, и без шаманских бубнов убедиться что всё будет прекрасно на машине без этого шрифта невозможно. И причина в том, что импортированному шрифту нельзя дать отличное имя. Хотя в диалоге импорта есть графа для ввода "имени", это имя символа в библиотеке. Не Класса (это другое поле), не имя для формата, а просто имя в библиотеке. Реально же имя шрифта в рантайме будет его собственным. Можно достучаться вот так:
если SegoeWP это Класс (задается во вкладке "ActionScript" диалога импорта, если поставить галочку "экспорт для ActionScript"). Фишка в том, что получаем мы таким способом просто строку, которая передает реальное имя шрифта, а не то что мы вводили. Реальное — такое же, как в системе у этого шрифта. То есть мы передали бы точно такую же строку, если бы использовали НЕ внедренный шрифт. Маразм. Когда создаешь поле кодом через new и потом назначаешь ему embedFonts = true, есть уверенность что это поле ничего не покажет, если внедренного шрифта нет. А вот с полями, созданными вручную в IDE, я такой уверенности не испытываю. Вобщем рад что у Вас получилось. проверьте скомпиленную флэшку на другой машине, где этот шрифт точно не установлен.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 148
|
Вот-вот. Именно так )
Осталось проверить на другом компе. Как я понял из адобовских описаний, чтобы быть уверенным во внедрённом тексте, нужно с swf-кой переносить и файл типа: textLayout_2.0.0.232.swz. Буду проверять. Еще. На форуме альтернативщиков увидел, как там шрифт внедряли, мож кому сгодится: http://forum.alternativaplatform.com...list/3995.page Последний раз редактировалось zerAlex2; 12.08.2012 в 19:31. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну это Embed для флекс_сдк. Я именно им и пользуюсь всегда, поскольку пишу и компилирую код во FlashDevelop. По ссылке кстати приведен совсем куцый фрагмент. У тега [Embed] для шрифтов есть несколько параметров. Почитать про них можно здесь и здесь (англ.)
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:56. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|