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

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

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

Регистрация: Dec 2005
Сообщений: 17
Thumbs down Динамический текст: выравнивание по вертикали

Требуется в баннер подгружать текст.

Использую динамический текст. Поскольку вертикальное выравнивание отсутствует, придется размеры и позицию высчитывать на лету, соответственно создавать текстовое поле динамически. Ок, но вот какие проблемы:

1) используется embedded-фонт. Когда я создаю объект TextFormat и применяю его к создаваемому текстовому полю - никакой текст не отображается ВООБЩЕ (если свойство эмбэда ставлю в false - отображается, но все равно проблемы: полностью игнорируются установки TextFormat - текст рисуется черным мелким Times New Roman).
Выравнивание (autoSize = "center") тоже игнорируется...
Где-то слышал, что нужно TextFormat создавать как глобальную переменную: пробовал - не помогло.

2) советуют использовать getTextExtent, чтобы посчитать ширину и высоту блока, но во-первых - пишут, что в 8-й версии Flash эта фигня deprecated, а взамен - ничего нет... кроме того - оно используется для простого текста, а у меня - HTML. Поэтому мне приходится считать количество <BR>, прибавлять единицу, чтобы было кол-во строк. И считать кол-во символов в самой длинной строке, чтобы потом умножить на среднюю ширину символа... Бред. Но кто предложит нормальное решение?? Ей-Богу, странно: задача-то - элементарная! Просто я не знаю, сколько строк может получиться в задаваемом тексте: 1, 2, 3...

P.S. При всём при том к этому тексту у меня должны применяться легкие эффекты: масштабирование, изменение прозрачности... Поэтому я засунул его в movieclip, к которому эти эффекты и применяю. Но всё нормально работало лишь когда текстовое поле было создано "на сцене"... появилась динамика - появились проблемы...


Последний раз редактировалось NAV; 12.12.2005 в 19:57. Причина: корректирование
Старый 12.12.2005, 20:08
NAV вне форума Посмотреть профиль Отправить личное сообщение для NAV Найти все сообщения от NAV
  № 2  
Ответить с цитированием
NAV
 
Аватар для NAV

Регистрация: Dec 2005
Сообщений: 17
Хм, может в
http://www.flasher.ru/forum/showthre...F2%E5%EA%F1%F2
что-то по существу есть...
Посмотрю.
Но если у кого дельный совет - прошу!

Старый 12.12.2005, 22:47
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 3  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Собственно если текст в мувике, то тебе достаточно поставить autoSize и с на основании размеров мувика уже ставить его в нужные координаты ...
__________________
BestMasterиZация

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

Регистрация: Dec 2005
Сообщений: 17
По умолчанию Не получается как положено!

Да фигня на постном масле!

1) почему-то текст мой выводится только в последнем кадре, а в анимации клипа-родителя "не участвует", хотя текстовое поле я создаю в onClipEvent(load) этого клипа
2) к маленьким шрифтам вроде бы сглаженность какая-то применяется, хотя не ахти выглядит. Но у меня должен быть большой шрифт (32-й размер примерно) - и выглядит он совершенно без антиалиаса, хотя antialiasType установлено в "advanced"

Старый 13.12.2005, 14:46
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 5  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
пример в студию ....
__________________
BestMasterиZация

Старый 13.12.2005, 15:00
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Ответить с цитированием
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
честно говоря, не понимаю, что мешает создать текстовое поле заранее.

создай его необходимой ширины, подключи шрифт обычным способом через настройки в редакторе, а в скрипте напиши только TF.autoSize... Кузен сказал же уже. :)

если ты всё же хочешь создать его динамически - придется немного повозиться.

чтобы меньше было шансов ошибиться, я бы сделал так:
1. создать пустое динамическое текстовое поле в первом кадре ролика
2. подключить в нем нужный шрифт
3. обозвать поле как-нибудь типа embed_plain_txt
4. если нужны болд и италик - следует то же проделать и для них, потому что флэш эти начертания считает разными шрифтами.
т.е. сделать embed_bold_txt, embed_italic_txt, embed_bolditalic_txt по необходимости...
5. в первом же кадре написать:

