Отображение текстаFlash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий Хотя в инструментах разработки, таких как Adobe Flash Builder и Flash Professional, предусмотрено несколько способов отображения текста, включая текстовые компоненты и текстовые инструменты, простейшим способом программного отображения текста является использование текстового поля. Типы текстаТип текста в текстовом поле определяется по его источнику.
Изменение содержимого текстового поляМожно определить динамический текст, назначив строку свойству flash.text.TextField.text. Строку можно назначить свойству напрямую, как показано ниже: myTextField.text = "Hello World"; Также можно назначить свойству text значение из переменной, определенной в сценарии, как показано в следующем примере: 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;
}
}
}
Или же свойству text можно назначить значение из удаленной переменной. Существует три способа загрузки текстовых значений из удаленных источников:
Отображение HTML-текстаКласс flash.text.TextField имеет свойство htmlText, которое можно использовать для определения текстовой строки с HTML-тегами для форматирования содержимого. Как показано в следующем примере, для визуализации текста Flash Player или AIR как HTML необходимо назначить строковое значение свойству htmlText (а не свойству text). 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 и AIR поддерживают подгруппу тегов и сущностей HTML для свойства htmlText. Дополнительные сведения о поддерживаемых тегах и сущностях HTML см. в описании свойства flash.text.TextField.htmlText в справочнике ActionScript® 3.0 для Adobe® Flash® Professional CS5. Указав содержимое с помощью свойства htmlText, можно использовать таблицы стилей или тег textformat для управления форматированием содержимого. Дополнительные сведения см. в разделе форматирование текста. Использование изображений в текстовых поляхЕще одним преимуществом отображения содержимого в виде HTML-текста является то, что в текстовые поля можно включать изображения. Для ссылки на локальное или удаленное изображение можно использовать тег img, который следует добавить в соответствующее текстовое поле. В следующем примере создается текстовое поле myTextBox, в котором в отображаемый текст включено изображение глаза в формате JPG, сохраненное в том же каталоге, что и SWF-файл. 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;
}
}
}
Тег img поддерживает теги в формате JPEG, GIF, PNG и SWF. Прокрутка текста в текстовом полеВо многих случаях длина текста превышает длину текстового поля, в котором отображается текст. Иногда поля ввода позволяют ввести текст, выходящий за пределы области отображения. Свойства класса flash.text.TextField, связанные с прокруткой, можно использовать для управления объемным содержимым с помощью прокрутки по вертикали или по горизонтали. С прокруткой связаны свойства TextField.scrollV, TextField.scrollH, maxScrollV и maxScrollH. Их можно использовать для реагирования на такие события, как щелчок мыши или нажатие клавиши. В следующем примере создается текстовое поле фиксированного размера, которое содержит текст с длиной, превышающей размер отображаемой области. Когда пользователь щелкает текстовое поле, выполняется вертикальная прокрутка текста. 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++;
}
}
}
|
|