Korzystanie ze składnika TextArea

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.

  1. Utwórz nowy dokument Flash (ActionScript 3.0).

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  1. Utwórz nowy dokument Flash (ActionScript 3.0).

  2. Przeciągnij składnik TextArea do panelu Biblioteka.

  3. 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.

  4. Wybierz polecenie Sterowanie > Testuj film.