De component TextArea gebruiken

De component TextArea is een omslag voor het object TextField van ActionScript. Met de component TextArea kunt u tekst weergeven en tevens tekstinvoer bewerken en ontvangen wanneer de eigenschap editable op true is ingesteld. De component kan meerdere tekstregels weergeven of ontvangen en zorgt bij lange tekstregels voor tekstomloop wanneer de eigenschap wordWrap op true is ingesteld. Met de eigenschap restrict kunt u de tekens die de gebruiker kan gebruiken, beperken en met maxChars kunt u het maximum aantal tekens opgeven dat kan worden ingevoerd. Wanneer de tekst de horizontale of verticale grenzen van het tekstgebied overschrijdt, worden automatisch horizontale en verticale schuifbalken weergegeven, tenzij de bijbehorende eigenschappen horizontalScrollPolicy en verticalScrollPolicy op off zijn ingesteld.

U kunt een component TextArea gebruiken wanneer u een tekstveld met meerdere regels nodig hebt. U kunt een component TextArea bijvoorbeeld gebruiken als opmerkingenveld in een formulier. U zou een listener kunnen instellen die controleert of het veld leeg is wanneer de gebruiker het veld met Tab verlaat. Die listener zou dan een foutbericht kunnen weergegeven waarin wordt aangegeven dat in het veld een opmerking moet worden ingevoerd.

Gebruik de component TextInput wanneer u een tekstveld voor één regel tekst nodig hebt.

U kunt de stijl textFormat instellen met de methode setStyle() om de stijl te wijzigen van tekst die in een instantie TextArea wordt weergegeven. U kunt de tekst in een component TextArea ook met HTML opmaken door de eigenschap htmlText in ActionScript te gebruiken. Bovendien kunt u de eigenschap displayAsPassword op true instellen om tekst te maskeren met sterretjes. Wanneer u de eigenschap condenseWhite op true instelt, verwijdert Flash extra witruimte in nieuwe tekst als gevolg van spaties, regeleinden, enzovoort. Dit heeft geen effect op tekst die al in het besturingselement staat.

Gebruikersinteractie met de component TextArea

Een component TextArea kan worden in- of uitgeschakeld in een toepassing. In de uitgeschakelde toestand kan de component geen muis- of toetsenbordinvoer ontvangen. Wanneer de component is ingeschakeld, volgt deze dezelfde focus-, selectie- en navigatieregels als een ActionScript-object TextField. Wanneer een instantie TextArea focus heeft, kunt u de volgende toetsen gebruiken om de instantie te beheren:

Toets

Beschrijving

Pijltoetsen

Hiermee wordt het invoegpunt binnen de tekst omhoog, omlaag, naar links of naar rechts verplaatst (wanneer de tekst bewerkbaar is).

PageDown

Hiermee wordt het invoegpunt naar het einde van de tekst verplaatst (wanneer de tekst bewerkbaar is).

PageUp

Hiermee wordt het invoegpunt naar het begin van de tekst verplaatst (wanneer de tekst bewerkbaar is).

Shift+Tab

Hiermee wordt de focus naar het vorige object in de tablus verplaatst.

Tab

Hiermee wordt de focus naar het volgende object in de tablus verplaatst.

Zie de klasse FocusManager in de Naslaggids voor ActionScript 3.0 voor Adobe Flash Professional CS5 en Werken met FocusManager voor meer informatie over focusbeheer.

Parameters van de component TextArea

U kunt in Eigenschapcontrole of Componentcontrole de volgende ontwerpparameters instellen voor elke instantie van de component TextArea: condenseWhite , editable , hortizontalScrollPolicy , maxChars , restrict , text , verticalScrollPolicy en wordwrap . Elk van deze parameters heeft een bijbehorende ActionScript-eigenschap met dezelfde naam. Zie de klasse TextArea in de Naslaggids voor ActionScript 3.0 voor Adobe Flash Professional CS5 voor informatie over de mogelijk waarden voor deze parameters.

