|
Składnik TextArea jest opakowaniem rodzimego obiektu TextField w języku ActionScript. Składnik TextArea może być używany w celu wyświetlania tekstu oraz w celu edytowania i odbierania danych tekstowych, jeśli dla właściwości
editable
ustawiona jest wartość
true
. Składnik może wyświetlać lub odbierać wiele wierszy tekstu i zawijać długie wiersze tekstu, pod warunkiem że dla właściwości
wordWrap
ustawiona jest wartość
true
. Właściwość
restrict
umożliwia ograniczenie znaków, jakie użytkownik może wprowadzać, a właściwość
maxChars
umożliwia określenie maksymalnej liczby znaków, jaką może wprowadzić użytkownik. Jeśli tekst przekracza poziome i pionowe krawędzie obszaru tekstowego, automatycznie pojawiają się poziome i pionowe paski przewijania, chyba że dla skojarzonych z nimi właściwości
horizontalScrollPolicy
i
verticalScrollPolicy
ustawiono wartość
off
.
Składnik TextArea może być używany wszędzie tam, gdzie wymagane jest wielowierszowe pole tekstowe. Na przykład: składnik TextArea może być używany jako pole komentarza w formularzu. Istnieje możliwość skonfigurowania detektora, który będzie sprawdzał, czy pole jest puste, gdy użytkownik wybierze inne pole za pomocą klawisza Tab. Ten detektor może wyświetlać komunikat o błędzie, który będzie informował o konieczności wprowadzenia komentarza do pola.
Jeśli potrzebne jest jednowierszowe pole tekstowe, należy skorzystać ze składnika TextInput.
Za pomocą metody
setStyle()
można ustawić styl
textFormat
w celu zmiany stylu tekstu, jaki pojawi się w instancji TextArea. Składnik TextArea można również sformatować w kodzie HTML, korzystając z właściwości
htmlText
języka ActionScript. Ustawienie dla właściwości
displayAsPassword
wartości
true
sprawia, że tekst jest wyświetlany w postaci gwiazdek. Jeśli dla właściwości
condenseWhite
zostanie ustawiona wartość
true
, program Flash usunie z nowego tekstu białe znaki tj. spacje, znaki nowych linii itp. Właściwość nie ma wpływu na tekst, który znajduje się już w elemencie sterowania.
Posługiwanie się składnikiem TextArea
Składnik TextArea może być włączony lub wyłączony. W stanie disabled składnik TextArea nie odbiera danych wprowadzanych za pomocą klawiatury lub myszy. Po włączeniu (stan enabled) dla tego składnika obowiązują te same reguły aktywacji, zaznaczania i nawigacji, które obowiązują dla obiektu TextField języka ActionScript. Po aktywowaniu instancji TextArea można nią sterować za pomocą następujących klawiszy:
|
Klucz
|
Opis
|
|
Klawisze strzałek
|
Przesuwanie punktu wstawiania w górę, w dół, w prawo lub w lewo w obszarze tekstu, pod warunkiem że tekst jest dostępny do edycji.
|
|
Page Down
|
Przesuwa punkt wstawiania do końca tekstu, pod warunkiem że tekst jest dostępny do edycji.
|
|
Page Up
|
Przesuwa punkt wstawiania na początek tekstu, pod warunkiem że tekst jest dostępny do edycji.
|
|
Shift+Tab
|
Przesuwa aktywność do poprzedniego obiektu w pętli tabulacji.
|
|
Karta
|
Przesuwa aktywność do następnego obiektu w pętli tabulacji.
|
Więcej informacji na temat sterowania aktywnością zawiera opis klasy FocusManager w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
oraz w sekcji
Praca z klasą FocusManager
.
Parametry składnika TextArea
Dla każdej instancji składnika TextArea można w Inspektorze właściwości lub w Inspektorze składników ustawić następujące parametry tworzenia treści:
condenseWhite
,
editable
,
hortizontalScrollPolicy
,
maxChars
,
restrict
,
text
,
verticalScrollPolicy
i
wordwrap
. Dla każdego z tych parametrów istnieje odpowiednia właściwość ActionScript o takiej samej nazwie. Więcej informacji na temat możliwych wartości tych parametrów zawiera opis klasy TextArea w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Podgląd aktywny każdej instancji TextArea odzwierciedla zmiany dokonane w parametrach w Inspektorze właściwości oraz Inspektorze składników podczas tworzenia. Jeśli wymagany jest pasek przewijania, jest widoczny w podglądzie aktywnym, ale nie działa. W podglądzie aktywnym tekst nie może być zaznaczany i nie można wprowadzać tekstu do instancji składnika na stole montażowym.
Istnieje możliwość napisania kodu ActionScript w celu kontrolowania tych i innych opcji dla składnika TextArea z wykorzystaniem jego właściwości, metod i zdarzeń. Więcej informacji zawiera opis klasy TextArea w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Tworzenie aplikacji ze składnikiem TextArea
Poniższa procedura wyjaśnia jak podczas tworzenia dodać składnik TextArea do aplikacji. Przykład przedstawia konfigurację modułu obsługi zdarzeń
focusOut
w instancji TextArea — ten moduł sprawdza, czy przed aktywacją innej części interfejsu użytkownik wpisał tekst do pola tekstowego.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik TextArea z panelu Składniki na stół montażowy i nadaj nazwę instancji
aTa
. Pozostaw dla parametrów ustawienia domyślne.
-
Przeciągnij drugi składnik TextArea z panelu Składniki do stołu montażowego, umieść go poniżej pierwszego składnika i nadaj jego instancji nazwę
bTa
. Pozostaw dla parametrów ustawienia domyślne.
-
Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod 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();
}
W tym przykładzie znaki, jakie można wprowadzać do pola tekstowego
aTa
, zostały ograniczone do małych liter, przecinków, apostrofów i spacji. Przykład konfiguruje również moduły obsługi zdarzeń
change
,
KEY_FOCUS_CHANGE
oraz
MOUSE_FOCUS_CHANGE
w obszarze tekstowym
aTa
. Funkcja
changeHandler()
sprawia, że tekst wprowadzony do obszaru tekstowego
aTa
automatycznie pojawia się w obszarze
bTa
— dzieje się tak, dlatego że przy każdym zdarzeniu
change
wartość
aTa.text
zostaje przypisana do wartości
bTa.text
. Funkcja
k_m_fHandler()
dla zdarzeń
KEY_FOCUS_CHANGE
i
MOUSE_FOCUS_CHANGE
uniemożliwia naciśnięcie klawisza Tab w celu przejścia do kolejnego pola przed wprowadzeniem tekstu. Funkcja blokuje działanie domyślne.
-
Wybierz polecenie Sterowanie > Testuj film.
Jeśli klawisz Tab zostanie naciśnięty w celu przejścia do kolejnego obszaru tekstowego przed wprowadzeniem tekstu, powinien pojawić się komunikat o błędzie, a obszar aktywny powinien powrócić do pierwszego obszaru tekstowego. Podczas wprowadzania tekstu do pierwszego obszaru tekstowego ten sam tekst będzie duplikowany w drugim obszarze tekstowym.
Tworzenie instancji składnika TextArea przy użyciu kodu ActionScript
W poniższym przykładzie przedstawiono tworzenie składnika TextArea za pomocą języka ActionScript. W przykładzie dla właściwości
condenseWhite
zostaje ustawiona wartość
true
, co sprawia, że znaki białe będą zagęszczane, a ponadto do właściwości
htmlText
zostaje przypisany tekst, co umożliwia korzystanie z atrybutów HTML do formatowania tekstu.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik TextArea do panelu Biblioteka.
-
Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod 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);
W tym przykładzie użyto właściwości
htmlText
w celu zastosowania atrybutów pogrubienia i podkreślenia HTML do bloku tekstu i wyświetlenia tego tekstu w obszarze tekstowym
a_ta
. W tym przykładzie dla właściwości
condenseWhite
ustawiono wartość
true
w celu zagęszczenia znaków białych w bloku tekstu. Metoda
setSize()
ustawia wysokość i szerokość obszaru tekstowego, a metoda
move()
ustawia położenie tego obszaru. Metoda
addChild()
dodaje instancję TextArea do stołu montażowego.
-
Wybierz polecenie Sterowanie > Testuj film.
|
|
|