Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.05.2007, 12:52
AlexFomin вне форума Посмотреть профиль Отправить личное сообщение для AlexFomin Найти все сообщения от AlexFomin
  № 1  
Ответить с цитированием
AlexFomin
 
Аватар для AlexFomin

Регистрация: Aug 2005
Сообщений: 33
Отправить сообщение для AlexFomin с помощью ICQ
Question 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?
в документации не смог найти решения

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

Код:
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);
}


Последний раз редактировалось AlexFomin; 07.05.2007 в 13:30.
Старый 07.05.2007, 13:01
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Шрифт имеет имя font1, а в TextFormat уже «MarkerFeltThin». Для начала в том же Size report нужно выяснить, как называется шрифт и использовать это название.

Старый 07.05.2007, 13:29
AlexFomin вне форума Посмотреть профиль Отправить личное сообщение для AlexFomin Найти все сообщения от AlexFomin
  № 3  
Ответить с цитированием
AlexFomin
 
Аватар для AlexFomin

Регистрация: Aug 2005
Сообщений: 33
Отправить сообщение для AlexFomin с помощью ICQ
Сейчас поправил текст сообщения, шрифты в реальности соответствовали друг другу, это только тут для примера решил использовать font1. т.е. теперь окончательный вид проблемы.

Старый 07.05.2007, 13:34
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А каким образом встроен шрифт в editor.swf?

Старый 07.05.2007, 13:53
AlexFomin вне форума Посмотреть профиль Отправить личное сообщение для AlexFomin Найти все сообщения от AlexFomin
  № 5  
Ответить с цитированием
AlexFomin
 
Аватар для AlexFomin

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

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

Старый 07.05.2007, 14:00
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Показывайте исходник.

Старый 07.05.2007, 15:34
AlexFomin вне форума Посмотреть профиль Отправить личное сообщение для AlexFomin Найти все сообщения от AlexFomin
  № 7  
Ответить с цитированием
AlexFomin
 
Аватар для AlexFomin

Регистрация: Aug 2005
Сообщений: 33
Отправить сообщение для AlexFomin с помощью ICQ
Вот тут упрощенная версия исходника, сам fla + классы, но прицип остается:
embed_fonts.zip

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

Старый 07.05.2007, 15:41
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
1) Шрифт в либе удалить;
2) Выбрать в окне Embed необходимые диапазоны символов (у меня ничего не было выбрано);
3) Переставить строки местами:
Код:
			butLabel.text 				= _lab;
			butLabel.defaultTextFormat	= myFmt;
Ведь сначала нужно задать дефолтный стиль, а уже потом текст присваивать.

Старый 07.05.2007, 15:52
AlexFomin вне форума Посмотреть профиль Отправить личное сообщение для AlexFomin Найти все сообщения от AlexFomin
  № 9  
Ответить с цитированием
AlexFomin
 
Аватар для AlexFomin

Регистрация: Aug 2005
Сообщений: 33
Отправить сообщение для AlexFomin с помощью ICQ
Спасибо! с присвоением формата теперь понятно сорри за отнятное время

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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