Comunidad de diseño web y desarrollo en internet online

Creación de tooltips en Actionscript 3

En base al Tutorial de tooltips en Flash, que está publicado en Cristalab, me tomé la libertad de convertirlo a Actionscript 3 con unas cuantas modificaciones:

Código :

package {
   import flash.display.MovieClip;
   import flash.filters.BitmapFilterQuality;
   import flash.filters.DropShadowFilter;
   import flash.text.TextField;
   import flash.text.TextFieldAutoSize;
   import flash.text.TextFormat;
   
   public class ToolTip extends MovieClip {
      private var filtros:Array;
      private var sombra:DropShadowFilter;
      private var etiqueta:TextField;
      private var formato:TextFormat;
      
      public function ToolTip() {
      }
      public function crea_tooltip():TextField {
         filtros = new Array();
         sombra  = new DropShadowFilter(5, 45, 0x000000, 1.0, 10, 10, 0.65, BitmapFilterQuality.MEDIUM, false, false);
         filtros.push(sombra);
         etiqueta = new TextField();
         formato = new TextFormat("Verdana", 10, 0x000000);
         etiqueta.autoSize = TextFieldAutoSize.LEFT;
         etiqueta.background = true;
         etiqueta.backgroundColor = 0xfffeee;
         etiqueta.border = true;
         etiqueta.multiline = true;
         etiqueta.selectable = false;
         etiqueta.defaultTextFormat = formato;
         etiqueta.visible = false;
         return etiqueta;
      }
      public function muestra_tooltip(texto:String):void {
         etiqueta.htmlText = texto;
         etiqueta.filters = filtros;
         etiqueta.visible = true;
      }
      public function oculta_tooltip():void {
         etiqueta.htmlText = "";
         etiqueta.visible = false;
      }
   }
}


Es una clase, la cual se puede usar de la siguiente forma:

Código :

package {
   import ToolTip;
   import flash.display.MovieClip;
   import flash.events.Event;
   import flash.events.MouseEvent;
   
   public class ToolTipTest extends MovieClip {
      //genero un contenedor
      private var c:MovieClip = new MovieClip();
      //la variable del tooltip
      private var tt:ToolTip = new ToolTip();
      //cuadros donde mostrar el tooltip
      private var cuadro1:MovieClip;
      private var cuadro2:MovieClip;
      
      public function ToolTipTest() {
         cuadro1 = new MovieClip();
         cuadro1.graphics.beginFill(0x000000);
         cuadro1.graphics.drawRect(15, 15, 150, 150);
         cuadro1.graphics.endFill();
         cuadro1.addEventListener(MouseEvent.MOUSE_MOVE, cuadro_mouse_move);
         cuadro1.addEventListener(MouseEvent.MOUSE_OUT, cuadro_mouse_out);
         cuadro2 = new MovieClip();
         cuadro2.graphics.beginFill(0x000000);
         cuadro2.graphics.drawRect(15, 175, 150, 150);
         cuadro2.graphics.endFill();
         cuadro2.addEventListener(MouseEvent.MOUSE_MOVE, cuadro_mouse_move);
         cuadro2.addEventListener(MouseEvent.MOUSE_OUT, cuadro_mouse_out);
         //agrego los cuadros al stage
         addChild(cuadro1);
         addChild(cuadro2);
         //agrego el contenedor
         addChild(c);
         //creo el tooltip en el contenedor
         c.addChild(tt.crea_tooltip());
      }
      public function cuadro_mouse_move(e:MouseEvent):void {
         //muestro el tooltip cuando pasan el mouse por un cuadrito
         tt.muestra_tooltip(e.currentTarget.name+"<br /><b>Soporta html</b><br />Y multilinea XD");
         //lo muevo con la rata (mouse XD)
         c.x = e.localX+13;
         c.y = e.localY+20;
         e.updateAfterEvent();
      }
      public function cuadro_mouse_out(e:MouseEvent):void {
         //si quitan la ratita del cuadro, desaparece el tooltip
         tt.oculta_tooltip();
      }
   }
}


Saludos y espero le sea de utilidad a alguien! ^^

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate