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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
package classes
{
// Les imports nécessaires à la classe
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
// La classe qui gère un sous menu
public class SousMenu extends MovieClip
{
// Attributs
private var fond:MovieClip; // Le fond derrière le texte
private var texte:MovieClip; // Le texte
private var surligne:Boolean; // Le sous menu a été cliqué ou non
private var couleurDefaut:ColorTransform; // La couleur par défaut du fond
private var couleurSurlignage:ColorTransform; // La couleur de surlignage du fond
private var tableau:Array; // Le tableau de tous les sous menus
// Constructeur
public function SousMenu(fond:MovieClip, texte:MovieClip)
{
// Si le fond et le texte ne sont pas null
if ((fond != null) && (texte != null))
{
// Attribution des valeurs pour les attributs
this.fond = fond;
this.texte = texte;
this.surligne = false;
// Active le mode bouton du MovieClip
this.fond.buttonMode = true;
// Définit la couleur par défaut et de surlignage (Bleu)
this.couleurDefaut = fond.transform.colorTransform;
this.couleurSurlignage = new ColorTransform();
this.couleurSurlignage.color = 0X57C1DB;
// Abonnement aux évènements
this.fond.addEventListener(MouseEvent.ROLL_OVER, activeSurlignage);
this.fond.addEventListener(MouseEvent.ROLL_OUT, enleveSurlignage);
this.fond.addEventListener(MouseEvent.CLICK, nouvellePage);
}
// Sinon, on affiche un message
else
{
trace("Objet mal créé !");
}
}
// Fonction qui active le surlignage
public function activeSurlignage(e:MouseEvent):void
{
// Donne l'accès au ColorTransform du fond
var couleur:ColorTransform = e.target.transform.colorTransform;
// On définit la couleur (bleu)
couleur.color = 0X57C1DB;
// On applique la couleur au fond
e.target.transform.colorTransform = couleur;
}
// Fonction qui enlève le surlignage
public function enleveSurlignage(e:MouseEvent):void
{
// Si on n'a pas cliqué
if (!(surligne))
{
// On réapplique la couleur par défaut au fond
e.target.transform.colorTransform = couleurDefaut;
}
}
// Fonction qui applique une couleur au fond et enregistre la nouvelle page à afficher
public function nouvellePage(e:MouseEvent):void
{
// On enregistre l'état du fond (surligné ou non)
var surlignage:Boolean = surligne;
for each (var sousMenu:* in tableau)
{
// On redéfinit la couleur par défaut pour tous les sous menus
sousMenu.getFond().transform.colorTransform = couleurDefaut;
sousMenu.setSurligne(false);
}
// On applique la couleur au fond
e.target.transform.colorTransform = couleurSurlignage;
// Le sous menu est surligné
surligne = true;
// TODO: Fix it !
//stage.swapChildren(fond, texte);
}
// Fonction qui enregistre tous les sous menus
public function setTableau(tableau:Array)
{
// Si le tableau n'est pas null
if (tableau != null)
{
// On enregistre le tableau
this.tableau = tableau;
}
// Sinon, on affiche un message
else
{
trace("Le tableau ne peut pas être assigné car il est null");
}
}
// Fonction qui enregistre l'état du fond (surligné ou non)
public function setSurligne(surligne:Boolean)
{
this.surligne = surligne;
}
// Fonction qui applique la couleur de fond
public function setCouleurSurlignage()
{
this.fond.transform.colorTransform = couleurSurlignage;
}
// Fonction qui retourne le fond
public function getFond():MovieClip
{
return fond;
}
}
} |
Partager