Главная » ActionScript » Использование компонента TextArea

0

Компонент TextArea является обложкой для объекта TextField в ActionScript. Компонент 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

Перемещает фокус к предыдущему объекту в порядке табуляции.

Tab

Перемещает фокус к следующему объекту в порядке табуляции.

Дополнительные сведения об управлении фокусом см. в описании класса FocusManager в руководствах

Справочник по языку ActionScript 3.0 и компонентам и «Работа с FocusManager» на странице 29.

Параметры компонента TextArea

В Инспекторе свойств или Инспекторе компонентов можно задать следующие параметры разработки для каждого экземпляра TextArea : condenseWhite, editable, hortizontalScrollPolicy, maxChars, restrict, text, verticalScrollPolicy и wordwrap. Каждый из этих параметров имеет соответствующее свойство ActionScript с тем же именем. Сведения о возможных значениях для этих параметров см. в описании класса TextArea в Справочнике по языку ActionScript 3.0 и компонентам.

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

Можно создать код ActionScript для управления этими и дополнительными параметрами компонента TextArea с помощью его свойств, методов и событий. Дополнительные сведения см. в описании класса TextArea в Справочнике по языку ActionScript 3.0 и компонентам.

Создание приложения с компонентом TextArea

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

1   Создайте новый документ Flash (ActionScript 3.0).

2   Перетащите компонент TextArea с панели "Компоненты" в рабочую область и присвойте ему имя экземпляра aTa. Оставьте значения параметров, используемые по умолчанию.

3   Перетащите второй компонент TextArea с панели "Компоненты" в рабочую область, поместите его под первым и присвойте ему имя экземпляра bTa. Оставьте значения параметров, используемые по умолчанию.

4   Откройте панель "Действия", выберите "Кадр 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, если не введен текст в текущее поле. Это достигается путем предотвращения поведения по умолчанию.

5   Выберите "Управление" > "Тестировать ролик".

Если нажать клавишу Tab, чтобы перевести фокус на вторую текстовую область, не введя текст в первую, появится сообщение об ошибке, а фокус вернется в первую текстовую область. По мере ввода текста в первую текстовую область, он будет дублироваться во второй области.

Создание компонента TextArea с помощью ActionScript

В следующем примере компонент TextArea создается с помощью ActionScript. Свойству condenseWhite задается значение true, чтобы сокращать расстояние между символами. Свойству htmlText назначается текст, чтобы можно было использовать атрибуты форматирования текста HTML.

1   Создайте новый документ Flash (ActionScript 3.0).

2   Перетащите компонент TextArea на панель "Библиотека".

3   Откройте панель "Действия", выберите "Кадр 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 в рабочую область.

4   Выберите "Управление" > "Тестировать ролик".

Источник: Использование компонентов ActionScript 3.0 – 2008

По теме:

  • Комментарии