Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Embedded fonts Flash CS3 проблема (http://www.flasher.ru/forum/showthread.php?t=95496)

AlexFomin 07.05.2007 12:52

Embedded fonts Flash CS3 проблема
 
Подскажите плз кто знает по поводу следующей ситуации:
Есть проект в Flash CS3, в нем присутствует главный FLA файл(editor.fla), в нем используется шрифт "MarkerFeltThin" (шрифт внедрен в swf что подтверждается в Size Report). так же есть класс для собственной кнопки SBut.as. Кнопка в какой-то момент создается в editor.fla путем создания экземпляра кнопки SBut, в качестве шрифта используемого для надписи на кнопке пытаюсь применять тот шрифт "MarkerFeltThin" что внедрен в editor.swf. Если шрифт в классе кнопки делать embedFonts = false, то надпись есть (системным шрифтом), а если embedFonts = true, то надписи нет.

так вот вопрос в том как же в данном случае работать с шрифтами чтобы на кнопке отображался произвольный шрифт используемый в главном FLA?
в документации не смог найти решения:confused:

код создания экземпляра кнопки:

Код:

var addFileBut:SBut = new SBut(250, 300, 140, 30, "LABEL");
код конструктора кнопки:
Код:

public function SBut(_xpos:uint, _ypos:uint, _w:uint, _h:uint, _lab:String) {
                       
        var myFmt:TextFormat = new TextFormat();
        myFmt.font = "MarkerFeltThin";
        myFmt.color = 0x00FF00;
        myFmt.size = 14;
                       
        var mySprite:Sprite = new Sprite();
        mySprite.x = _xpos;
        mySprite.y = _ypos;
        mySprite.graphics.beginFill(0xFF0000);
        mySprite.graphics.drawRoundRect(0, 0, _w, _h, cornerRadius);
        mySprite.graphics.endFill();
                       
        var butLabel:TextField = new TextField();
        butLabel.type = TextFieldType.DYNAMIC;
        butLabel.embedFonts = false;
        butLabel.width = _w;
        butLabel.selectable = false;
        butLabel.text = _lab;
        butLabel.defaultTextFormat = myFmt;
                       
        mySprite.addChild(butLabel);
       
        var mySpriteHit:Sprite = new Sprite();
        mySpriteHit.graphics.beginFill(0xFFFFFF,0);
        mySpriteHit.graphics.lineStyle(borderSize, borderColor);
        mySpriteHit.graphics.drawRoundRect(0, 0, _w, _h, cornerRadius);
        mySpriteHit.graphics.endFill();
        mySpriteHit.buttonMode = true;
        mySpriteHit.addEventListener(MouseEvent.CLICK, function сlickPrint(event:Event):void {
        var imgUpl:ImageUploader = new ImageUploader();
        });
        mySprite.addChild(mySpriteHit);
        Stage.root.addChild(mySprite);
}


etc 07.05.2007 13:01

Шрифт имеет имя font1, а в TextFormat уже «MarkerFeltThin». Для начала в том же Size report нужно выяснить, как называется шрифт и использовать это название.

AlexFomin 07.05.2007 13:29

Сейчас поправил текст сообщения, шрифты в реальности соответствовали друг другу, это только тут для примера решил использовать font1. т.е. теперь окончательный вид проблемы.

etc 07.05.2007 13:34

А каким образом встроен шрифт в editor.swf?

AlexFomin 07.05.2007 13:53

Встраивать пытался двумя способами:
1.на сцене присутствует динамическое текстовое поле у которого задан указанный шрифт и включено Embed... для нужных наборов символов
2.в библиотеке создавался новый шрифт, указывался данный и в параметрах Linkage указывалось Export for Action Script + Export in first frame(тут кстати не понял что собственно делать с классом шрифта)

итоговый результат один и тот же, только в size report вижу что в первом случае внедряются выбранные глифы, а во втором явно большее количество, если не использовать ни то ни другое, то в size report видны только те глифы что используются в текстовых полях типа static.

etc 07.05.2007 14:00

Показывайте исходник.

AlexFomin 07.05.2007 15:34

Вложений: 1
Вот тут упрощенная версия исходника, сам fla + классы, но прицип остается:
Вложение 17208

в fla файле шрифт в библиотеке и текстовое поле для Embedding'а(сейчас ничего не внедряется, поскольку работает механизм с шрифтом в библиотеке).

etc 07.05.2007 15:41

1) Шрифт в либе удалить;
2) Выбрать в окне Embed необходимые диапазоны символов (у меня ничего не было выбрано);
3) Переставить строки местами:
Код:

                        butLabel.text                                = _lab;
                        butLabel.defaultTextFormat        = myFmt;

Ведь сначала нужно задать дефолтный стиль, а уже потом текст присваивать.

AlexFomin 07.05.2007 15:52

Спасибо! с присвоением формата теперь понятно:) сорри за отнятное время:rolleyes:


Часовой пояс GMT +4, время: 10:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.