1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
package fr
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.NetFilterEvent;
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.text.TextField;
/**
* ...
* @author Fazermokeur
*/
public class LinkButton extends Sprite
{
private var _tf:TextField;
private var _zone:Sprite;
private var _HTML_Link:Boolean;
private var _LINK:String;
public function LinkButton(intitule:String, link:String, html:Boolean = false)
{
_HTML_Link = html;
_LINK = link;
//créatio dynamique de ton champs de texte
_tf = createTextfield(intitule);
//création d'une zone transparente au dessus du texte pour la gestion de la souris
_zone = createInteractivZone();
_zone.addEventListener(MouseEvent.MOUSE_OVER, handleOver);
_zone.addEventListener(MouseEvent.MOUSE_OUT, handleOut);
_zone.addEventListener(MouseEvent.CLICK, handleClick);
addChild(_tf);
addChild(_zone);
}
/*
* re&ction en fonction des paramètre
*/
private function handleClick(e:MouseEvent):void
{
if (_HTML_Link) {
navigateToURL(new URLRequest(_LINK), "_blank");
}else {
/* Appel du module à l'aide de la variable _LINK */
}
}
/**
* réaction lorsque la souris survbole la zone
*/
private function handleOver(e:MouseEvent):void
{
/* Apparition effet souligné par exemple */
}
/**
* réaction de la souris quitte la zone
*/
private function handleOut(e:MouseEvent):void
{
/* disparition effet souligné */
}
private function createInteractivZone():Sprite
{
var s:Sprite= new Sprite();
s.graphics.beginFill(0xff0000, 0);
s.graphics.drawRect(tf.x, tf.y, tf.width, tf.height);
s.graphics.endFill();
return s;
}
private function createTextfield(value:String):TextField
{
var tf:TextField = new TextField();
tf.htmlText = value;
return tf;
}
}
} |
Partager