Een live voorvertoning van elke instantie TextArea geeft direct wijzigingen weer in parameters in Eigenschapcontrole of Componentcontrole tijdens het ontwerpen. Wanneer een schuifbalk nodig is, wordt deze wel in de live voorvertoning weergegeven maar werkt deze niet. In de live voorvertoning is tekst niet selecteerbaar en u kunt in de componentinstantie in het werkgebied geen tekst invoeren.

U kunt ActionScript-code schrijven om deze en aanvullende opties voor de component TextArea te beheren met de eigenschappen, methoden en gebeurtenissen ervan. Zie de klasse TextArea in de Naslaggids voor ActionScript 3.0 voor Adobe Flash Professional CS5 voor meer informatie.

Een toepassing met de component TextArea maken

De volgende procedure laat zien hoe u een component TextArea tijdens het ontwerpen aan een toepassing kunt toevoegen. In het voorbeeld wordt een gebeurtenishandler focusOut op de instantie TextArea ingesteld. Die controleert of de gebruiker iets in het tekstgebied typt voordat de focus aan een ander deel van de interface wordt gegeven.

  1. Maak een nieuw Flash-document (ActionScript 3.0).

  2. Sleep een component TextArea van het deelvenster Componenten naar het werkgebied en geef deze de instantienaam aTa . Laat de parameters op de standaardinstellingen staan.

  3. Sleep een tweede component TextArea van het deelvenster Componenten naar het werkgebied, plaats deze onder de eerste en geef de component de instantienaam bTa . Laat de parameters op de standaardinstellingen staan.

  4. Open het deelvenster Handelingen, selecteer frame 1 van de hoofdtijdlijn en voeg de volgende ActionScript-code toe:

    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(); 
    }

    In dit voorbeeld wordt het aantal tekens dat in het tekstgebied aTa kan worden ingevoerd, beperkt tot kleine letters, komma’s, apostrofs en spaties. Bovendien worden gebeurtenishandlers voor de gebeurtenissen change , KEY_FOCUS_CHANGE en MOUSE_FOCUS_CHANGE op het tekstgebied aTa ingesteld. De functie changeHandler() zorgt dat de tekst die in het tekstgebied aTa wordt ingevoerd, automatisch in het tekstgebied bTa wordt weergegeven door aTa.text aan bTa.text toe te wijzen bij elke gebeurtenis change . De functie k_m_fHandler() voor de gebeurtenissen KEY_FOCUS_CHANGE en MOUSE_FOCUS_CHANGE zorgt dat de gebruiker niet met Tab naar het volgende veld kan gaan zonder eerst tekst in te voeren. Dit wordt bewerkstelligd door het standaardgedrag te voorkomen.

  5. Selecteer Besturing > Film testen.

    Wanneer u op Tab drukt om de focus naar het tweede tekstgebied te verplaatsen zonder tekst in te voeren, wordt een foutbericht weergegeven en keert de focus terug naar het eerste tekstgebied. Terwijl u in het eerste tekstgebied tekst invoert, wordt deze in het tweede tekstgebied weergegeven.

Een instantie TextArea met ActionScript maken

In het volgende voorbeeld wordt met ActionScript een component TextArea gemaakt. De eigenschap condenseWhite wordt op true ingesteld om witruimte te verkleinen en aan de eigenschap htmlTex t wordt tekst toegewezen om de attributen voor HTML-tekstopmaak te kunnen gebruiken.

  1. Maak een nieuw Flash-document (ActionScript 3.0).

  2. Sleep de component TextArea naar het deelvenster Bibliotheek.

  3. Open het deelvenster Handelingen, selecteer frame 1 van de hoofdtijdlijn en voeg de volgende ActionScript-code toe:

    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);

    In dit voorbeeld wordt de eigenschap htmlText gebruikt om de HTML-attributen vet en onderstreept op een tekstblok toe te passen en dit in het tekstgebied a_ta weer te geven. Bovendien wordt de eigenschap condenseWhite op true ingesteld om de witruimte binnen het tekstblok te verkleinen. De methode setSize() stelt de hoogte en de breedte van het tekstgebied in en de methode move() stelt de positie ervan in. De methode addChild() voegt de instantie TextArea aan het werkgebied toe.

  4. Selecteer Besturing > Film testen.