Verwenden von statischem Text

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Statischer Text wird nur in Flash Professional erstellt. Sie können statischen Text nicht im ActionScript-Programmcode instanziieren. Statischer Text ist sinnvoll, wenn es sich um sehr kurzen Text handelt, der sich nicht (wie dynamischer Text) ändern soll. Stellen Sie sich statischen Text als eine Art Grafikelement vor, z. B. ein Kreis oder ein Rechteck, das mit Flash Professional auf der Bühne gezeichnet wird. Zwar unterliegt statischer Text mehr Einschränkungen als dynamischer Text, ActionScript 3.0 unterstützt jedoch die Möglichkeit, die Eigenschaftswerte für statischen Text mithilfe der StaticText-Klasse zu lesen. Darüber hinaus können Sie mit der TextSnapshot-Klasse Werte aus dem statischen Text lesen.

Zugreifen auf statische Textfelder mit der StaticText-Klasse

In der Regel verwenden Sie für die Interaktion mit einer auf der Bühne platzierten statischen Textinstanz die flash.text.StaticText-Klasse im Bedienfeld „Aktionen“ von Flash Professional. Sie können auch ActionScript-Dateien verwenden, die mit einer SWF-Datei interagieren, die statischen Text enthält. In beiden Fällen ist es nicht möglich, eine statische Textinstanz mit Programmanweisungen zu instanziieren. Statischer Text wird in Flash Professional erstellt.

Wenn Sie einen Verweis auf ein vorhandenes statisches Textfeld erstellen möchten, können Sie die Elemente in der Anzeigeliste durchlaufen und ihnen eine Variable zuweisen. Zum Beispiel:

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

Wenn Sie über einen Verweis auf ein statisches Textfeld verfügen, können Sie die Eigenschaften dieses Feldes in ActionScript 3.0 verwenden. Der folgende Code wird mit einem Bild in der Zeitleiste verknüpft und setzt voraus, dass dem Verweis auf den statischen Text eine Variable mit dem Namen myFieldLabel zugewiesen wurde. Ein dynamisches Textfeld mit dem Namen myField wird relativ zum x - und y -Wert von myFieldLabel positioniert und zeigt den Wert von myFieldLabel erneut an.

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

Verwenden der TextSnapshot-Klasse

Wenn Sie eine vorhandene statische Textinstanz im Programmcode verwenden möchten, können Sie mithilfe der flash.text.TextSnapshot-Klasse die textSnapshot -Eigenschaft eines flash.display.DisplayObjectContainer-Objekts auslesen. Anders ausgedrückt, Sie erstellen eine TextSnapshot-Instanz der DisplayObjectContainer.textSnapshot -Eigenschaft. Sie können dann auf diese Instanz Methoden anwenden, um Werte abzurufen oder Teile des statischen Textes auszuwählen.

Platzieren Sie beispielsweise ein statisches Textfeld mit dem Text „TextSnapshot Example“ auf der Bühne. Fügen Sie in Bild 1 in der Zeitleiste den folgenden ActionScript-Code hinzu:

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

Die TextSnapshot-Klasse ist hilfreich beim Abrufen von Text aus statischen Textfeldern in einer geladenen SWF-Datei, wenn Sie diesen Text als Wert in einem anderen Teil der Anwendung verwenden möchten.