Anzeigen von TextFlash Player 9 und höher, Adobe AIR 1.0 und höher Obwohl in Authoring-Tools wie Adobe Flash Builder oder Flash Professional mehrere Optionen zum Anzeigen von Text verfügbar sind, einschließlich textbezogener Komponenten oder Textwerkzeuge, erfolgt die Textanzeige im Programmcode hauptsächlich über Textfelder. TexttypenDer Typ des Textes innerhalb eines Textfelds ist durch die jeweilige Quelle charakterisiert.
Ändern der Inhalte von TextfeldernSie können dynamischen Text definieren, indem Sie der flash.text.TextField.text-Eigenschaft einen String zuweisen. Das direkte Zuweisen eines Strings zu der Eigenschaft geschieht wie folgt: myTextField.text = "Hello World"; Sie können auch wie im folgenden Beispiel der text-Eigenschaft den Wert einer im Skript definierten Variablen zuweisen: package
{
import flash.display.Sprite;
import flash.text.*;
public class TextWithImage extends Sprite
{
private var myTextBox:TextField = new TextField();
private var myText:String = "Hello World";
public function TextWithImage()
{
addChild(myTextBox);
myTextBox.text = myText;
}
}
}
Alternativ können Sie der text-Eigenschaft den Wert einer Remote-Variablen zuweisen. Zum Laden von Textwerten aus Remote-Quellen stehen drei Optionen zur Auswahl:
Anzeigen von HTML-TextDie flash.text.TextField-Klasse verfügt über eine htmlText-Eigenschaft, mit der Sie angeben können, dass der Textstring HTML-Tags zum Formatieren des Inhalts enthält. Wie im folgenden Beispiel zu sehen ist, müssen Sie den Stringwert zur htmlText-Eigenschaft (und nicht zur text-Eigenschaft) zuweisen, damit der Text in Flash Player oder AIR als HTML dargestellt wird: var myText:String = "<p>This is <b>some</b> content to <i>render</i> as <u>HTML</u> text.</p>"; myTextBox.htmlText = myText; Flash Player und AIR unterstützen einen Teil der HTML-Tags und HTML-Entitäten für die htmlText-Eigenschaft. Die Beschreibung der flash.text.TextField.htmlText-Eigenschaft im ActionScript 3.0-Referenzhandbuch enthält ausführliche Informationen zu den unterstützten HTML-Tags und HTML-Entitäten. Nachdem Sie den Inhalt mit der htmlText-Eigenschaft angegeben haben, können Sie die entsprechende Formatierung mithilfe von Stylesheets oder des textformat-Tags festlegen. Weitere Informationen finden Sie unter Formatieren von Text. Verwenden von Bildern in TextfeldernEin weiterer Vorteil der Anzeige von Inhalten als HTML-Text besteht darin, dass Sie Bilder in das Textfeld einfügen können. Mithilfe des img-Tags können Sie auf lokale oder entfernte Bilder verweisen und diese innerhalb des entsprechenden Textfelds anzeigen. Im folgenden Beispiel wird ein Textfeld mit dem Namen myTextBox erstellt und in den Anzeigetext wird das JPG-Bild eines Auges eingefügt, das sich im selben Verzeichnis wie die SWF-Datei befindet: package
{
import flash.display.Sprite;
import flash.text.*;
public class TextWithImage extends Sprite
{
private var myTextBox:TextField;
private var myText:String = "<p>This is <b>some</b> content to <i>test</i> and <i>see</i></p><p><img src='eye.jpg' width='20' height='20'></p><p>what can be rendered.</p><p>You should see an eye image and some <u>HTML</u> text.</p>";
public function TextWithImage()
{
myTextBox.width = 200;
myTextBox.height = 200;
myTextBox.multiline = true;
myTextBox.wordWrap = true;
myTextBox.border = true;
addChild(myTextBox);
myTextBox.htmlText = myText;
}
}
}
Das img-Tag unterstützt JPEG-, GIF-, PNG- und SWF-Dateien. Bildlauf in TextfeldernIn vielen Fällen ist der Text länger als das Textfeld, in dem er angezeigt wird. Möglicherweise verwenden Sie auch ein Eingabefeld, in dem Benutzer mehr Text eingeben können, als auf einmal angezeigt werden kann. Zum Verwalten umfangreicher Inhalte können Sie die mit dem vertikalen und horizontalen Bildlauf verknüpften Eigenschaften der flash.text.TextField-Klasse verwenden. Dazu gehören TextField.scrollV, TextField.scrollH, maxScrollV und maxScrollH. Verwenden Sie diese Eigenschaften, um auf Ereignisse wie Mausklicks oder einen Tastendruck zu reagieren. Im folgenden Beispiel wird ein Textfeld fester Größe erstellt, das mehr Text enthält, als auf einmal angezeigt werden kann. Wenn der Benutzer auf das Textfeld klickt, wird ein vertikaler Bildlauf des Textes durchgeführt. package
{
import flash.display.Sprite;
import flash.text.*;
import flash.events.MouseEvent;
public class TextScrollExample extends Sprite
{
private var myTextBox:TextField = new TextField();
private var myText:String = "Hello world and welcome to the show. It's really nice to meet you. Take your coat off and stay a while. OK, show is over. Hope you had fun. You can go home now. Don't forget to tip your waiter. There are mints in the bowl by the door. Thank you. Please come again.";
public function TextScrollExample()
{
myTextBox.text = myText;
myTextBox.width = 200;
myTextBox.height = 50;
myTextBox.multiline = true;
myTextBox.wordWrap = true;
myTextBox.background = true;
myTextBox.border = true;
var format:TextFormat = new TextFormat();
format.font = "Verdana";
format.color = 0xFF0000;
format.size = 10;
myTextBox.defaultTextFormat = format;
addChild(myTextBox);
myTextBox.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownScroll);
}
public function mouseDownScroll(event:MouseEvent):void
{
myTextBox.scrollV++;
}
}
}
|
|