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

Компонент 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, который проверяет, сделал ли пользователь ввод в текстовую область, прежде чем перевести фокус на другой компонент интерфейса.

  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. Выберите «Управление» > «Тестировать ролик».