[AS3] Autre méthode pour switch imbriqués ?
Bonjour à tous,
Je suis tout nouveau sur le forum et je pose donc ma première question... Merci de votre indulgence ;)
Je fais une galerie de miniatures qui se chargent à partir d'un XML qui se charge lui même à partir d'une page PHP qui liste un répertoire d'images.
Jusque là pas de soucis. Mais je voudrait repérer le "clic" sur une miniature afin d'ouvrir l'image en grand :
J'ai utilisé addEventListener(MouseEvent.CLICK, clic_image); mais je ne sais pas comment trouver l'index (le numéro) de limage cliquée. Je l'ai fais de manière très barbare par switch imbriqués qui travaille sur la position de mon objet pour en conclure le numéro de l'objet :
Voici la galerie de miniatures en question :
http://www.dudeanddivide.com/flash/miniatures.jpg
La fonction cli_image appelle la fonction trouve_image :
Code:
trouve_image (evt.target.x, evt.target.y);
Et la fonction trouve_image déduit le numéro de la miniature (entre 1 et 24 ici) en fonction de evt.target.x et y) :
Code:
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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
function trouve_image (coordx:uint, coordy:uint)
{
var img:String;
switch (coordx)
{
case 34 :
switch (coordy)
{
case 30 :
img="01";
break;
case 80 :
img="07";
break;
case 130:
img="13";
break;
case 180 :
img="19";
break;
}
break;
case 84 :
switch (coordy)
{
case 30 :
img="02";
break;
case 80 :
img="08";
break;
case 130:
img="14";
break;
case 180 :
img="20";
break;
}
break;
case 134 :
switch (coordy)
{
case 30 :
img="03";
break;
case 80 :
img="09";
break;
case 130:
img="15";
break;
case 180 :
img="21";
break;
}
break;
case 184 :
switch (coordy)
{
case 30 :
img="04";
break;
case 80 :
img="10";
break;
case 130:
img="16";
break;
case 180 :
img="22";
break;
}
break;
case 234 :
switch (coordy)
{
case 30 :
img="05";
break;
case 80 :
img="11";
break;
case 130:
img="17";
break;
case 180 :
img="23";
break;
}
break;
case 284 :
switch (coordy)
{
case 30 :
img="06";
break;
case 80 :
img="12";
break;
case 130:
img="18";
break;
case 180 :
img="24";
break;
}
break;
}
texte.text= "SourisX : " + String (coordx) + " | sourisY : " + String (coordy) + " Img : " + img;
var GrandeImage:Loader = new Loader();
var GImg:URLRequest = new URLRequest("img/grandes/bagues" + img + ".jpg");
GrandeImage.x=500;
GrandeImage.y=-200;
GrandeImage.load(GImg);
addChild(GrandeImage);
} |
Voilà si vous avez besoin d'autres morceaux de mon code n'hésitez pas !
Merci à tous d'avance :D
F.