Пакет | flash.events |
Класс | public class TextEvent |
Наследование | TextEvent Event Object |
Подклассы | DataEvent, ErrorEvent, IMEEvent |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
TextEvent.LINK
и TextEvent.TEXT_INPUT
.
Связанные элементы API
Свойство | Определено | ||
---|---|---|---|
bubbles : Boolean [только для чтения]
Определяет, является ли событие событием восходящей цепочки. | Event | ||
cancelable : Boolean [только для чтения]
Указывает, можно ли предотвратить поведение, связанное с событием. | Event | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
currentTarget : Object [только для чтения]
Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. | Event | ||
eventPhase : uint [только для чтения]
Текущая фаза в потоке событий. | Event | ||
target : Object [только для чтения]
Целевой объект события. | Event | ||
text : String
Для события textInput — введенный пользователем знак или последовательность знаков. | TextEvent | ||
type : String [только для чтения]
Тип события. | Event |
Метод | Определено | ||
---|---|---|---|
Создает объект Event, содержащий данные о событиях text. | TextEvent | ||
[переопределить]
Создает копию объекта TextEvent и задает значение каждого свойства, совпадающее с оригиналом. | TextEvent | ||
Служебная функция для реализации метода toString() в пользовательских классах ActionScript 3.0 Event. | Event | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Проверяет, выполнялся ли для события вызова метода preventDefault(). | Event | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Отменяет поведение по умолчанию для события, если такое поведение можно отменить. | Event | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Отменяет обработку прослушивателей событий в текущем узле, а также во всех узлах, которые следуют в потоке событий за текущим узлом. | Event | ||
Отменяет обработку прослушивателей событий в узлах, которые следуют в потоке событий за текущим узлом. | Event | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
[переопределить]
Возвращает строку, содержащую все свойства объекта TextEvent. | TextEvent | ||
Возвращает элементарное значение заданного объекта. | Object |
Константа | Определено | ||
---|---|---|---|
LINK : String = "link" [статические]
Задает значение свойства type для объекта события link. | TextEvent | ||
TEXT_INPUT : String = "textInput" [статические]
Задает значение свойства type для объекта события textInput. | TextEvent |
text | свойство |
text:String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Для события textInput
— введенный пользователем знак или последовательность знаков. Для события link
— текст атрибута event
атрибута href
тега <a>
.
Реализация
public function get text():String
public function set text(value:String):void
Пример ( Использование этого примера )
link
, когда пользователь щелкает гипертекстовую ссылку.
import flash.text.TextField; import flash.events.TextEvent; var tf:TextField = new TextField(); tf.htmlText = "<a href='event:myEvent'>Click Me.</a>"; tf.addEventListener("link", clickHandler); addChild(tf); function clickHandler(e:TextEvent):void { trace(e.type); // link trace(e.text); // myEvent }
TextEvent | () | Конструктор |
public function TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Создает объект Event, содержащий данные о событиях text. Объекты Event передаются прослушивателям событий в качестве параметров.
Параметрыtype:String — Тип события. Прослушиватели событий могут получать эту информацию через унаследованное свойство type . Возможные значения: TextEvent.LINK и TextEvent.TEXT_INPUT .
| |
bubbles:Boolean (default = false ) — Определяет, участвует ли объект Event в фазе восходящей цепочки потока событий. Прослушиватели событий могут получать эту информацию через унаследованное свойство bubbles .
| |
cancelable:Boolean (default = false ) — Определяет, можно ли отменить объект Event. Прослушиватели событий могут получать эту информацию через унаследованное свойство cancelable .
| |
text:String (default = " ") — Один или несколько символов текста, введенные пользователем. Прослушиватели событий могут получать эту информацию через свойство text .
|
Связанные элементы API
clone | () | метод |
override public function clone():Event
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Создает копию объекта TextEvent и задает значение каждого свойства, совпадающее с оригиналом.
ВозвращаетEvent — Новый объект TextEvent, значения свойств которого соответствуют значениям оригинала.
|
toString | () | метод |
override public function toString():String
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает строку, содержащую все свойства объекта TextEvent. Строка имеет следующий формат:
[TextEvent type=value bubbles=value cancelable=value text=value]
String — Строка, содержащая все свойства объекта TextEvent.
|
LINK | Константа |
public static const LINK:String = "link"
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Задает значение свойства type
для объекта события link
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | true |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Текстовое поле, содержащее гиперссылку, по которой щелкнул пользователь. Свойство target не всегда является объектом из списка отображения, для которого зарегистрирован прослушиватель событий. Используйте свойство currentTarget для обращения к объекту в списке отображения, обрабатывающему событие в данный момент. |
text | Оставшаяся часть URL-адреса после event: |
Связанные элементы API
Пример ( Использование этого примера )
Создается текстовое поле, а его содержимому задается вид строки в формате HTML с помощью свойства htmlText
. Ссылки подчеркиваются, чтобы пользователю было проще их найти. (Adobe Flash Player изменяет указатель мыши только после того, как он наводится на ссылку.) Чтобы щелчок пользователя гарантированно вызвал метод ActionScript, URL-адрес ссылки начинается со строки event:
, а для события TextEvent.LINK
добавляется прослушиватель.
Метод linkHandler()
, запускаемый после щелчка пользователя по ссылке, управляет всеми событиями ссылок для текстового поля. Первая инструкция if проверяет свойство text
события, которое содержит остальную часть URL-адрес после строки event:
. Если пользователь щелкнул ссылку для операционной системы, имя его текущей операционной системы, полученное из свойства системы Capabilities.os
, используется для перехода на заданный web-сайт. В противном случае под текстовым полем рисуется круг с использованием радиуса выбранного размера, передаваемого свойством text
. Каждый раз, когда пользователь нажимает на ссылку радиуса, нарисованный ранее круг удаляется и отображается новый красный круг с радиусом выбранного размера.
package { import flash.display.Sprite; import flash.events.TextEvent; import flash.errors.IOError; import flash.events.IOErrorEvent; import flash.system.Capabilities; import flash.net.navigateToURL; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.display.Shape; import flash.display.Graphics; public class TextEvent_LINKExample extends Sprite { private var myCircle:Shape = new Shape(); public function TextEvent_LINKExample() { var myTextField:TextField = new TextField(); myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.multiline = true; myTextField.background = true; myTextField.htmlText = "Draw a circle with the radius of <u><a href=\"event:20\">20 pixels</a></u>.<br>" + "Draw a circle with the radius of <u><a href=\"event:50\">50 pixels</a></u>.<br><br>" + "<u><a href=\"event:os\">Learn about your operating system.</a></u><br>"; myTextField.addEventListener(TextEvent.LINK, linkHandler); this.addChild(myTextField); this.addChild(myCircle); } private function linkHandler(e:TextEvent):void { var osString:String = Capabilities.os; if(e.text == "os") { if (osString.search(/Windows/) != -1 ){ navigateToURL(new URLRequest("http://www.microsoft.com/"), "_self"); }else if (osString.search(/Mac/) != -1 ) { navigateToURL(new URLRequest("http://www.apple.com/"), "_self"); } else if (osString.search(/linux/i)!= -1) { navigateToURL(new URLRequest("http://www.tldp.org/"), "_self"); } } else { myCircle.graphics.clear(); myCircle.graphics.beginFill(0xFF0000); myCircle.graphics.drawCircle(100, 150, Number(e.text)); myCircle.graphics.endFill(); } } } }
TEXT_INPUT | Константа |
public static const TEXT_INPUT:String = "textInput"
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Задает значение свойства type
для объекта события textInput
.
Примечание. Это событие не отправляется для клавиш Delete или Backspace.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | true |
cancelable | true ; вызовите метод preventDefault() для отмены поведения по умолчанию. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Текстовое поле, в которое вводятся символы. Свойство target не всегда является объектом из списка отображения, для которого зарегистрирован прослушиватель событий. Используйте свойство currentTarget для обращения к объекту в списке отображения, обрабатывающему событие в данный момент. |
text | Символ или последовательность символов, введенных пользователем. |
Связанные элементы API
Пример ( Использование этого примера )
Создается три текстовых поля для предварительных инструкций, пользовательского ввода и предупреждения (ошибки) Добавляется прослушиватель событий, который реагирует на ввод текста пользователем, запуская метод textInputHandler()
. Каждый раз, когда пользователь вводит текст, отправляется событие TextEvent.TEXT_INPUT
.
Примечание. События текста отправляются, когда пользователь вводит символы, и не отправляются в ответ на любой ввод с клавиатуры, например на нажатие клавиши «Назад». Чтобы фиксировать все события клавиатуры, необходимо использовать прослушиватель событий KeyboardEvent
.)
Метод textInputHandler()
контролирует пользовательский ввод и управляет им. Метод preventDefault()
используется для того, чтобы проигрыватель Adobe Flash Player не отображал текст в поле ввода текста сразу. За обновление поля отвечает приложение. Чтобы отменить удаление или изменение уже введенных пользователем символов (строка result
, содержимое поля ввода текста переназначается строке result
, когда пользователь вводит новые символы. Также для обеспечения согласованности функций, метод setSelection()
помещает точку вставки (знак «^») после последнего выделенного символа в текстовом поле.
Первая инструкция if в методе textInputHandler()
проверяет ввод для второй и пятой позиции символов в комбинации ключа, в которых должны быть цифры. Если пользователь ввел правильные символы, вызывается метод updateCombination()
, и в строку комбинации ключа (result
) добавляется ввод пользователя. Метод updateCombination()
также помещает точку вставки после выделенного символа.. После ввода седьмого символа последняя инструкция if метода textInputHandler()
изменяет тип текстового поля inputTextField
с INPUT
на DYNAMIC
: это значит, что пользователь больше не может вводить и изменять символы.
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.events.TextEvent; public class TextEvent_TEXT_INPUTExample extends Sprite { private var instructionTextField:TextField = new TextField(); private var inputTextField:TextField = new TextField(); private var warningTextField:TextField = new TextField(); private var result:String = ""; public function TextEvent_TEXT_INPUTExample() { instructionTextField.x = 10; instructionTextField.y = 10; instructionTextField.background = true; instructionTextField.autoSize = TextFieldAutoSize.LEFT; instructionTextField.text = "Please enter a value in the format A#AA#AA,\n" + "where 'A' represents a letter and '#' represents a number.\n" + "(Note that once you input a character you can't change it.)" ; inputTextField.x = 10; inputTextField.y = 70; inputTextField.height = 20; inputTextField.width = 75; inputTextField.background = true; inputTextField.border = true; inputTextField.type = TextFieldType.INPUT; warningTextField.x = 10; warningTextField.y = 100; warningTextField.autoSize = TextFieldAutoSize.LEFT; inputTextField.addEventListener(TextEvent.TEXT_INPUT, textInputHandler); this.addChild(instructionTextField); this.addChild(inputTextField); this.addChild(warningTextField); } private function textInputHandler(event:TextEvent):void { var charExp:RegExp = /[a-zA-z]/; var numExp:RegExp = /[0-9]/; event.preventDefault(); inputTextField.text = result; inputTextField.setSelection(result.length + 1, result.length + 1); if (inputTextField.text.length == 1 || inputTextField.text.length == 4) { if(numExp.test(event.text) == true) { updateCombination(event.text); } else { warningTextField.text = "You need a single digit number."; } }else { if(charExp.test(event.text) == true) { updateCombination(event.text); } else { warningTextField.text = "You need an alphabet character."; } } if(inputTextField.text.length == 7) { inputTextField.type = TextFieldType.DYNAMIC; instructionTextField.text = "CONGRATULATIONS. You've done."; } } private function updateCombination(s:String):void { warningTextField.text = ""; result += s; inputTextField.text = result; inputTextField.setSelection(result.length + 1, result.length + 1); } } }
- Объявляются константы для двух URL-адресов, которые будут использоваться в дальнейшем.
- Объявляются две переменные типа TextField для использования в дальнейшем.
- Конструктор класса вызывает два следующих метода:
init()
инициализирует объекты TextField и добавляет к ним прослушиватели событий;draw()
добавляет объекты TextField в список отображения и назначает им текст для отображения.
- Прослушиватели
linkHandler()
иtextInputHandler()
реагируют на соответствующие события. МетодlinkHandler()
открывает web-браузер, если это еще не сделано и открывает URL-адрес, по которому щелкнул пользователь. МетодtextInputHandler()
просто отображает информацию при каждом нажатии клавиши в соответствующем текстовом поле.
Примечание. В этом примере используется вымышленный домен, [yourDomain]
необходимо заменить существующим доменом.
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; import flash.text.TextFieldAutoSize; import flash.events.TextEvent; import flash.events.TextEvent; import flash.net.URLRequest; import flash.net.navigateToURL; public class TextEventExample extends Sprite { private const DOMAIN_1_URL:String = "http://www.[yourDomain].com"; private const DOMAIN_2_URL:String = "http://www.[yourDomain].com"; private var linkTxt:TextField; private var textInputTxt:TextField; public function TextEventExample() { init(); draw(); } private function init():void { linkTxt = new TextField(); linkTxt.addEventListener(TextEvent.LINK, linkHandler); linkTxt.height = 60; linkTxt.autoSize = TextFieldAutoSize.LEFT; linkTxt.multiline = true; textInputTxt = new TextField(); textInputTxt.addEventListener(TextEvent.TEXT_INPUT, textInputHandler); textInputTxt.type = TextFieldType.INPUT; textInputTxt.background = true; textInputTxt.border = true; textInputTxt.height = 20; } private function draw():void { addChild(linkTxt); linkTxt.htmlText += createLink(DOMAIN_1_URL, "Click to go to first domain"); linkTxt.htmlText += "<br />"; linkTxt.htmlText += createLink(DOMAIN_2_URL, "Click to go to second domain"); addChild(textInputTxt); textInputTxt.y = linkTxt.height; textInputTxt.text = "type here"; } private function createLink(url:String, text:String):String { var link:String = ""; link += "<font color='#0000FF'>"; link += "<u>"; link += "<b>"; link += "<a href='event:" + url + "'>" + text + "</a>"; link += "</b>"; link += "</u>"; link += "</font>"; return link; } private function linkHandler(e:TextEvent):void { var request:URLRequest = new URLRequest(e.text); navigateToURL(request); } private function textInputHandler(e:TextEvent):void { trace(">> ============================"); trace(">> e.text: " + e.text); trace(">> textInputTxt.text: " + textInputTxt.text); } } }
Tue Jun 12 2018, 11:34 AM Z