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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
package
{
import flash.display.Sprite;
import flash.display.Shape;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.geom.Matrix;
import flash.events.MouseEvent;
public class Bouton extends Sprite
{
private var skin1:Shape = new Shape();
private var skin2:Shape = new Shape();
private var largeur:Number;
private var hauteur:Number;
private var mat:Matrix = new Matrix();
private var police:TextFormat = new TextFormat();
private var title:TextField = new TextField();
private var _caption:String = "Button";
//private var permute:Boolean;
public function Bouton(w:Number, h:Number)
{
super();
largeur = w;
hauteur = h;
buttonMode = true;
mat.createGradientBox(w, h, Math.PI / 2, 0, 0);
with (skin1.graphics)
{
lineStyle(1, 0x707070);
beginGradientFill("linear", [0xaaffaa, 0x55ff55, 0x22ff22, 0x00ff00], [1, 1, 1, 1], [0, 127, 128, 255], mat);
drawRoundRect(0, 0, largeur, hauteur, 7, 7);
}
with (skin2.graphics)
{
lineStyle(1, 0x707070);
beginGradientFill("linear", [0xffaaaa, 0xff5555, 0xff2222, 0xff0000], [1, 1, 1, 1], [0, 127, 128, 255], mat);
drawRoundRect(0, 0, largeur, hauteur, 7, 7);
}
skin2.visible = false;
with (police)
{
font = "arial";
size = 14;
align = "center";
color = 0;
}
with (title)
{
defaultTextFormat = police;
text = caption;
width = textWidth + 10;
height = textHeight + 5;
x = (w - width) / 2;
y = (h - height) / 2;
selectable = false;
}
addChild(skin1);
addChild(skin2);
addChild(title);
mouseChildren = false;
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}
private function onMouseDown(e:Event):void
{
// inutile de rajouter un boolean puisque visible est un boolean- En une ligne, c'est réglé (excuse) :
with (skin1 && skin2) visible = !visible;
// si tu avais voulu changer la couleur du canvas du bouton en faisant un clear() sans les shape , ça devenait nécessaire.
/*permute =!permute;
if (permute)
{
skin1.visible = false;
skin2.visible = true;
}
else
{
skin1.visible = true;
skin2.visible = false;
}*/
}
public function get caption():String
{
return _caption;
}
public function set caption(value:String):void
{
_caption = value;
title.text = _caption;
title.width = title.textWidth + 10;
title.height = title.textHeight + 5;
title.x = (largeur - title.width) / 2;
}
}
} |
Partager