![]() |
|
||||||||||
|
|||||
|
Подскажите плз кто знает по поводу следующей ситуации:
Есть проект в Flash CS3, в нем присутствует главный FLA файл(editor.fla), в нем используется шрифт "MarkerFeltThin" (шрифт внедрен в swf что подтверждается в Size Report). так же есть класс для собственной кнопки SBut.as. Кнопка в какой-то момент создается в editor.fla путем создания экземпляра кнопки SBut, в качестве шрифта используемого для надписи на кнопке пытаюсь применять тот шрифт "MarkerFeltThin" что внедрен в editor.swf. Если шрифт в классе кнопки делать embedFonts = false, то надпись есть (системным шрифтом), а если embedFonts = true, то надписи нет. так вот вопрос в том как же в данном случае работать с шрифтами чтобы на кнопке отображался произвольный шрифт используемый в главном FLA? в документации не смог найти решения код создания экземпляра кнопки: код конструктора кнопки: 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);
}
Последний раз редактировалось AlexFomin; 07.05.2007 в 13:30. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Шрифт имеет имя font1, а в TextFormat уже «MarkerFeltThin». Для начала в том же Size report нужно выяснить, как называется шрифт и использовать это название.
|
|
|||||
|
Сейчас поправил текст сообщения, шрифты в реальности соответствовали друг другу, это только тут для примера решил использовать font1. т.е. теперь окончательный вид проблемы.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А каким образом встроен шрифт в editor.swf?
|
|
|||||
|
Встраивать пытался двумя способами:
1.на сцене присутствует динамическое текстовое поле у которого задан указанный шрифт и включено Embed... для нужных наборов символов 2.в библиотеке создавался новый шрифт, указывался данный и в параметрах Linkage указывалось Export for Action Script + Export in first frame(тут кстати не понял что собственно делать с классом шрифта) итоговый результат один и тот же, только в size report вижу что в первом случае внедряются выбранные глифы, а во втором явно большее количество, если не использовать ни то ни другое, то в size report видны только те глифы что используются в текстовых полях типа static. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Показывайте исходник.
|
|
|||||
|
Вот тут упрощенная версия исходника, сам fla + классы, но прицип остается:
embed_fonts.zip в fla файле шрифт в библиотеке и текстовое поле для Embedding'а(сейчас ничего не внедряется, поскольку работает механизм с шрифтом в библиотеке). |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
1) Шрифт в либе удалить;
2) Выбрать в окне Embed необходимые диапазоны символов (у меня ничего не было выбрано); 3) Переставить строки местами: Ведь сначала нужно задать дефолтный стиль, а уже потом текст присваивать. |
|
|||||
|
Спасибо! с присвоением формата теперь понятно
сорри за отнятное время![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|