|
Компонент TextArea является обложкой для встроенного объекта ActionScript TextField. Компонент TextArea можно использовать для отображения текста, а также для редактирования и получения введенного текста, если свойство
editable
имеет значение
true
. Компонент может отображать или получать многострочный текст и переносить строки, если свойство
wordWrap
имеет значение
true
. С помощью свойства
restrict
можно ограничить символы, которые может ввести пользователь, а свойство
maxChars
позволяет указать максимально допустимое количество символов. Если текст выходит за рамки горизонтальных или вертикальных границ области текста, автоматически появляются полосы прокрутки, если связанным с ними свойствам
horizontalScrollPolicy
и
verticalScrollPolicy
не задано значение
off
.
Компонент TextArea можно использовать, когда требуется добавить многострочное текстовое поле. Например, можно использовать компонент TextArea в качестве поля для комментария в форме. Можно настроить прослушиватель событий, проверяющий наличие текста в поле, когда пользователь покидает его с помощью клавиши Tab. Прослушиватель может показать сообщение об ошибке, указывая, что в поле необходимо ввести комментарий.
Если требуется однострочное текстовое поле, используйте компонент TextInput.
Можно задать свойство
textFormat
с помощью метода
setStyle()
, чтобы изменить стиль текста, отображаемого в экземпляре TextArea. Компонент TextArea можно форматировать и с помощью HTML, используя свойство
htmlText
в ActionScript. А чтобы замаскировать текст звездочками, можно задать свойству
displayAsPassword
значение
true
. Если задать свойству
condenseWhite
значение
true
, Flash убирает лишнее пространство между символами в новом тексте, возникшее в результате использования пробелов, разрыва строки и т.д. Это свойство не действует на текст, уже имеющийся в элементе управления.
Взаимодействие пользователей с компонентом TextArea
Компонент TextArea можно включить или выключить в приложении. В отключенном состоянии TextArea не реагирует на мышь или клавиатуру. Включенный компонент следует тем же правилам получения фокуса, выделения и навигации, что и объект TextField в ActionScript. Когда экземпляр TextArea получает фокус, им можно управлять с помощью следующих клавиш.
|
Клавиша
|
Описание
|
|
Клавиши со стрелками
|
Перемещают точку вставки вверх, вниз, влево или вправо, если текст является редактируемым.
|
|
Page Down
|
Перемещает точку вставки в конец текста, если он является редактируемым.
|
|
Page Up
|
Перемещает точку вставки в начало текста, если он является редактируемым.
|
|
Shift+Tab
|
Перемещает фокус к предыдущему объекту в порядке табуляции.
|
|
Табуляция
|
Перемещает фокус к следующему объекту в порядке табуляции.
|
Дополнительные сведения об управлении фокусом см. в описании класса FocusManager в
справочнике ActionScript® 3.0
для Adobe® Flash® Professional CS5
и разделе «
Работа с FocusManager
».
Параметры компонента TextArea
В Инспекторе свойств или Инспекторе компонентов можно задать следующие параметры разработки для каждого экземпляра компонента TextArea:
condenseWhite
,
editable
,
hortizontalScrollPolicy
,
maxChars
,
restrict
,
text
,
verticalScrollPolicy
и
wordwrap
. Каждый из этих параметров имеет соответствующее свойство ActionScript с тем же именем. Сведения о возможных значениях этих параметров см. в описании класса TextArea в
справочнике ActionScript® 3.0
для Adobe® Flash® Professional CS5
.
Интерактивный просмотр каждого элемента TextArea отражает изменения, которые были внесены в параметры в Инспекторе свойств или Инспекторе компонентов во время разработки. Если требуется полоса прокрутки, она отображается в интерактивном просмотре, но не работает. В интерактивном просмотре текст не выделяется. Кроме того, нельзя вводить текст в экземпляре компонента в рабочей области.
Можно создать код ActionScript для управления этими и дополнительными параметрами компонента TextArea с помощью его свойств, методов и событий. Дополнительные сведения см. в описании класса TextArea в
справочнике ActionScript® 3.0
для Adobe® Flash® Professional CS5
.
Создание приложения с компонентом TextArea
Ниже описывается процедура добавления компонента TextArea в приложение в ходе разработки. В примере создается обработчик события
focusOut
для экземпляра TextArea, который проверяет, сделал ли пользователь ввод в текстовую область, прежде чем перевести фокус на другой компонент интерфейса.
-
Создайте новый документ Flash (ActionScript 3.0).
-
Перетащите компонент TextArea с панели «Компоненты» в рабочую область и присвойте ему имя экземпляра
aTa
. Оставьте значения параметров, используемые по умолчанию.
-
Перетащите второй компонент TextArea с панели «Компоненты» в рабочую область, поместите его под первым и присвойте ему имя экземпляра
bTa
. Оставьте значения параметров, используемые по умолчанию.
-
Откройте панель «Действия», выберите «Кадр 1» на главной временной шкале и введите следующий код ActionScript.
import flash.events.FocusEvent;
aTa.restrict = "a-z,'\" \"";
aTa.addEventListener(Event.CHANGE,changeHandler);
aTa.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, k_m_fHandler);
aTa.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, k_m_fHandler);
function changeHandler(ch_evt:Event):void {
bTa.text = aTa.text;
}
function k_m_fHandler(kmf_event:FocusEvent):void {
kmf_event.preventDefault();
}
В этом примере ограничиваются символы, которые можно ввести в текстовую область
aTa
: разрешается использовать только символы нижнего регистра, запятую, апостроф и пробелы. Также создаются обработчики для событий
change
,
KEY_FOCUS_CHANGE
и
MOUSE_FOCUS_CHANGE
для текстовой области
aTa
. Функция
changeHandler()
автоматически отображает текст, введенный в текстовой области
aTa
, в области
bTa
, присваивая свойство
aTa.text
в качестве значения для
bTa.text
при получении каждого события
change
. Функция
k_m_fHandler()
для событий
KEY_FOCUS_CHANGE
и
MOUSE_FOCUS_CHANGE
запрещает перевод фокуса в следующее поле при нажатии клавиши Tab, если не введен текст в текущее поле. Это достигается путем предотвращения поведения по умолчанию.
-
Выберите «Управление» > «Тестировать ролик».
Если нажать клавишу Tab, чтобы перевести фокус на вторую текстовую область, не введя текст в первую, появится сообщение об ошибке, а фокус вернется в первую текстовую область. По мере ввода текста в первую текстовую область, он будет дублироваться во второй области.
Создание компонента TextArea с помощью ActionScript
В следующем примере компонент TextArea создается с помощью ActionScript. Свойству
condenseWhite
задается значение
true
, чтобы сокращать расстояние между символами. Свойству
htmlText
назначается текст, чтобы можно было использовать атрибуты форматирования текста HTML.
-
Создайте новый документ Flash (ActionScript 3.0).
-
Перетащите компонент TextArea на панель «Библиотека».
-
Откройте панель «Действия», выберите «Кадр 1» на главной временной шкале и введите следующий код ActionScript.
import fl.controls.TextArea;
var aTa:TextArea = new TextArea();
aTa.move(100,100);
aTa.setSize(200, 200);
aTa.condenseWhite = true;
aTa.htmlText = '<b>Lorem ipsum dolor</b> sit amet, consectetuer adipiscing elit. <u>Vivamus quis nisl vel tortor nonummy vulputate.</u> Quisque sit amet eros sed purus euismod tempor. Morbi tempor. <font color="#FF0000">Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.</font> Curabitur diam. Suspendisse at purus in ipsum volutpat viverra. Nulla pellentesque libero id libero.';
addChild(aTa);
В этом примере используется свойство
htmlText
для применения атрибутов HTML для полужирного и подчеркнутого начертания к блоку текста, который отображается в текстовой области
a_ta
. Кроме того, свойству
condenseWhite
задается значение
true
, чтобы уменьшить расстояние между символами в текстовом блоке. Метод
setSize()
задает высоту и ширину текстовой области, а метод
move()
задает ее местоположение. Метод
addChild()
добавляет экземпляр TextArea в рабочую область.
-
Выберите «Управление» > «Тестировать ролик».
|
|
|