action script 3 tool tip class
A “Tool Tip” é uma ferramenta que ajuda o utilizador na utilização de um interface, em conjunto com o rato.
Esta versão “Tool Tip” foi criada de raíz aqui na Punchline, em action script 3, numa classe reutilizável:
//—————————————
/*
simple action script 3 tool tip class
version 0.1
Pedro Batista da Silva @ punchline.pt
18.05.2009
exemplo a partir de um ficheiro *.fla:
import pbs.*;
var t:TipTool = new TipTool( yourMovieClipHere , ‘yourMessageHere’ );
addChild( t );
*/
//—————————————
package pbs{
//importa as classes do flash necessárias
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.text.*;
import flash.filters.DropShadowFilter;
//definição da classe
public class TipTool extends Sprite
{
//definição de membors da classe
private var newTipTool:Sprite;
private var _movieClip:MovieClip;
private var dica:TextField;
//o construtor e os argumentos
//o _movieclip é sobre o qual vai aparecer a _message
public function TipTool( _movieClip , _message ):void
{
//os ouvintes de eventos
_movieClip.addEventListener( MouseEvent.MOUSE_OVER , showTip );
_movieClip.addEventListener( MouseEvent.MOUSE_MOVE , moveTip );
_movieClip.addEventListener( MouseEvent.MOUSE_OUT , hideTip );
//o formato de texto da _message
var myFormat:TextFormat = new TextFormat();
myFormat.font = ‘_sans’;
myFormat.size = 10;
//a caixa de texto
dica = new TextField();
dica.defaultTextFormat = myFormat;
dica.width = 140;
dica.htmlText = ‘true’;
dica.multiline = true;
dica.wordWrap = true;
dica.htmlText = _message;
//desenhar o rectangulo da _message
newTipTool = new Sprite();
newTipTool.graphics.beginFill( 0xFFFFFF , 0.8 );
newTipTool.graphics.drawRoundRect( 0 , 0 , 150 , dica.textHeight + 5 , 5 );
newTipTool.graphics.endFill();
newTipTool.addChild( dica );
}
//quando o rato se mexe, faz o drag..
public function moveTip( xMouse:Number = 0 , yMouse:Number = 0 )
{
newTipTool.x = mouseX + 15 ;
newTipTool.y = mouseY + 15;
}
//mostra
public function showTip( e:MouseEvent )
{
newTipTool.visible = true;
makeShadow( newTipTool );
addChild( newTipTool );
}
//esconde
public function hideTip( e:MouseEvent )
{
newTipTool.visible = false;
}
//efeito de sombra
public function makeShadow( clip )
{
var dropShadow:DropShadowFilter = new DropShadowFilter();
dropShadow.color = 0×000000;
dropShadow.blurX = 10;
dropShadow.blurY = 10;
dropShadow.angle = 90;
dropShadow.distance = 0;
dropShadow.alpha = 100;
var filtersArray:Array = new Array(dropShadow );
clip.filters = filtersArray;
}
}
}