Опубликован: 23.12.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 1:

Введение

Лекция 1: 123456789101112 || Лекция 2 >

Текстовые поля

Какая программа может обойтись без вывода текста?

Во Flash MX существует один-единственный контрол (элемент управления), позволяющий выводить (и вводить) текст, который также используется всеми стандартными компонентами Flash MX, и не предусмотрено никакой возможности (в том числе программной) вывести текст, минуя текстовые поля (разве что, скомпоновав его из картинок). Правда, создавать текстовые поля можно не только "вручную", но и программно (о чем мы поговорим позже, в третьей лекции).

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


Статические текстовые поля

Статические текстовые поля предназначены для помещения надписей (не меняющихся во флэш-ролике ). Чтобы сделать поле статическим, выберите Static Text в выпадающем списке левой части панели Properties.


У статических полей доступны некоторые настройки формата, которые недоступны ни у каких других текстовых полей, например, позиция (индекс, степень), кернинг. Текст в статических полях по умолчанию отображается со сглаживанием (если не включать галочку Use Device Fonts ). Нужно учитывать, что сглаживание, которое делает Флэш МХ, рассчитано на графику, а не на текст, поэтому текст без использования Флэш-сглаживания выглядит лучше. (Но если вы применяете экзотические фонты, возможно, лучше все-таки смириться со сглаживанием, поскольку у пользователя на машине может не оказаться нужного фонта, а так Флэш заранее преобразует нужные символы в кривые и выведет все правильно). Также имейте в виду, что при редактировании текст всегда показывается в виде, сглаженном средой Флэш МХ, и только после запуска ролика может быть показан системными фонтами (если вы установили такой режим).

Нужно упомянуть еще одну вещь (она относится к текстовым полям любых видов, не только статическим ). Изначально базовой платформой для системы Флэш была платформа Apple Macintosh. Это привело к тому, что при расчете фактического размера знаков (глифов) в шрифте данного размера в качестве разрешения экрана по умолчанию используется 72 dpi (72 точки на дюйм - стандартное разрешение в операционных системах для Macintosh до появления Mac OS X). Это же разрешение считается стандартным типографским разрешением, и исходя из него вычисляется размер типографской точки. В Windows же принято другое разрешение по умолчанию: 96 dpi. Поэтому в Windows типографская точка обычно занимает в среднем 4/3 пикселя (чтобы 72 точки по-прежнему составляли дюйм, то есть 96 пикселей на Windows-машине). Так ведет себя, например, Microsoft Word. Но во Флэше, который использует стандартное для Macintosh разрешение 72 dpi, один типографский пункт соответствует одному пикселю (а не одному и одной трети). Из-за этого "мельчают" и изображаемые с помощью Флэш шрифты, и 12-й шрифт в Microsoft Word (имеющий размер 12*4/3 = 16 пикселей) выглядит как 16-й шрифт той же гарнитуры во Флэше.

Динамические текстовые поля

Динамические поля предназначены для отображения текста, изменяющегося во время проигрывания ролика. Для включения такого режима выберите Dynamic Text (вместо Static Text ) в выпадающем списке левой части панели Properties. Чтобы изменить значение текстового поля, можно использовать два подхода:

  • связать текстовое поле с переменной и программно изменить значение переменной (переменная задается в поле Var панели Properties). Например: v = "new text", если v указано в поле Var. Переменная должна быть создана в том же клипе, в котором лежит текстовое поле.
  • программно изменить значение свойства text текстового поля. Например, myTextField.text = "some value". Здесь myTextField - это имя текстового поля.

Текст в динамических текстовых полях отображается либо системным, либо встраиваемым шрифтом. Учтите, что, в отличие от статического текста, нужно предпринять специальные меры, чтобы все необходимые вам символы встраиваемого шрифта были доступны в нужный момент (текст ведь динамический, и в строке, которую вы демонстрируете, могут появиться знаки, которых там раньше не было). Чтобы настроить встраивание шрифтов, нажмите на кнопку Character панели Properties. Перед вами появится диалоговое окно, в котором вы сможете указать, какие знаки (или, говоря на типографском языке, глифы) из шрифта необходимо встроить. Есть возможность встроить все используемые в шрифте глифы (имеются в виду символы с кодом до 255).

А что, если вы собираетесь заводить текстовые поля программно (для чего служит метод класса MovieClip под названием createTextField )? Можно ли как-то встроить все необходимые шрифты? Для этого вам нужно как минимум завести в библиотеке (с отмеченной галочкой " Export in first frame ") символ, в котором будет динамическое текстовое поле, в котором, в свою очередь, будут помечены для встраивания все необходимые знаки (они же глифы) нужного шрифта. Можно встроить и шрифт целиком, но это существенно увеличивает размер готового ролика. В случае, когда опция " Export in first frame " включена (для ее включения нужно, кстати, отметить и опцию " Export for ActionScript "), можно не вытаскивать на сцену экземпляр данного символа, все встроенные туда глифы автоматически будут встроены в ваш ролик. Более того, если в качестве начального текста вы введете в поле несколько глифов из разных шрифтов и выберете пункт All Characters в диалоге встраивания шрифтов, то будут встроены все шрифты, из которых был введен хотя бы один глиф. Разумеется, полезен этот трюк не только для создаваемых программно текстовых полей (о которых мы еще поговорим в третьей лекции), но и для полей обыкновенных. Поэтому, если вы встроили шрифт (или его часть) в одно текстовое поле, работать он будет во всех полях данного ролика. Наконец, отметим, что создание статического поля с набором глифов из некоторого шрифта с точки зрения встраивания эквивалентно указанию для встраивания (в соответствующем диалоге) именно данных конкретных глифов. Конечно, чтобы встраивание произошло, в этом статическом поле должны использоваться именно встраиваемые фонты.

При работе с экзотическими шрифтами возникает также следующая проблема: предположим, вам необходимо подобрать шрифты для большого количества текстовых полей. И быстро поменять их все сразу, если понадобится сменить стиль оформления. Все это действительно можно сделать. Откройте панель библиотеки символов ( Ctrl+L ), в правом верхнем ее углу, на серой строке заголовка, находится кнопка открывания меню. Выбираете пункт New Font и в открывшемся меню указываете нужный фонт (а заодно вводите псевдоним, под которым вы будете его использовать, например MyFont ). Если вы теперь создадите текстовое поле, то в выпадающем списке доступных шрифтов вы увидите и надпись MyFont (помеченную звездочкой - это должно напоминать вам о том, что данный шрифт является псевдонимом, определенным в библиотеке). Теперь, меняя в свойствах символа MyFont соответствующий ему шрифт, вы одновременно меняете шрифт во всех полях, в которых установлен шрифт MyFont (скорее всего, вам надо будет перевести фокус ввода на рабочую область, чтобы произошла перерисовка текста в текстовых полях). Но все это не значит, что после этого вы можете сохранить ваш *.fla-файл и переносить его на другую машину вместе с фонтом. Описанный нами механизм не сохраняет фонт внутрь *.fla-файла, он всего лишь делает псевдоним, и только.

Лекция 1: 123456789101112 || Лекция 2 >
алексеи федорович
алексеи федорович
Беларусь, рогачёв
Тамара Ионова
Тамара Ионова
Россия, Нижний Новгород, НГПУ, 2009