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
|
stop();
import flash.geom.ColorTransform;
import flash.geom.Transform;
// récupération de la taille du XML
var tailleDonnees:Number = 0;
var mesDepartements:Array = new Array();
var nbDepartements:Number = 0;
var monDep:MovieClip = new MovieClip();
var nbClips:Number = 95; // max départements existants
var numeroDep:Array = new Array();
// le champ texte dynamique pour affichage des numéro de départements
this.createTextField("zoneTexte", 1, 45, 20, 120, 40);
zoneTexte.multiline = true;
zoneTexte.wordWrap = true;
zoneTexte.html = true;
var my_fmt:TextFormat = new TextFormat();
my_fmt.color = 0x0099CC;
my_fmt.size = 14;
my_fmt.font = "Arial";
zoneTexte.embedFonts = false;
my_fmt.align = "center";
zoneTexte.background = false;
//zoneTexte.backgroundColor = 0xFFF000;
zoneTexte.border = false;
//zoneTexte.borderColor = 0x000000;
// Les 3 couleurs
var couleurActif:ColorTransform = new ColorTransform();
couleurActif.rgb = 0xFFC000;
var couleurRollOver:ColorTransform = new ColorTransform();
couleurRollOver.rgb = 0xFF9900;
var couleurNonActif:ColorTransform = new ColorTransform();
couleurNonActif.rgb = 0x1E9CDF;
// chargement du xml
donnees_xml = new XML();
donnees_xml.ignoreWhite = true;
// /!\ Attention au nom du XML :)
donnees_xml.load("centres.xml");
// Boucle principale qui parcourt les clips sur la scene
function init() {
// on parcourt tous les clips dept sur la scène
for (var i:Number = 1; i <= nbClips; i++) {
// On cible les départements sur la scène
if (i <= 9) {
monDep = this["dept_" + "0" + i];
} else {
monDep = this["dept_" + i];
}
// on récupère le numéro du département et on le tague avec ce numéro
// Ca va éviter de refaire l'extraction de son numéro à chaque fois qu'on en aura besoin
numeroDep = monDep._name.split("_");
monDep.numero = numeroDep[1];
//trace(monDep);
// Boucle principale qui va déterminer si le clip est actif, et sa couleur
for (var boucleTab:Number = 0; boucleTab < nbDepartements; boucleTab++) {
if (monDep.numero == mesDepartements[boucleTab]) {
// Le département a une correspondance dans le XML, on le tague pour le différencier des autres
monDep.actif = true;
}
}
//trace (boucleTab);
if (monDep.actif) {
//trace (monDep.numero);
// Si le département sur la scène a une correspondance dans le XML
// On lui applique une couleur de base (rouge vif dans ce cas)
var transActif:Transform = new Transform(monDep);
transActif.colorTransform = couleurActif;
// Evements souris pour les departements avec correspondance
monDep.onRollOver = function() {
if (this.numero == 75) // tous les départements IDf sont en 75
zoneTexte.htmlText = "Région <b>Ile de France</b>";
else if (this.numero == 20) // la corse est 1 seul département , le 20
zoneTexte.htmlText = "Département <b>Corse</b>";
else // les autres
zoneTexte.htmlText = "Département <b>" + this.numero + "</b>";
zoneTexte.setTextFormat(my_fmt);
var transRollOver:Transform = new Transform(this);
transRollOver.colorTransform = couleurRollOver; // couleur jaune orange
};
monDep.onRelease = function() {
//var transRollOver:Transform = new Transform(this);
//transRollOver.colorTransform = couleurRollOver; // couleur jaune orange
getUrl("votrepage.php?id=" + this.numero, "_self"); // pour renvoyer vers PHP
};
// Couleur au NonActif... Vu qu'il y a correspondance, le clip redevient de la couleur d'un dept actif (rouge vif)
monDep.onRollOut = function() {
zoneTexte.htmlText = "";
var transActif:Transform = new Transform(this);
transActif.colorTransform = couleurActif; // Couleur rouge
};
}
}
}
// Au chargement du XML
donnees_xml.onLoad = function(success) {
// Quand le chargement du XML est effectué
if (success) {
// récupération de la taille du XML
tailleDonnees = donnees_xml.firstChild.childNodes.length;
// Renvoie la taille des donnees dans le XML
// trace(tailleDonnees);
for (var i:Number = 0; i < tailleDonnees; i++) {
donnees = donnees_xml.firstChild.childNodes[i].firstChild;
numeroDep = donnees.attributes.numero;
// On ajoute le dept trouvé dans le xml dans un tableau
mesDepartements.push(numeroDep);
}
// Le chargement et le parcours du XML sont terminés, tout est stocké dans un tableau
// on récupère la taille du tableau
nbDepartements = mesDepartements.length;
// On lance la fonction principale
init();
}
};
// END |
Partager