Advertisement
soyuka

AS3 poubelles

Apr 27th, 2013
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import fl.transitions.Tween;
  2. import fl.transitions.easing.*;
  3. import fl.transitions.TweenEvent;
  4. import flash.utils.Dictionary;
  5. import flash.display.Sprite;
  6. import flash.events.MouseEvent;
  7.  
  8. /*Définition des fontions en haut (ça plante moins) */
  9.  
  10. /**
  11. * Fonction run
  12. * deplace l'objet suivant si le jeu n'est pas fini
  13. **/
  14. function run():void {
  15.     if(objetDeplace < maxObjets) {
  16.         deplacementInitial(objets[objetDeplace]); //on déplace l'objet
  17.     } else {
  18.         champTexte.text = 'Bravo ! Votre score est de : ' + score; //Texte de fin
  19.     }
  20. }
  21.  
  22. /**
  23. * Fonction deplacementInitial
  24. * Déplace l'objet donné sur le plateau
  25. **/
  26. function deplacementInitial(obj, temps = 1) {
  27.  
  28.     var positionPlateau = new Dictionary();
  29.    
  30.     /*Définition de la position sur le plateau*/
  31.     positionPlateau['x'] = 400;
  32.     positionPlateau['y'] = 245;
  33.    
  34.     //Référence de Tween : (http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/fl/transitions/Tween.html)
  35.     //Tween(obj:Object, prop:String, func:Function, begin:Number, finish:Number, duration:Number, useSeconds:Boolean = false)
  36.    
  37.     //Déplace l'objet sur le plateau, surement à revoir en fonction des objets
  38.     var deplacementx:Tween = new Tween(obj, "x", Strong.easeOut, obj.x, positionPlateau['x'], temps, true);
  39.     var deplacementy:Tween = new Tween(obj, "y", Strong.easeOut, obj.y, positionPlateau['y'], temps, true);
  40.    
  41.     //(ré)activation du listener
  42.     obj.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
  43.     obj.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
  44. }
  45.  
  46. /**
  47. * Fonction testMatch
  48. * Teste si l'objet à été mis dans la bonne poubelle
  49. **/
  50. function testMatch(target, obj) {
  51.     //Si l'objet = la valeur de dict[objet_depose]
  52.     if(obj == dict[target.parent]) {
  53.         champTexte.text = 'Ouiiii';
  54.        
  55.         //passe l'objet à 0.5 d'opacité
  56.         obj.alpha = 0.5;
  57.        
  58.         //On augmente le nb d'objets déplacés
  59.         objetDeplace++;
  60.        
  61.         //On augmente le score
  62.         score++;
  63.        
  64.         //Et on relance le tout
  65.         run();
  66.     } else {
  67.         champTexte.text = 'Loupé';
  68.        
  69.         //On peut par exemple baisser le score de 1 :
  70.         //score--;
  71.        
  72.         deplacementInitial(obj, 1); //déplace sur le plateau à nouveau
  73.     }
  74. }
  75.  
  76. // Définit l´événement mouse down handler (l´utilisateur déplace l´objet)
  77. function mouseDownHandler(evt:MouseEvent):void {
  78.    
  79.    
  80.     var obj = evt.target;
  81.     // limite le déplacement à l´intérieur du canevas
  82.     obj.startDrag();
  83. }
  84.  
  85. // Lorqu'on lache le curseur
  86. function mouseUpHandler(evt:MouseEvent):void {
  87.  
  88.    
  89.     var obj = evt.target;
  90.    
  91.     obj.stopDrag(); //stop le drag
  92.    
  93.     //Si on déplace pdt l'animation ça foire, donc je désactive le listener
  94.     obj.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
  95.     obj.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
  96.    
  97.  
  98.     // obj.dropTarget donne la référence de la forme de l´objet sur laquelle on a déposé l'objet
  99.     var target = obj.dropTarget;
  100.    
  101.     // Si l´objet existe on fais le test
  102.     if (target != null)
  103.     {
  104.         testMatch(target, obj);
  105.     }
  106.     else
  107.     {
  108.         deplacementInitial(obj, 1); //sinon on le remet sur le plateau
  109.     }
  110.  
  111. }
  112.  
  113. /* Script */
  114.  
  115. //définition du champ de texte où apparaissent les infos
  116. var champTexte = textField;
  117.  
  118. var dict = new Dictionary ();
  119.  
  120. //Ici on défini tous nos objets de la façon suivante :
  121. //dict[objet_arrive] = obj;
  122.  
  123. dict[poubelle_verte] = pomme;
  124. dict[poubelle_bleue] = pomme2;
  125. dict[poubelle_jaune] = pomme3;
  126.  
  127. var maxObjets = 0; //va nous servir à la fin du jeu pour compter chaque objet déposé correctement
  128. var score = 0;
  129.  
  130. var objets:Array = new Array(); //tableau d'objets
  131.  
  132.  
  133. for each (var item in dict)
  134. {
  135.     item.useHandCursor = true; //donne normalement le curseur de main à l'objet qui peut bouger
  136.    
  137.     //Va stocker les objets numériquement pour qu'on puisse les faire suivre
  138.     objets[maxObjets] = item;
  139.     maxObjets++;
  140. }
  141.  
  142. var objetDeplace = 0; //compteur des objets
  143.  
  144. run(); //lance run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement