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.
-
Maak een nieuw Flash-document (ActionScript 3.0).
-
Sleep een component TextArea van het deelvenster Componenten naar het werkgebied en geef deze de instantienaam
aTa
. Laat de parameters op de standaardinstellingen staan.
-
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.
-
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.
-
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.
-
Maak een nieuw Flash-document (ActionScript 3.0).
-
Sleep de component TextArea naar het deelvenster Bibliotheek.
-
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.
-
Selecteer Besturing > Film testen.
|
|
|