![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 17
|
Требуется в баннер подгружать текст.
Использую динамический текст. Поскольку вертикальное выравнивание отсутствует, придется размеры и позицию высчитывать на лету, соответственно создавать текстовое поле динамически. Ок, но вот какие проблемы: 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. Причина: корректирование |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 17
|
Хм, может в
http://www.flasher.ru/forum/showthre...F2%E5%EA%F1%F2 что-то по существу есть... Посмотрю. Но если у кого дельный совет - прошу! |
|
|||||
|
Ветеран форума
|
Собственно если текст в мувике, то тебе достаточно поставить autoSize и с на основании размеров мувика уже ставить его в нужные координаты ...
__________________
BestMasterиZация |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 17
|
Да фигня на постном масле!
1) почему-то текст мой выводится только в последнем кадре, а в анимации клипа-родителя "не участвует", хотя текстовое поле я создаю в onClipEvent(load) этого клипа 2) к маленьким шрифтам вроде бы сглаженность какая-то применяется, хотя не ахти выглядит. Но у меня должен быть большой шрифт (32-й размер примерно) - и выглядит он совершенно без антиалиаса, хотя antialiasType установлено в "advanced" |
|
|||||
|
Ветеран форума
|
пример в студию ....
__________________
BestMasterиZация |
|
|||||
|
don't panic!
Регистрация: 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); таким образом у тебя текстовому полю будет назначен шрифт, который ты подключил. |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 17
|
Черт, пришлось разбить на 2 файла...
![]() Извините - не влезло в один. Основной код находится внутри MC 'Text animation' Функцию создания текста взял из приведенной мной ранее ссылки, слегка модифицировал. Вообще весь баннер - не мой, поэтому возможно, там кое-что лишнее. Мне лишь надо сделать в нем динамический текст (желательно). Выглядеть оно должно примерно так, как в растеризованных надписях (я их установил в тип 'Guide', чтобы не мешали - в клипе phraseMC. Правда, существует еще и проблема аутлайна... Но это - ладно, что-нибудь придумаю) |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 17
|
Nox Noctis
спасибо за ответ - после обеда прочитаю внимательнее. Но многое из тобой сказанного я использую в своем коде. Однако что-то где-то не так... :-\ Такое впечатление, что autoSize у меня не срабатывает... Кстати, я пробовал и прежде делать поле заранее - чтобы все эти свойства не задавать в коде, но всё - да что-то не то получалось. Кстати, ты говоришь autoSize установить в true. А в доке написано, что оно принимает 3 значения: left, right или center... Неважно - я пробовал и так, и сяк, но у меня всегда текст липнет к левому краю. И еще: почему ты говоришь помещать в первый кадр, а не в onLoad клипа? ------------ Что ж... Придется все модификации (масштабирование, прозрачность) выносить в сам клип... Делать его из нескольких (десятков - в моем случае кол-во известно) кадров. А в первый выносить всю инициализацию - создание текстового поля и т.п. И проигрывать его один раз. Иначе никак ![]() Последний раз редактировалось NAV; 13.12.2005 в 19:31. |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 17
|
Ради Бога - помогите кто-то работающим примером!
С масштабированием текстового поля во времени. А то я сойду с ума Когда я делаю с "готовым" полем, которое затем позиционирую - оно появляется почему-то в странном виде: первая строка мелким шрифтом, вторая - очень крупным... И выравнивание по центру просто игнорируется. Если же создаю поле динамически, в первом кадре мувика - оно вообще не отображается в этом и последующих кадрах: непонятно, почему... |
|
|||||
|
Ветеран форума
|
Тебе всё написали разбирайся
__________________
BestMasterиZация |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|