Posted By

manuletroll on 10/30/10


Tagged

class ui


Versions (?)

Who likes this?

6 people have marked this snippet as a favorite

sexyflash
onemanstudio
tombarc
prjohnny
albertomori
letmein_xxi


Quick & Dirty Tooltip Class


 / Published in: ActionScript 3
 

  1. package ariane.ui
  2. {
  3. import flash.display.Sprite;
  4. import flash.display.Stage;
  5. import flash.events.Event;
  6. import flash.events.MouseEvent;
  7. import flash.text.TextField;
  8. import flash.text.TextFieldAutoSize ;
  9. import flash.text.TextFormat;
  10. import flash.text.TextFormatAlign ;
  11. import caurina.transitions.Tweener ;
  12. /**
  13. * Classe permettant l'usage d'un objet graphique en gros similaire au paramètre "title" d'une image en html.
  14. * @author Manu
  15. */
  16. public class Tooltip extends Sprite
  17. {
  18. protected var _bgColor:Number ;
  19. protected var _txtColor:Number ;
  20. protected var _txtF:TextField ;
  21. protected var _stageRef:Stage ;
  22. protected var _box:Sprite ;
  23. protected var _format:TextFormat ;
  24.  
  25. /**
  26. *
  27. * @param s Référence à la scène principale
  28. * @param bgcolor Couleur de fond du tooltip
  29. * @param txtcolor Couleur du texte
  30. * @param font Police utilisée : à choisir parmi les polices web classiques pour éviter l'incorporation
  31. * @param fontSize Taille de police
  32. */
  33. public function Tooltip(s:Stage, bgcolor:Number, txtcolor:Number, font:String="Verdana", fontSize:int=10)
  34. {
  35.  
  36. this.alpha = 0 ;
  37. this.mouseEnabled = false ;
  38.  
  39. _stageRef = s ;
  40. _bgColor = bgcolor ;
  41. _txtColor = txtcolor ;
  42.  
  43.  
  44. _box = new Sprite() ;
  45. _box.graphics.beginFill(_bgColor) ;
  46. _box.graphics.lineStyle(2) ;
  47. _box.graphics.drawRect(0, 0, 100, 20) ;
  48. _box.graphics.endFill() ;
  49. this.addChild(_box) ;
  50.  
  51. _format = new TextFormat() ;
  52. _format.font = font ;
  53. _format.size = fontSize ;
  54. _format.align = TextFormatAlign.LEFT ;
  55. _format.color = _txtColor ;
  56.  
  57. }
  58.  
  59. /**
  60. * Méthode à appeler pour faire apparaître le tooltip
  61. * @param text Texte à afficher
  62. */
  63. public function show(text:String ):void
  64. {
  65. this.x = _stageRef.mouseX + 5 ;
  66. this.y = _stageRef.mouseY + 5 ;
  67.  
  68. _txtF = new TextField() ;
  69. _txtF.defaultTextFormat = _format ;
  70.  
  71. _txtF.y = 2 ;
  72. _txtF.autoSize = TextFieldAutoSize.RIGHT ;
  73. _txtF.text = text
  74. _txtF.x = _box.x ;
  75.  
  76. this.addChild(_txtF) ;
  77. _box.height = _txtF.height + 2 ;
  78. _box.width = _txtF.width + 5 ;
  79. Tweener.addTween(this, {time:0.25, alpha:1, transition:"linear" } ) ;
  80. this.addEventListener(Event.ENTER_FRAME, move) ;
  81. }
  82.  
  83. /**
  84. * Méthode permettant au tooltip de suivre le mouvement de la souris
  85. * @param e
  86. */
  87. protected function move(e:Event):void
  88. {
  89. this.x = _stageRef.mouseX + 10;
  90. this.y = _stageRef.mouseY + 10;
  91. }
  92.  
  93. /**
  94. * Cache le tooltip et détruit le champ de texte
  95. */
  96. public function hide():void
  97. {
  98. this.alpha = 0 ;
  99. Tweener.addTween(this, { alpha:0, delay:0.05 } );
  100. this.removeChild(_txtF) ;
  101. }
  102.  
  103. }
  104.  
  105. }

Report this snippet  

You need to login to post a comment.