В ActionScript для красивого оформления ссылок в текстовых полях можно использовать так называемые селекторы псевдоклассов. Я думаю, что они хорошо известны тем, кто знаком с языком CSS. Для флеш-приложений доступны следующие селекторы псевдоклассов:
- link - элемент гиперссылки (тег <a>);
- hover - элемент гиперссылки, над которым находиться указатель мышки;
- active - активированный элемент гиперссылки, то есть элемент в момент щелчка по нему указателя мышки.
Как не трудно догадаться, все перечисленные выше селекторы псевдоклассов применимы только к ссылкам (тег <a>). Это позволяет нам реализовать в наших флеш-проектак такое поведение ссылок в текстовых полях, которое напоминает поведение гиперссылок на HTML-страницах. Выглядеть это может, например, так...
Пример:
Как это реализуется на ActionScript 3.0? Всё просто. Смотрите сами.
Код ActionScript 3.0:
/*
импортируем классы
*/
import flash.text.TextField;
import flash.text.StyleSheet;
/*
создаём таблицу стилей
*/
var css:StyleSheet = new StyleSheet();
css.setStyle("a",{fontSize:20,textDecoration:"underline"});
css.setStyle("a:link",{color:"#000099"});
css.setStyle("a:hover",{color:"#ff0000"});
css.setStyle("a:active",{color:"#009900"});
/*
создаём текстовое поле
*/
var tf:TextField = new TextField();
addChild(tf);
tf.width = 450;
tf.height = 300;
tf.x = 50;
tf.y = 50;
tf.multiline = true;
tf.wordWrap = true;
/*
применяем таблицу стилей к данному текстовому полю
*/
tf.styleSheet = css;
/*
присваиваем нашему текстовому полю содержимое с html-разметкой
*/
tf.htmlText = 'Навигация по сайту:<br><br>';
tf.htmlText += '<a href="http://edapskov.ru/index.php">Главная страница</a><br>';
tf.htmlText += '<a href="http://edapskov.ru/guestbook.php">Гостевая</a><br>';
tf.htmlText += '<a href="download.php">Скачать</a><br>';
tf.htmlText += '<a href="faq.php">FAQ</a><br>';
Теперь ссылки в текстовом поле будут выделены синим цветом (color:"#000099") и подчёркиванием (textDecoration:"underline"), как это обычно имеет место и на веб-страницах. Если пользователь наведёт курсор мышки на гиперссылку, то эта ссылка поменяет свой цвет на красный (color:"#ff0000"). А если пользователь кликнет по ссылке, то она на миг станет зелёной (color:"#009900"). Как видите, ничего сложного.
Теперь тоже самое, но уже на ActionScript 2.0...
Код ActionScript 2.0:
/*
импортируем класс
*/
import TextField.StyleSheet;
/*
создаём таблицу стилей
*/
var css:StyleSheet = new StyleSheet();
css.setStyle("a",{fontSize:20,textDecoration:"underline"});
css.setStyle("a:link",{color:"#000099"});
css.setStyle("a:hover",{color:"#ff0000"});
css.setStyle("a:active",{color:"#009900"});
/*
создаём текстовое поле и присваиваем ему ранее созданные css-правила
*/
this.createTextField("tf",0,50,50,450,300);
tf.multiline = true;
tf.wordWrap = true;
tf.html = true;
tf.styleSheet = css;
tf.htmlText = 'Навигация по сайту:<br><br>';
tf.htmlText += '<a href="http://edapskov.ru/index.php">Главная страница</a><br>';
tf.htmlText += '<a href="http://edapskov.ru/guestbook.php">Гостевая</a><br>';
tf.htmlText += '<a href="download.php">Скачать</a><br>';
tf.htmlText += '<a href="faq.php">FAQ</a><br>';
Ну, а чтобы поведение flash-гиперссылок ещё больше напоминало поведение html-ссылок, добавим для элемента <a> атрибут target. Атрибут target указывает окно, в котором будет загружаться страница после активации гиперссылки. Допустимые значения у этого атрибута следующие:
- _self - загрузка в текущем фрейме текущего окна (стоит по умолчанию);
- _blank - загрузка в новом окне;
- _parent - загрузка в предке текущего фрейма;
- _top - загрузка в фрейме верхнего уровня текущего окна.
На практике вам, вероятно, пригодится только значение _blank, чтобы загружать страницы в новом окне браузера.
Код ActionScript 3.0:
import flash.text.TextField;
import flash.text.StyleSheet;
var css:StyleSheet = new StyleSheet();
css.setStyle("a",{fontSize:20,textDecoration:"underline"});
css.setStyle("a:link",{color:"#000099"});
css.setStyle("a:hover",{color:"#ff0000"});
css.setStyle("a:active",{color:"#009900"});
var tf:TextField = new TextField();
addChild(tf);
tf.width = 450;
tf.height = 300;
tf.x = 50;
tf.y = 50;
tf.multiline = true;
tf.wordWrap = true;
tf.styleSheet = css;
tf.htmlText = 'Навигация по сайту:<br><br>';
tf.htmlText += '<a href="http://edapskov.ru/index.php" target="_self">Главная страница</a><br>';
tf.htmlText += '<a href="http://edapskov.ru/guestbook.php" target="_blank">Гостевая</a><br>';
tf.htmlText += '<a href="download.php" target="_parent">Скачать</a><br>';
tf.htmlText += '<a href="faq.php" target="_top">FAQ</a><br>';
Надеюсь, изложенная здесь информация будет вам полезна. А у меня на сегодня всё :-)