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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Mar 2004
Сообщений: 2
По умолчанию embedFonts дико глючит (flash8)

Всем привет.

Делаю графический редактор. Есть несколько swf-файлов с встроенным шрифтами (по шрифту на файл). Алгоритм такой:

1. Юзер помещает в рабочую область объект "текст", редактирует (textField.embedFonts=false, иначе не работает) и выбирает шрифт.

2. Внутрь объекта "текст" подгружается swf с выбранным шрифтом, внутри этого swf создается новый textField.embedFonts=true, dynamic, selectable=false.

Так вот, у этого нового textField текст вылезает вверх за пределы бокса:



Код:
_root.createEmptyMovieClip("swf", 1);

var loader = new MovieClipLoader();
loader.addListener({
	onLoadComplete: function(mc:MovieClip) {
		_root.onSWFLoaded();
	},
});
loader.loadClip("Arial.swf", swf);

function onSWFLoaded() {
	swf.createTextField("txt", this.getNextHighestDepth(), 50, 50, 200, 100);
	swf.txt.border = true;
	swf.txt.embedFonts = true;
	swf.txt.borderColor = 0x000099;
	
	var tf = new TextFormat();
	tf.font = "Arial";
	tf.size = 40;
	tf.color = 0xFF0000;
	swf.txt.text = "Line 1.\nLine 2.";
	swf.txt.setTextFormat(tf);
}
Вылечить сумел, только добавив tf.leading=40 и "\n" в начало строки swf.txt.text:

Код:
	
tf.leading = 40;
swf.txt.text = "\nLine 1.\nLine 2.";


Однако ни в одном из примеров, на которые я равнялся, нет ни намека на такие хаки. В чем может быть дело?

Старый 30.01.2007, 15:13
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
смотри разницу между onLoadComplete и onLoadInit
Код:
_root.createEmptyMovieClip("swf", 1);
var loader = new MovieClipLoader();
loader.addListener(this)
loader.loadClip("Arial.swf", swf);

//function onLoadComplete(){//как ты описал	
function onLoadInit() {//нормально
	swf.createTextField("txt", this.getNextHighestDepth(), 50, 50, 200, 100);
	swf.txt.border = true;
	swf.txt.embedFonts = true;
	swf.txt.borderColor = 0x000099;
	var tf = new TextFormat();
	tf.font = "Arial";
	tf.size = 40;
	tf.color = 0xFF0000;
	swf.txt.text = "Line 1.\nLine 2.";
	swf.txt.setTextFormat(tf);
}

Старый 30.01.2007, 17:12
DmG вне форума Посмотреть профиль Отправить личное сообщение для DmG Найти все сообщения от DmG
  № 3  
Ответить с цитированием
DmG

Регистрация: Mar 2004
Сообщений: 2
Спасибо огромное!

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

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

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


 


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


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