Задание и извлечение текста поля

Имеется 3 основных способа задать текст, который должен отображаться в текстовом поле:

• Если известно, какой текст должен находиться в поле в начале проигрывания фильма (это может быть, например, значение по умолчанию некоторого параметра или исходный счет в игре — «0:0»), то его можно ввести вручную непосредственно при создании поля.

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

this.createTextField("pole", 0, 200, 200, 100, 30); // Создаем текстовое
// поле
var info:String = null; // Создаем переменную поля
pole.variable = "info"; // Связываем поле с переменной
this.onMouseMove = function():Void {
// Заменяем старые координаты новыми
info = "X="+_xmouse+", "+"Y="+_ymouse;
updateAfterEvent();
};

• Во Flash MX 2004 тексту поля соответствует свойство text класса TextField. Его переопределение имеет такой же эффект, как и изменение значения переменной поля:

this.сreateTextField("pole", 0, 200, 200, 100, 30);
pole.text="Привет"; // В поле отображается: Привет!

Значение, присваиваемое переменной поля или свойству text, необязательно должно быть строкой.


В принципе, оно может быть и числом, и ссылкой на клип, и даже массивом. Однако так как текст может базироваться только на строках, то перед визуализацией присвоенная величина будет преобразована к типу String. Правила, по которым данная трансформация осуществляется, описаны в главе 2. Например:

this.createTextField("pole", 0, 200, 200, 200, 30);
pole.text=new Dated; // Отображается: Fri Nov 28 05:28:13 GMT+0200 2003

Извлечь текст, отображаемый текстовым полем, можно, прочитав значение переменной поля или же свойства text. Пример:

this.createTextField("pole", 0, 200, 100, 200, 30); // Создаем новое
// текстовое поле
pole.type = "input"; // Делаем поле полем ввода
pole.text = "Введите любой текст"; // Задаем исходный текст
// При изменении текста в поле выводим его в Output
pole.onChanged = function():Void {
trace(pole.text);
};

При изменении пользователем текста в поле ввода автоматически переопределяются переменная поля и свойство text. Причем присваиваемое им значение всегда имеет строковый тип. Это нужно учитывать, если задаваемая в поле характеристика является числом.


В этом случае перед тем, как применить ее в сценарии, необходимо произвести ее приведение к типу number, используя функцию Number().

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

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

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

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