Создание всплывающей подсказки (также известной как tooltip) для флеш-проектов - задача распространённая. А, следовательно, её уже много раз кто-то решал до нас. Нет, конечно можно создать свою функцию или класс, реализующие tooltip. Но стоит ли изобретать велосипед. Тем более, наше решение может оказаться не таким изящным и удобным...
В свете сказанного выше, этот пост я решил посвятить рассмотрению одного очень полезного класса, найденного мною в варварском сегменте сети. Это класс ToolTip и, как явствует из названия, он создан именно для реализации всплывающих подсказок в флеш-проектах на ActionScript 3.0. Конечно, это не идеальное решение. Но лично меня эта реализация подкупила своей простотой и удобством (как я понял, именно к этому и стремился разработчик данного класса).
Сам класс будет идти в комплекте с исходником (смотри ссылку внизу поста). А сейчас рассмотрим способ применения данного класса в наших проектах.
Использовать его очень просто. Конечно, изначально мы должны импортировать сам класс ToolTip (если он лежит в одной папке с нашим флеш-проектом, то это действие становится необязательным). После того, как класс подключен, инициализируем всплывающую подсказку.
Код ActionScript 3.0:
ToolTip.init(stage, {textalign: 'center', opacity: 50, default_delay: 500});
Здесь в качестве первого параметра указан контейнер для нашей всплывающей подсказки. А в фигурных скобках идут настройки:
1.) выравнивание текста;
2.) прозрачность в диапазоне от 0 до 100 (!);
3.) задержка появления всплывающей подсказки в миллисекундах.
Теперь, если вам надо создать подсказку для какого-либо объекта на сцене флеш-ролика, просто вызываете метод attach() и передаёте ему в качестве параметров:
1.) сам объект, для которого создаётся всплывающая подсказка;
2.) текст-комментарий, который будет размещён в подсказке.
Код ActionScript 3.0:
ToolTip.attach(btn, "Это всплывающая подсказка!");
Практический пример использования класса ToolTip может выглядеть следующим образом...
Код ActionScript 3.0:
/*
Задаём настройки для будущей всплывающей подсказки.
*/
ToolTip.init(stage, {textalign: 'center', opacity: 50, default_delay: 500});
/*
Создаём саму всплывающую подсказку.
*/
ToolTip.attach(btn, 'Это кнопка!');
Для форматирования текста подсказки можно использовать HTML-теги (но помните, что флеш поддерживает только небольшую часть HTML-тегов). Для примера создадим всплывающую подсказку, в которой текст будет выделен жирным шрифтом и подчёркиванием.
Код ActionScript 3.0:
ToolTip.init(stage, {textalign: 'center', opacity: 50, default_delay: 500});
ToolTip.attach(btn, '<u><b>Это кнопка!</b></u>');
Если текст всплывающей подсказки очень большой, то его следует отформатировать с помощью переносов строки. Перенос строки можно задать HTML-тегом BR или через \n.
Код ActionScript 3.0:
ToolTip.init(stage, {textalign: 'center', opacity: 50, default_delay: 500});
ToolTip.attach(btn, 'Это кнопка и она знает анекдот:\nПодвыпивший мужичонка, из дальней деревни,\n обращается на городском вокзале к стражу порядка:\n- Здравствуйте, товарищ милиционер, будьте добреньки…\n- Не товарищ, а господин!\n- Извините, господин милиционер, будьте добреньки…\n- Не милиционер, а полицейский!\n- О!!! Извините, господин полицейский… а, что немцы - давно в городе?');
Ну а теперь пора привести наглядный пример использования данного класса. Вот и сам пример:
Наводим на кнопки и смотрим на реакцию...
Исходник под Adobe Flash CS5.5 и сам класс ToolTip можно скачать здесь.
Вот и всё.
Исправление
Как справедливо заметил тёзка из комментариев, свойство default delay надо писать через нижнее подчёркивание: default_delay. Спасибо Дмитрию, что обратил на это внимание :-)