,
, а начиная с версии Flash MX 2004 поддерживается тэг
.
Магический тэг от Macromedia
То ли создатели Flash'а услышали многочисленные мольбы, то ли сами догадались, что вышеназванных тэгов недостаточно – неизвестно. Зато доподлинно известно, что появился тэг . Он обладает различными свойствами для настройки отступов текста, интерлиньяжа и позиций табуляции. Все они достаточно детально описаны в стандартной помощи, нас же больше всего интересуют позиции табуляции.
Задать позиции можно, записав их значения в свойстве тэга tabstops:
Значения отступов считаются от левого края текстового поля в пикселях.
Для того, чтобы текст в этом тэге отображался колонками, надо каждую следующую запись в строке отделять от предыдущей символом табуляции, а каждую строку заканчивать тэгом переноса строки (
). Macromedia советует использовать для табуляции сочетание симолов t, что, разумеется, логично, но не совсем удобно при динамической передаче данных в Flash. Cтоит только подумать о тех же stripslashes(), и меня бросает в холодный пот.
К счастью, Flash поддерживает еще один тэг, о котором умолчали разработчики - . Из его названия можно понять, что функция тэга заключается в замене символа табуляции. Долой stripslashes() и холодный пот!
Таблицы, записанные HTML
Cуммируя все вышепреведенное составим код, который выведет на экран такую таблицу:
1. В первом кадре создадим текстовое поле с включенными свойствами multiline и Render text as html. Поле назовем txt.
2. В actions первого же кадра запишем следующий код:
head=" №НазваниеЦена
";
line1="1Эпикурействолет 20
";
line2="2Богатстводуша
";
line3="3Изображение127 Кбайт
";
total="Итого:Вечность";
txt.htmlText=""+head+line1+line2+line3+total+"";
3. Если теперь запустить ролик, то в нем появится аккуратная табличка, похожая на приведенную выше.
4. Теперь можно пойти и приготовить всем чай. Мне три ложки сахара и половину лимона.
Ложка дегтя и бочка меда
Достоинства подобного метода вывода информации, несомненно, высоки, но у него есть и недостаток. В ячейке может находиться одна строка текста и, если текст окажется шире указанной в ширины ячейки, то он просто сдвинет вправо следующий за ним текст, который должен отображаться в соседней колонке. Вполне возможно, что этот недостаток можно обойти, не продавая души дьяволу, но мне этот метод пока что неизвестен.
Напоследок хочу обратить внимание на то, что при передаче html-кода в Flash с использованием XML, тэги передаваемого кода необходимо писать в формате XHTML (закрывать одинарные тэги, например,
или
). В противном случае Flash не сможет правильно распознать XML-файл, а ведь это не то, к чему мы стремились всю сознательную жизнь.
Перспективы?
Выводить таблицы с большей гибкостью можно используя компонент Flash MX 2004 DataGrid, но в таком случае таблицу не вставишь в середину текста. Также существуют коммерческие и не совсем компоненты для составления и вывода таблиц из стандартного html-кода, у которых те же недостатки, что и у DataGrid. Кроме того, за большинство из них надо платить.
Будем надеяться, что команда разработчиков придумает что-то, чтобы облегчить вывод текста с полной поддержкой XHTML, тем более, что уже готовые исходники подобных вещей продаются за 40-50 долларов на сайте Macromedia Exchange ;)
http://www.i2r.ru