Statische tekst wordt alleen met Flash Professional gemaakt. U kunt statische tekst niet programmatisch instantiëren met behulp van ActionScript. Statische tekst is nuttig als de tekst kort is en niet bedoeld is om te worden gewijzigd (zoals bij dynamische tekst mogelijk is). U moet statische tekst zien als een soort grafisch element, zoals een cirkel of vierkant, dat in het werkgebied in Flash Professional wordt getekend. Statische tekst heeft meer beperkingen dan dynamische tekst, maar ActionScript 3.0 biedt u wel de mogelijkheid om de eigenschapwaarden van statische tekst te lezen met behulp van de klasse StaticText. Met de klasse TextSnapshot kunt u ook waarden uit de statische tekst lezen.
Toegang tot statische tekstvelden met de klasse StaticText
U kunt de klasse flash.text.StaticText in het deelvenster Handelingen van Flash Professional gebruiken om te communiceren met een instantie van statische tekst die in het werkgebied is geplaatst. U kunt ook werken in ActionScript-bestanden die communiceren met een SWF-bestand dat statische tekst bevat. In beide gevallen kunt u geen instantie van statische tekst programmatisch instantiëren. Statische tekst wordt met Flash Professional gemaakt.
Als u een verwijzing naar een bestaand statisch tekstveld wilt maken, doorloopt u de items in de weergegeven lijst en wijst u een variabele toe. Bijvoorbeeld:
for (var i = 0; i < this.numChildren; i++) {
var displayitem:DisplayObject = this.getChildAt(i);
if (displayitem instanceof StaticText) {
trace("a static text field is item " + i + " on the display list");
var myFieldLabel:StaticText = StaticText(displayitem);
trace("and contains the text: " + myFieldLabel.text);
}
}
Wanneer u een referentie naar een statisch tekstveld hebt, kunt u de eigenschappen van dat veld gebruiken in ActionScript 3.0. De volgende code wordt gekoppeld aan een frame in de tijdlijn en gaat ervan uit dat een variabele met de naam
myFieldLabel
is toegewezen aan een referentie naar statische tekst. Een dynamisch tekstveld
myField
wordt ten opzichte van de waarden
x
en
y
geplaatst van
myFieldLabel
en geeft opnieuw de waarde van
myFieldLabel
weer.
var myField:TextField = new TextField();
addChild(myField);
myField.x = myFieldLabel.x;
myField.y = myFieldLabel.y + 20;
myField.autoSize = TextFieldAutoSize.LEFT;
myField.text = "and " + myFieldLabel.text
De klasse TextSnapshot gebruiken
Als u programmatisch wilt werken met een bestaande instantie van statische tekst, kunt u de klasse flash.text.TextSnapshot gebruiken om met de eigenschap
textSnapshot
van een flash.display.DisplayObjectContainer te werken. Met andere woorden, u maakt een TextSnapshot-instantie van de eigenschap
DisplayObjectContainer.textSnapshot
. U kunt vervolgens methoden toepassen op die instantie om waarden op te halen of delen van de statische tekst te selecteren.
Plaats bijvoorbeeld een statisch tekstveld dat de tekst 'TextSnapshot Example' bevat op het werkgebied. Voeg de volgende ActionScript toe aan frame 1 van de tijdlijn:
var mySnap:TextSnapshot = this.textSnapshot;
var count:Number = mySnap.charCount;
mySnap.setSelected(0, 4, true);
mySnap.setSelected(1, 2, false);
var myText:String = mySnap.getSelectedText(false);
trace(myText);
De klasse TextSnapshot is handig om tekst uit statische tekstvelden in een geladen SWF-bestand te halen, als u de tekst wilt gebruiken als een waarde in een ander deel van een toepassing.
|
|
|