Создание текстовых полей

Начиная со Flash MX текстовые поля можно создавать как вручную, при помощи инструмента Text, так и программно, применяя специальные элементы ActionScript. Естественно, это касается только полей ввода и динамических полей, которые являются именуемыми элементами. Статичное поле добавить в фильм программными средствами невозможно. Ввиду серьезных различий подходы к созданию текстовых полей мы рассмотрим по отдельности.

Создание текстовых полей при помощи инструмента Text
Чтобы создать текстовое поле, необходимо выполнить следующую последовательность действий:

• На панели Tools выбрать инструмент Text (или просто нажать клавишу <Т>).

• Щелкнуть по рабочей области. В результате на ней появится текстовое поле с принятыми по умолчанию установками. Если они не приемлемы, то:

o чтобы поменять тип поля, обратитесь к расположенному в левой части Инспектора
Свойств меню

o изменить размеры текстового поля можно, протаскивая специальный маркер в виде белого квадратика, размещенный и его углу (само поле при этом должно располагаться в фокусе инструмента Text). У статичных полей маркер отображается в верхнем правом, а у полей типа Dynamic и Input — в нижнем правом углу.

• Типичной ошибкой новичков при задании размеров поля является использование для этого инструмента Free Transform.


При этом происходит изменение масштаба поля, но не его размера;

o позиция текстового поля изменяется точно так же, как и любых других объектов, при помощи инструмента Arrow;

o такие характеристики поля, как размер или тип шрифта, его цвет, начертание и размер, а также многие другие опции задаются при помощи соответствующих настроек Инспектора Свойств поля или аналогичных свойств классов TextField и TextFormat.

Подробно мы о них поговорим ниже.

• В строке ввода Var Инспектора Свойств прописать имя переменной (или свойства), которая будет связана с данным текстовым полем .

• Если какие-то характеристики поля, помимо отображаемого текста, необходимо будет менять программно, дать ему имя. Сделать это можно, как и в случае клипов или кнопок, в поле Instance Name Инспектора Свойств.

• Если текст, который должен будет отображаться в поле непосредственно после запуска фильма, известен, ввести его. Иначе оставить поле пустым.

Переменная поля
Во времена Flash 5 возможности по управлению текстовыми полями были куда более скудными, чем сейчас. Поля типа Input и Dynamic тогда не являлись полноценными объектами, и, как следствие, не могли иметь собственных имен.


Было невозможно динамически изменять характеристики текстовых полей, равно как и программно их создавать. Можно было лишь читать или задавать отображаемый в поле текст, а также прокручивать его. Для этого существовало понятие переменной поля.

Переменная поля создавалась интерпретатором на основании введенного в строку Var идентификатора как свойство той временной диаграммы, на которой текстовое поле располагалось. Хранимое ею значение соответствовало отображаемому в поле тексту, Изменение величины переменной поля моментально сопровождалось заменой этого текста. Наоборот, если пользователь менял текст в поле ввода, то тут же переопределялась величина его переменной. Чтобы извлечь отображаемый в поле текст, достаточно было обратиться к его переменной. Чтобы его заменить, переменную нужно было переопределить. Создать переменную поля как свойство произвольной временной диаграммы или объекта было невозможно: операторы «.» и «[]» при введении их в строку Var вызывали ошибку.

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

// Текст в поле, связанном с переменной pole_var, прокрутится на пять строк
pole_var.scroll+=5;

Однако изменить положение поля или его поворот, подобно тому, как это делается на основании его имени, при помощи переменной поля было невозможно.

Во Flash MX текстовые поля стали такими же полноценными именуемыми объектами, как клипы или кнопки.


Соответственно изменилась и роль переменных полей. Они перестали исполнять функции указателей на текстовые поля, став просто Удобным инструментом для извлечения или замены отображаемой в них информации. Это повлекло за собой ряд изменений. Наиболее существенное из них — переменной поля может являться любое свойство или переменная в фильме.

Единственное условие: на момент инициализации объект, к которому она принадлежит, должен существовать.

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

Переменную поля можно задать или изменить и в процессе проигрывания фильма. Для этого служит свойство variable класса TextField. В качестве значения оно принимает строку с именем переменной или свойства, которую нужно связать с полем.

Например:
// При тестировании этого кода на рабочем поле отобразится: "Привет"
this.createTextField("pole",0,200,200,50,30); // Создаем пустое динамическое
// поле
var per:String = "Привет"; // Объявляем переменную, хранящую необходимый
// текст
pole.variable="per"; // Связываем переменную с полем

Начиная со Flash MX без использования переменных поля вполне можно и обойтись благодаря
наличию свойства text класса TextField..



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Action Script на эту тему:
Автоматическое удаление пробелов. Свойство condenseWhite
Встраивание в фильм целого шрифта
Динамическая замена выделенного текста. Метод replaceSel()
Динамическое задание выделения. Метод setSelection()
Задание и извлечение текста поля

Вернуться в раздел: Action Script / 13. Работа с текстом