Salut,
Je débute en as3 mais j'ai fait ce code.
Il est super commenté et même s'il peut être aisément amélioré j'espère qu'il va pouvoir t'aider.
/// Déclaration des différentes variables ///
/*
Dans un premier temps on stocke les clips dans des variables qu'on affichera par la suite.
var "le nom de la varible":"le nom du clip à stocker"="le nom du clip à stocker"();
*/
// les images
var img1:image1=new image1();
var img2:image2=new image2();
var img3:image3=new image3();
var img4:image4=new image4();
// les noms
var nm1:nom1=new nom1();
var nm2:nom2=new nom2();
var nm3:nom3=new nom3();
var nm4:nom4=new nom4();
//Création d'une zone texte pour afficher les resultats dans une variable appelée zonetexte
var zoneTexte:TextField = new TextField();
/*
déclaration de variables pour chacunes des images
0: l'image n'est pas associée au bon nom/ 1:l'image est associée au bon nom
*/
var ver1=0;
var ver2=0;
var ver3=0;
var ver4=0;
//
//Afficher les clips: addChild("le nom de la variable à afficher");
addChild(zoneTexte);
//les images
addChild(img1);
addChild(img2);
addChild(img3);
addChild(img4);
//les noms
addChild(nm1);
addChild(nm2);
addChild(nm3);
addChild(nm4);
//
/*
maintenant il te faut les positionner sur la scene comme tu le desir:
"le nom de la variable"."l'axe"="coordonée sur l'axe";
*/
//image
img1.x=20;
img1.y=30;
img2.x=20;
img2.y=100+img1.y;
img3.x=20;
img3.y=100+img2.y;
img4.x=20;
img4.y=100+img3.y;
//nom
nm1.x=400;
nm1.y=30;
nm2.x=400;
nm2.y=100+nm1.y;
nm3.x=400;
nm3.y=100+nm2.y;
nm4.x=400;
nm4.y=100+nm3.y;
// texte
zoneTexte.x=200;
//on passe les clips en mode bouton
nm1.buttonMode=true;
nm2.buttonMode=true;
nm3.buttonMode=true;
nm4.buttonMode=true;
//
//fonction qui me permet de gerer les différents drag & drop
function dragNm(evt:MouseEvent):void {
evt.currentTarget.startDrag();
}
function dropNm(evt:MouseEvent):void {
evt.currentTarget.stopDrag();
}
nm1.addEventListener(MouseEvent.MOUSE_DOWN, dragNm);
nm1.addEventListener(MouseEvent.MOUSE_UP, dropNm);
nm2.addEventListener(MouseEvent.MOUSE_DOWN, dragNm);
nm2.addEventListener(MouseEvent.MOUSE_UP, dropNm);
nm3.addEventListener(MouseEvent.MOUSE_DOWN, dragNm);
nm3.addEventListener(MouseEvent.MOUSE_UP, dropNm);
nm4.addEventListener(MouseEvent.MOUSE_DOWN, dragNm);
nm4.addEventListener(MouseEvent.MOUSE_UP, dropNm);
//
//Création d'un ecouteur de scene qui appel la fonction "verif"
stage.addEventListener(Event.ENTER_FRAME,verif);
function verif(e:Event) {
/*
J'appel une fonction appelée "test" qui permet de replacer les clips à
leur position de début si le nom touche la mauvaise image.
Voir la fonction test plus Bas.
*/
test(nm1,img2,img3,img4,30);
test(nm2,img1,img3,img4,60);
test(nm3,img2,img1,img4,90);
test(nm4,img2,img3,img1,120);
/*
Si j'amais le joueur trouve une des solutions
*/
if (nm1.hitTestObject(img1)==true&&ver1==0) {
nm1.x=img1.x;//je place le clip nom en dessous de l'image associée
nm1.y=img1.y+img1.height+20;
zoneTexte.text="bon";// la zone texte affiche "bon"
ver1=1;//le solution numero 1 est trouvée
nm1.stopDrag();//le clip ne se deplace plus
nm1.mouseEnabled=false;//on ne peut plus cliquer dessus
}
if (nm2.hitTestObject(img2)==true&&ver2==0) {
nm2.x=img2.x;
nm2.y=img2.y+img2.height+20;
zoneTexte.text="bon";
ver2=1;
nm2.stopDrag();
nm2.mouseEnabled=false;
}
if (nm3.hitTestObject(img3)==true&&ver3==0) {
nm3.x=img3.x;
nm3.y=img3.y+img3.height+20;
zoneTexte.text="bon";
ver3=1;
nm3.stopDrag();
nm3.mouseEnabled=false;
}
if (nm4.hitTestObject(img4)==true&&ver4==0) {
nm4.x=img4.x;
nm4.y=img4.y+img4.height+20;
zoneTexte.text="bon";
ver4=1;
nm4.stopDrag();
nm4.mouseEnabled=false;
}
/*
Si jamais le joueur trouve toutes les solutions
*/
if (ver1==ver2==ver3==ver4==1) {
zoneTexte.text="bravo";
}
}
function test(nomTeste,imageMauvaise1,imageMauvaise2,imageMauvaise3,positionDepartY) {
if (nomTeste.hitTestObject(imageMauvaise1)==true) {
nomTeste.stopDrag();// on arrete le deplacement
nomTeste.x=400;// l'objet nom revient à sa place
nomTeste.y=positionDepartY;
zoneTexte.text="faux";// la zone de texte affiche "faux"
}
if (nomTeste.hitTestObject(imageMauvaise2)==true) {
nomTeste.stopDrag();
nomTeste.x=400;
nomTeste.y=positionDepartY;
zoneTexte.text="faux";
}
if (nomTeste.hitTestObject(imageMauvaise3)==true) {
nomTeste.stopDrag();
nomTeste.x=400;
nomTeste.y=positionDepartY;
zoneTexte.text="faux";
}
}