Просмотр полной версии : Ни как не могу внедрить шрифт
Здравствуйте, уважаемые форумчане!
Использую Flash 9.
У меня следующая проблема: хочу создать класс, позволяющий динамически создавать разные textField, обладающие набором одинаковых свойств. Не хочу использовать movieClip и вообще как-то привязываться к дизайн-тайм. Хочу чтобы все создавалось в коде...
Я пока в самом начале пути, но у меня никак не получается внедрить шрифт... В AS файле внедрить шрифт не возможно, поэтому пытаюсь как его впихнуть в fla-файл. Но у меня не получается! Пожалуйста, объясните в чем дело... Не ужеле придется по старинке - MovieClip + TextField...
Я в этом деле новичок, поэтому не пинайте меня слишком сильно, если на самом деле все окажется очень просто:)
файл загрузить на форум не удалось, поэтому даю внешнюю ссылку
http://www.vvk80.narod.ru/Files/draft.zip
Заранее спасибо за помощь...
Ну да, по старинке, лежит текстовое поле где-нибудь, с внедренным набором символов…
Ну да, по старинке, лежит текстовое поле где-нибудь, с внедренным набором символов…
Если я правильно понял, надо создавать мувиклип, в нем это текстовое поле (все это в дизайн-тайм)...
Далее надо создавать экземпляры этого мувика столько раз, сколько тебе нужно текстовое поле и обращаться к текстовому полю следующим образом:
movieClipInstance.textFieldInMovieClip.text = "Мой текст, который надо отобразить"...
или надо как-то по-другому...
Но это же неудобно... Сам Adobe рекомендует не использовать MovieClip, если не нужна таймлайн... Специально для этого созданы такие классы как Sprite, Shape и т.д., которые, насколько я знаю, не имеют таймлайн. Используя их можно было бы оптимизировать скорость работы swf (по словам Adobe)...
Хочется все классами описать, чтобы реюзать контент, как в C#...
Неужто нет другого способа... (для Flash 9)?
Заранее спасибо за помощь!
Зачем мувиклип?
Кинуть на сцену где-нибудь за пределами текстовое поле с необходимыми внедренными шрифтами и все.
А в коде уже new TextField(), embedFonts = true и понеслась…
Зачем мувиклип?
Кинуть на сцену где-нибудь за пределами текстовое поле с необходимыми внедренными шрифтами и все.
А в коде уже new TextField(), embedFonts = true и понеслась…
Дико извиняюсь, но у меня не работает :boredom:
Я так и не понял, а объект TextFormat надо создавать? Что указывать в property font? Символ фонта в библиотеке должен лежать?
Зачем мувиклип?
Кинуть на сцену где-нибудь за пределами текстовое поле с необходимыми внедренными шрифтами и все.
А в коде уже new TextField(), embedFonts = true и понеслась…
вот код не работает хоть ты тресни...
myText - это созданный textField за пределами видимости на сцене, шрифт внедрен в него... я забираю его текстформат и пытаюсь присвоить его новому текстфилду - и кукиш не работает...
var newFormat:TextFormat = new TextFormat();
newFormat = myText.getTextFormat();
trace(newFormat.font);
function createBodyText(xCoord:Number, yCoord:Number):void
{
var myLabel:TextField = new TextField();
myLabel.type = TextFieldType.DYNAMIC;
myLabel.multiline = true;
myLabel.selectable = false;
myLabel.embedFonts = true;
myLabel.antiAliasType = AntiAliasType.ADVANCED;
myLabel.autoSize = TextFieldAutoSize.LEFT;
myLabel.x = xCoord;
myLabel.y = yCoord;
myLabel.setTextFormat(newFormat);
myLabel.htmlText = "<br>asfawfa";
rootContainer.addChild(myLabel);
}
createBodyText(20,30);
На сцене, за её пределами необходимо разместить текстовое динамическое поле, с выбранным шрифтом. Нажав на кнопку Embed, необходимо выбрать нужные диапазоны символов для включения. В библиотеке ничего быть не должно.
На сцене, за её пределами необходимо разместить текстовое динамическое поле, с выбранным шрифтом. Нажав на кнопку Embed, необходимо выбрать нужные диапазоны символов для включения. В библиотеке ничего быть не должно.
походе я на пути к решению проблемы:
вместо метода setTextFormat можно использовать свойство defaultTextFormat... вроде заработало, но пока еще полностью не протестировал...
http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=15&catid=288&threadid=1268129&highlight_key=y&keyword1=font
Блин, но какая черт побери между ними разница????
классная рекомендация по теме:
все работает, можно легко использовать внедеренные шрифты
http://blog.illianced.com/2007/09/11/load-fonts-on-the-fly-in-as3/
У меня есть кое что получше (http://etcs.ru/blog/as3/fontloader/).
Если я не ошибаюсь, немного поизвращавшись, можно сделать посимвольное внедрение шрифтов, т.е. внедрять только те символы, которые используются в данном коде. (для хранения каждого символа использовать отдельный swf и, по мере необходимости, подгружать их).
1.Имеет-ли смысл это делать, или-же результат заведомо будет лажовым?
2.Если не внедрить какой-то символ, то он просто-напросто не будет отображаться. Несмотря на то, что flash, насколько я помню, в данном случае, не выдает ошибку, можно-ли ее перехватить?
Это просто не будет работать.
У меня есть кое что получше (http://etcs.ru/blog/as3/fontloader/).
спасибо большое...
еще одно большое спасибо за наглядный пример как правильно писать свои классы и оформлять код...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.