Сегодня я продолжу недавно начатую тему всплывающих подсказок для флеш-приложений на ActionScript 3.0 и опишу работу с ещё одним интересным классом OBO_ToolTip от Devon O. Wolfgang. Данный класс тоже реализует работу всплывающих подсказок в флеш-роликах, но делает он это иначе, чем в ранее рассмотренном классе.
Давайте для начала просто посмотрим, какие подсказки позволяет создать класс OBO_ToolTip. Итак, смотрим...
С помощью данного класса можно создать очень симпатичные всплывающие подсказки с закруглёнными углами.
Теперь посмотрим, как можно воспользоваться классом OBO_ToolTip в наших флеш-приложениях.
В первую очередь мы должны подключить сам класс OBO_ToolTip к нашему проекту. Для этого на главной временной шкале (сейчас код будем писать именно там) пишем примерно следующее...
Код ActionScript 3.0:
import OBO_ToolTip;
То есть с помощью инструкции import мы должны указать путь до класса. В данном случае класс и флеш-проект находятся в одной и той же папке (и использование import в этом конкретном случае не является обязательным).
Затем мы должны настроить нашу будущую всплывающую подсказку. Делается это следующим образом...
Код ActionScript 3.0:
var toolTip:OBO_ToolTip = OBO_ToolTip.createToolTip(myRoot, font, tipColor, tipAlpha, tipShape, fontColor, fontSize, advRendering);
где:
- myRoot - контейнер, внутри которого будет размещаться созданная нами всплывающая подсказка;
- font - этот параметр отвечает за используемый в подсказке шрифт и в качестве значения принимает экземпляр класса Font или экземпляр класса, который расширяет класс Font (о том, как встроить шрифт в флеш-ролик, говорилось в прошлом посте);
- tipColor - цвет всплывающей подсказки;
- tipAlpha - прозрачность всплывающей подсказки в диапазоне от 0 (полная прозрачность) до 1 (полная непрозрачность);
- tipShape - форма всплывающей подсказки;
Доступно два значения:
1.) SQUARE_TIP - прямоугольная форма;
2.) ROUND_TIP - с закруглёнными углами.
- fontColor - цвет текста;
- fontSize - размер шрифта;
- advRendering - данному параметру рекомендуется присваивать значение false, если вы используете пиксельные шрифты, и true - для прочих шрифтов.
Теперь мы, наконец-то, можем прикрепить подсказку к конкретному объекту. Например, присвоим подсказку мувику по имени btn...
Код ActionScript 3.0:
btn.addEventListener(MouseEvent.ROLL_OVER, overBtn);
btn.addEventListener(MouseEvent.ROLL_OUT, outBtn);
function overBtn(event:MouseEvent):void
{
toolTip.addTip("Это кнопка!");
}
function outBtn(event:MouseEvent):void
{
toolTip.removeTip();
}
Если приведённый выше код остался вам непонятен, то стоит обратится к основам создания кнопок в ActionScript 3.0.
Объединим описанные ранее этапы создания всплывающей подсказки в один законченный пример...
Код ActionScript 3.0:
/*
импортируем класс
*/
import OBO_ToolTip;
/*
настройка всплывающей подсказки
*/
var toolTip:OBO_ToolTip = OBO_ToolTip.createToolTip(this, new Ariac(), 0xff0000, 0.5, OBO_ToolTip.ROUND_TIP, 0xffffff, 16, false);
/*
подключаем наши всплывающие подсказки к объектам на сцене флеш-ролика
*/
btn.addEventListener(MouseEvent.ROLL_OVER, overBtn);
btn.addEventListener(MouseEvent.ROLL_OUT, outBtn);
function overBtn(event:MouseEvent):void
{
toolTip.addTip("Это кнопка!");
}
function outBtn(event:MouseEvent):void
{
toolTip.removeTip();
}
Вот и всё. Конечно, использование такой подсказки имеет свои недостатки (например, код не такой компактный, как в примере из предыдущего поста), но, однако, есть и свои неоспоримые преимущества. Всплывающая подсказка, созданная с помощью класса OBO_ToolTip, имеет множество полезных настроек, что положительно сказывается на конечном результате.
Исходник под Adobe Flash CS5.5 и сам класс OBO_ToolTip можно скачать здесь.
Примечания:
[!] Если кого-то интересует использование OBO_ToolTip в ООП, то смотрите листинг самого класса. Там автор приводит пример встраивания всплывающей подсказки в тело класса (см. исходник).
Самое простое, что можно сделать, поменять строчку
_tipText.text = words;
на
_tipText.htmlText = words;
внутри класса.
После этого можно будет использовать html-форматирование во всплывающих подсказках. Вот только Flash поддерживает очень мало html-тегов (для удобства можно воспользоваться этим - http://edapskov.ru/pages.php?id=213).