Pakiet | flash.events |
Klasa | public class TextEvent |
Dziedziczenie | TextEvent Event Object |
Podklasy | DataEvent, ErrorEvent, IMEEvent |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
TextEvent.LINK
i TextEvent.TEXT_INPUT
.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
bubbles : Boolean [tylko do odczytu]
Określa, czy zdarzenie może przechodzić fazę propagacji. | Event | ||
cancelable : Boolean [tylko do odczytu]
Wskazuje, czy można uniemożliwić operacje skojarzone ze zdarzeniem. | Event | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
currentTarget : Object [tylko do odczytu]
Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. | Event | ||
eventPhase : uint [tylko do odczytu]
Bieżąca faza przepływu zdarzeń. | Event | ||
target : Object [tylko do odczytu]
Miejsce docelowe zdarzenia. | Event | ||
text : String
W przypadku zdarzenia textInput jest to znak lub sekwencja znaków wprowadzonych przez użytkownika. | TextEvent | ||
type : String [tylko do odczytu]
Typ zdarzenia. | Event |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Tworzy obiekt Event zawierający informacje o zdarzeniach związanych z tekstem. | TextEvent | ||
[przesłanianie]
Tworzy kopię obiektu TextEvent i ustawia wartości poszczególnych właściwości zgodnie z właściwościami oryginału. | TextEvent | ||
Funkcja narzędziowa umożliwiająca implementację metody toString() w niestandardowych klasach Event w języku ActionScript 3.0. | Event | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Sprawdza, czy w odniesieniu do tego zdarzenia wywołano metodę preventDefault(). | Event | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Anuluje domyślne ustawienia zdarzenia, o ile zachowanie to może być anulowane. | Event | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Zapobiega przetwarzaniu wszelkich detektorów zdarzeń w węźle bieżącym i węzłach następujących po nim. | Event | ||
Zapobiega przetwarzaniu wszelkich detektorów zdarzeń w węzłach następujących po węźle bieżącym w przepływie zdarzeń. | Event | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
[przesłanianie]
Zwraca ciąg znaków, który zawiera wszystkie właściwości obiektu TextEvent. | TextEvent | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object |
Stała | Zdefiniowane przez | ||
---|---|---|---|
LINK : String = "link" [statyczny]
Definiuje wartość właściwości tupe obiektu zdarzenia link. | TextEvent | ||
TEXT_INPUT : String = "textInput" [statyczny]
Definiuje wartość właściwości type obiektu zdarzenia textInput. | TextEvent |
text | właściwość |
text:String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
W przypadku zdarzenia textInput
jest to znak lub sekwencja znaków wprowadzonych przez użytkownika. W przypadku zdarzenia link
jest to tekst atrybutu event
atrybutu href
znacznika <a>
.
Implementacja
public function get text():String
public function set text(value:String):void
Przykład ( Sposób korzystania z tego przykładu )
link
, gdy użytkownik kliknie tekst hiperłącza:
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 | () | Konstruktor |
public function TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tworzy obiekt Event zawierający informacje o zdarzeniach związanych z tekstem. Obiekty Event są przekazywane jako parametry do detektorów zdarzeń.
Parametrytype:String — Typ zdarzenia. Detektory zdarzeń mogą uzyskiwać dostęp do tej informacji za pośrednictwem dziedziczonej właściwości type . Możliwe wartości to: TextEvent.LINK i TextEvent.TEXT_INPUT .
| |
bubbles:Boolean (default = false ) — Określa, czy obiekt Event uczestniczy w fazie propagacji przepływu zdarzeń. Detektory zdarzeń mogą uzyskiwać dostęp do tej informacji za pośrednictwem dziedziczonej właściwości bubbles .
| |
cancelable:Boolean (default = false ) — Określa, czy obiekt Event może zostać anulowany. Detektory zdarzeń mogą uzyskiwać dostęp do tej informacji za pośrednictwem dziedziczonej właściwości cancelable .
| |
text:String (default = " ") — Jeden lub wiele znaków tekstu wprowadzonych przez użytkownika. Detektory zdarzeń mogą uzyskiwać dostęp do tej informacji za pośrednictwem właściwości text .
|
Powiązane elementy interfejsu API
clone | () | metoda |
override public function clone():Event
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tworzy kopię obiektu TextEvent i ustawia wartości poszczególnych właściwości zgodnie z właściwościami oryginału.
ZwracaEvent — Nowy obiekt TextEvent z wartościami właściwości zgodnymi z oryginałem.
|
toString | () | metoda |
override public function toString():String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca ciąg znaków, który zawiera wszystkie właściwości obiektu TextEvent. Format ciągu znaków jest następujący:
[TextEvent type=wartość bubbles=wartość cancelable=wartość text=wartość]
String — Ciąg znaków, który zawiera wszystkie właściwości obiektu TextEvent.
|
LINK | Stała |
public static const LINK:String = "link"
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Definiuje wartość właściwości type
obiektu zdarzenia link
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | true |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Pole tekstowe zawierające kliknięte hiperłącze. Obiekt target nie zawsze jest obiektem na liście wyświetlania, która zarejestrowała detektor zdarzeń. Właściwość currentTarget umożliwia uzyskanie dostępu do obiektu na liście wyświetlania, który obecnie przetwarza zdarzenie. |
text | Pozostała część adresu URL po ciągu "event:". |
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
Tworzone jest pole tekstowe, w którym, za pośrednictwem właściwości htmlText
, zostaje umieszczony ciąg znaków w formacie HTML. Łącza są podkreślone, aby ułatwić ich rozpoznanie użytkownikowi. (W programie Adobe Flash Player kształt wskaźnika myszy zmienia się tylko wtedy, gdy wskaźnik znajduje się nad łączem). Aby kliknięcie łącza przez użytkownika na pewno wywoływało metodę w kodzie ActionScript, adres URL łącza rozpoczyna się od ciągu znaków "event:"
, a ponadto dodawany jest detektor zdarzeń TextEvent.LINK
.
Metoda linkHandler()
wywoływana po kliknięciu łącza obsługuje wszystkie zdarzenia związane z łączem w polu tekstowym. Pierwsza instrukcja sprawdza właściwość text
zdarzenia, która zawiera pozostałą część adresu URL po ciągu znaków "event:"
. Jeśli użytkownik kliknął łącze systemu operacyjnego, jest kierowany do odpowiedniej witryny sieci Web na podstawie nazwy obecnie używanego systemu operacyjnego pobranej z właściwości systemowej Capabilities.os
. W przeciwnym razie pod polem tekstowym rysowany jest okrąg o wybranym promieniu, przekazanym we właściwości text
. Za każdym razem, gdy użytkownik kliknie łącze promienia, poprzednio narysowany okrąg jest czyszczony i rysowany jest nowy czerwony okrąg o wybranym promieniu.
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 | Stała |
public static const TEXT_INPUT:String = "textInput"
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Definiuje wartość właściwości type
obiektu zdarzenia textInput
.
Uwaga: To zdarzenie nie jest wywoływane dla klawiszy Delete ani Backspace.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | true |
cancelable | true ; w celu anulowania zachowania domyślnego należy wywołać metodę preventDefault() . |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Pole tekstowe, do którego wprowadzane są znaki. Obiekt target nie zawsze jest obiektem na liście wyświetlania, która zarejestrowała detektor zdarzeń. Właściwość currentTarget umożliwia uzyskanie dostępu do obiektu na liście wyświetlania, który obecnie przetwarza zdarzenie. |
text | Znak lub sekwencja znaków wprowadzonych przez użytkownika. |
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
Tworzone są trzy pola tekstowe przeznaczone na wstępne instrukcje, dane wprowadzone przez użytkownika oraz komunikaty ostrzegawcze (o błędach). Dodawany jest detektor zdarzeń, które reaguje na wprowadzenie tekstu przez użytkownika, wywołując metodę textInputHandler()
. (Za każdym razem, gdy użytkownik wprowadzi tekst, wywoływane jest zdarzenie TextEvent.TEXT_INPUT
.
Uwaga: Zdarzenia tekstowe są wywoływane, gdy użytkownik wprowadza znaki, a nie w reakcji na naciskanie klawiszy, np. Backspace. Aby przechwytywać wszystkie zdarzenia pochodzące z klawiatury należy użyć detektora zdarzenia KeyboardEvent
).
Metoda textInputHandler()
steruje wprowadzaniem danych i obsługuje zdarzenia z nim związane. Metoda preventDefault()
używana jest po to, aby zapobiec natychmiastowemu wyświetlaniu tekstu w wejściowym polu tekstowym w programie Adobe Flash Player. Za aktualizację pola odpowiedzialna jest aplikacja. Aby cofnąć wykonaną przez użytkownika operację usunięcia lub zmodyfikowania już wprowadzonych znaków (ciąg znaków result
), zawartość pola tekstowego jest ponownie przypisywana do ciągu result
, gdy użytkownik wprowadza nowe znaki. Ponadto, aby program działał spójnie z punktu widzenia użytkownika, metoda setSelection()
umieszcza punkt wstawiania (kursor) za ostatnim zaznaczonym znakiem w polu tekstowym.
Pierwsza instrukcja if w metodzie textInputHandler()
sprawdza drugą i piątą pozycję klucza kombinacyjnego, ponieważ na tych pozycjach muszą znajdować się cyfry. Jeśli znaki wprowadzone przez użytkownika są poprawne, wywoływana jest metoda updateCombination()
i do ciągu znaków (result
) zawierającego klucz kombinacyjny dopisywane są wprowadzone znaki. Metoda updateCombination()
przenosi ponadto punkt wstawiania za zaznaczony znak. Po wprowadzeniu siódmego znaku ostatnia instrukcja if w metodzie textInputHandler()
zmienia typ pola tekstowego inputTextField
z INPUT
na DYNAMIC
, co oznacza, że użytkownik nie będzie już miał możliwości wprowadzania lub zmieniania znaków.
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); } } }
- Deklaruje stałe reprezentujące dwa adresy URL, które będą używane później.
- Deklaruje dwie zmienne typu TextField, które będą używane później.
- Konstruktor klasy wywołuje następujące dwie metody:
init()
— inicjuje obiekty TextField i dodaje do nich detektory zdarzeń.draw()
— dodaje obiekty TextField do listy wyświetlania i przypisuje tekst, który ma być wyświetlany.
- Detektory zdarzeń
linkHandler()
itextInputHandler()
reagują na zdarzenia odpowiedniego typu. MetodalinkHandler()
otwiera przeglądarkę sieci Web (jeśli nie jest jeszcze otwarta) i powoduje przejście pod kliknięty adres URL. MetodatextInputHandler()
wyświetla informację za każdym razem, gdy w skojarzonym polu tekstowym zostanie naciśnięty klawisz.
Uwaga: Domena przedstawiona w tym przykładzie jest fikcyjna, a ciąg znaków [yourDomain]
należy zastąpić nazwą prawdziwej domeny.
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, 12:06 PM Z