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;

}

}

}

Comentar