embed_bold_txt._visible = false;
embed_italic_txt._visible = false;
embed_bolditalic_txt._visible = false;
embed_txt._visible = false;
format = embed_txt.getTextFormat();

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

далее, ты создаешь текстовое поле скриптом:

this.createTextField("TF",0,0,0,100,0);
TF.autoSize = true;
TF.html = true;
TF.setNewTextFormat(format);

таким образом у тебя текстовому полю будет назначен шрифт, который ты подключил.

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

Регистрация: Dec 2005
Сообщений: 17
По умолчанию autoSize...

Nox Noctis
спасибо за ответ - после обеда прочитаю внимательнее. Но многое из тобой сказанного я использую в своем коде. Однако что-то где-то не так... :-\

Такое впечатление, что autoSize у меня не срабатывает...
Кстати, я пробовал и прежде делать поле заранее - чтобы все эти свойства не задавать в коде, но всё - да что-то не то получалось.

Кстати, ты говоришь autoSize установить в true.
А в доке написано, что оно принимает 3 значения: left, right или center...
Неважно - я пробовал и так, и сяк, но у меня всегда текст липнет к левому краю.

И еще: почему ты говоришь помещать в первый кадр, а не в onLoad клипа?

------------
Что ж... Придется все модификации (масштабирование, прозрачность) выносить в сам клип... Делать его из нескольких (десятков - в моем случае кол-во известно) кадров. А в первый выносить всю инициализацию - создание текстового поля и т.п. И проигрывать его один раз. Иначе никак


Последний раз редактировалось NAV; 13.12.2005 в 19:31.
Старый 13.12.2005, 15:38
NAV вне форума Посмотреть профиль Отправить личное сообщение для NAV Найти все сообщения от NAV
  № 8  
Ответить с цитированием
NAV
 
Аватар для NAV

Регистрация: Dec 2005
Сообщений: 17
Черт, пришлось разбить на 2 файла...
Извините - не влезло в один.

Основной код находится внутри MC
'Text animation'

Функцию создания текста взял из приведенной мной ранее ссылки, слегка модифицировал.

Вообще весь баннер - не мой, поэтому возможно, там кое-что лишнее.
Мне лишь надо сделать в нем динамический текст (желательно).
Выглядеть оно должно примерно так, как в растеризованных надписях (я их установил в тип 'Guide', чтобы не мешали - в клипе phraseMC. Правда, существует еще и проблема аутлайна... Но это - ладно, что-нибудь придумаю)
Вложения
Тип файла: rar hmm.part1.rar (87.9 Кб, 42 просмотров)
Тип файла: rar hmm.part2.rar (13.7 Кб, 62 просмотров)

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

Регистрация: Dec 2005
Сообщений: 17
Ради Бога - помогите кто-то работающим примером!
С масштабированием текстового поля во времени. А то я сойду с ума

Когда я делаю с "готовым" полем, которое затем позиционирую - оно появляется почему-то в странном виде: первая строка мелким шрифтом, вторая - очень крупным... И выравнивание по центру просто игнорируется.

Если же создаю поле динамически, в первом кадре мувика - оно вообще не отображается в этом и последующих кадрах: непонятно, почему...

Старый 13.12.2005, 21:06
KUZEN вне форума Посмотреть профиль Отправить личное сообщение для KUZEN Посетить домашнюю страницу KUZEN Найти все сообщения от KUZEN
  № 10  
Ответить с цитированием
KUZEN
Ветеран форума
 
Аватар для KUZEN

Регистрация: Jun 2005
Адрес: MOSCOW
Сообщений: 6,852
Отправить сообщение для KUZEN с помощью ICQ Отправить сообщение для KUZEN с помощью Yahoo Отправить сообщение для KUZEN с помощью Skype™
Тебе всё написали разбирайся
__________________
BestMasterиZация

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

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

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


 


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


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