Опубликован: 23.12.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 3:

Клипы и ролики. Специальные возможности языка

Программное создание текстовых полей

Мы только что познакомились с методом createEmptyMovieClip, позволяющим создать пустой клип на любом нужном нам уровне. Оказывается, можно также на заданном уровне разместить не клип, а текстовое поле (а затем, вызывая его методы, разместить в нем текст, отформатировать этот текст любым нужны образом и т.д.). Метод, который создает поле, также размещен в классе MovieClip и называется, естественно, createTextField. Однако параметров ему передается существенно больше, чем методу createEmptyMovieClip. Кроме первых двух параметров - имени экземпляра и номера уровня (которые у этих двух методов совпадают) - надо еще передать координаты x и y, а также ширину и высоту текстового поля. При этом координаты x и у соответствуют верхнему левому краю текстового поля.

В отличие от метода createEmptyMovieClip (который возвращает ссылку на только что созданный клип ), метод createTextField ничего не возвращает. Но, поскольку мы задали имя экземпляра, созданное текстовое поле легко найти. Затем, записав что-либо в свойство text созданного объекта, мы сможем вывести текст на экран. Например:

_root.createTextField("t_txt", 3, 100, 100, 400, 20);
t_txt.text = "RRRRRRRRRRRRRRRRRRRRRRR";

По умолчанию у созданного таким образом текстового поля будут установлены следующие свойства:

type = "dynamic",
border = false,
background = false,
password = false,
multiline = false,
html = false,
embedFonts = false,
variable = null,
maxChars = null

Если вам нужно, скажем, сделать вокруг текстового поля рамку, следует написать

t_txt.border = true;

Если вы хотите отформатировать текст, вам нужно будет вызвать у созданного объекта метод setTextFormat и передать ему специальный объект класса TextFormat (в который вы запишете все, что вам нужно). По умолчанию текст создается со следующим форматом:

font = "Times New Roman"
size = 12
textColor = 0x000000
bold = false
italic = false
underline = false
url = ""
target = ""
align = "left"
leftMargin = 0
rightMargin = 0
indent = 0
leading = 0
bullet = false
tabStops = [] (массив пуст).

Если вы хотите, например, установить созданной нами строке выравнивание на правый край (при этом левый верхний угол текстового поля не сдвинется, но строка в нем прижмется к правому краю поля), а также сделать текст полужирным (bold), то нужно будет написать следующее:

t_fmt = new TextFormat();
t_fmt.bold = true;
t_fmt.align = "right";
t_txt.setTextFormat(t_fmt);

При этом лучше, чтобы текст был взят в рамку - тогда вы отчетливее увидите, что выравнивание изменилось.

алексеи федорович
алексеи федорович
Беларусь, рогачёв
Тамара Ионова
Тамара Ионова
Россия, Нижний Новгород, НГПУ, 2009