Показать сообщение отдельно
Старый 07.12.2007, 00:46
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 2  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
Код:
import mx.utils.Delegate;

class Tooltip {

	private var target:MovieClip;
	private var txt:TextField;
	
	public function Tooltip(){
		target = _root;
                //лучше юзать _root, т.к. работаем с глобальными координатами мыши (имхо)
	}
	
	public function setTooltip(str:String){
		if(str != undefined){
			txt = target.createTextField("tooltip",
				0,
				target._xmouse,
				target._ymouse + 20,
				0,
				0
			);
			
			txt.autoSize = true;
			txt.background = true;
			txt.border = true;
			txt.embedFonts = false;
			txt.backgroundColor = 0xFFE6B0;
			txt.borderColor = 0xFFD277;
			txt.selectable = false;
			txt.text = str;
			
			toolTipMotion();
			
			target.onMouseMove = Delegate.create(this, toolTipMotion);
		}else{
			txt.removeTextField();
			delete target.onMouseMove;
		}
	}
	
	
	private function toolTipMotion(){
		txt._x = target._xmouse;
		txt._y = target._ymouse + 20;
		
		if(txt._x + txt._width > Stage.width){
			txt._x = Stage.width - txt._width - 10;
		}else
		if(txt._x <= 10){
			txt._x = 10;
		}
		
		updateAfterEvent();
	}
}
P.S. числа 10 и 20 (отсупы) грамотней будет заменить на статические переменные...ну это так..шлифовка =)
__________________
Flash Developer
Папа TDP4 Team Battle


Последний раз редактировалось CrazyFlasher; 07.12.2007 в 01:58.