Спасибо всем за помощь)
Как и следовало ожидать, на самом деле все оказалось просто, главное было лень победить. На базе ваших советов соорудил класс, если кому пригодиться буду рад.
Цитата
class Tooltip extends MovieClip //Подсказки
{
var tiptext:TextField; //текст подсказки
var timeWait = 8; //время задержки перед появлением подсказки в кадрах
var i = 0; //счетчик кадров до отображения подсказки
public function Tooltip() //инициализируем объект
{
this._visible = false; //делаем подсказку невидимой
i = 0; //не активна
tiptext.backgroundColor = 0xFAFBEA; //цвет фона подсказки по умолчанию
tiptext.autoSize = true; //авто-подгонка текстового поля под содержание
}
public function ShowTooltip (text) //показать подсказку
{
tiptext.text = text; //запоминаем текст сообщения в текстовое поле
i = timeWait; //устанавливаем счетчик кадров
this.onEnterFrame = StartTimer; //определяем таймер
}
public function HideTooltip () //скрываем подсказку
{
this._visible = false; //делаем ее невидимой
i = 0; //сбрасываем счетчик кадров
this.onEnterFrame = null; //уничтожаем таймер на случай если он не успел сработать
}
private function ViewTooltip () //отображение подсказки
{
if (_root._xmouse + this._width + 15 <= _root.getBounds(_root).xMax)
//проверяем чтобы клип с подсказкой умещался в границы главного клипа
this._x = _root._xmouse + 15 //выводим его правее мыши
else //иначе
this._x = _root._xmouse - this._width - 15; //выводим его левее указателя мыши
if (_root._ymouse + this._height + 15 <= _root.getBounds(_root).yMax) //то же по вертикали
this._y = _root._ymouse + 15
else
this._y = _root._ymouse - this._height - 15;
this._visible = true; //делаем клип видимым
this.play(); //запускаем его на проигрывание
this.onEnterFrame = null; //уничтожаем таймер он больше не нужен
}
private function StartTimer () //таймер отображения подсказки
{
if (i > 1) i --; //уменьшаем счетчик
if (i == 1) this.ViewTooltip(); //отображаем клип
}
}
Теперь как он работает:
1) Создаем текстовое поле, присваиваем ему name = 'tiptext';
2) Преобразуем его в клип и связываем с данным классом;
3) Помещаем данный клип в первый кадр самого верхнего слоя нашего клипа и даем ему name для дальнейшего обращения (например tip);
4) Все объектам которым нужна подсказка добавляем в обработчики:
Цитата
on (rollOver) {
//Здесь будет ваш код
_root.tip.ShowTooltip ("Текст подсказки");
}
on (rollOut) {
//Здесь будет ваш код
_root.tip.HideTooltip();
}
Разумеется что в коде пункта 4 _root.tip - взято для примера, вместо tip вы подставляете имя своего клипа с подсказкой. Все дальше можно использовать)
Плюсы использования данного класса:
1) Подсказку можно сделать анимированный, единственный минус, надо очень осторожно обращаться с текстовым полем tiptext в клипе, так как при анимации свойства сохраняются и соответственно все определенные программно свойства текстового поля буду сброшены;
2) Можно организовать настройку текстового поля динамически, устанавливая свойства tip.tiptext.Color
При выводе подсказки учитывается размер клипа для отображения в пределах главного клипа, поэтому создавая анимацию учитывайте что если вы создадите скажем помошника который будет выплывать на экран и говорить вам подсказку текст будет отображаться с учетом сдвига на помошника, что в принципе скорей даже достоинство чем недостаток ;-)
Ну вот пожалуй и все, жду отзывов)