Débutant AS3 recherche une correction pour un premier script

Débutant AS3 recherche une correction pour un premier script - Flash/ActionScript - Programmation

Marsh Posté le 17-12-2014 à 21:15:05    

Bonjour tout le monde, je viens vers vous pour une petite correction de mon premier petit script.
l'idée est simple , un bouton ( le vaisseau) et un clip ( le rayon)
quand on clic sur le vaisseau le rayon part, quand le rayon arrive au bout de l écran  il est reset à ça position initiale.
 
après avoir écrit mon script je le lance et rien ne se passe . les deux objets ne sont même pas à leur positions.
voici le script:

Code :
  1. import flash.events.*;
  2. //mise en place des variables Largeur et hauteur correspondant  à la scène.  
  3. var largeur:uint = stage.stageWidth;
  4. var hauteur:uint = stage.stageHeight;
  5. //placement des deux objets
  6. vaisseau.x = largeur - 540;
  7. vaisseau.y = hauteur / 2;
  8. rayon.x = largeur - 540;
  9. rayon.Y = hauteur / 2;
  10. // mise en place de la variable position initiale pour faire réapparaitre le rayon en position initiale  
  11. var poseInit:Number = rayon.y;
  12. //instalation du click bouton entrainant la fonction sedeplacer
  13. vaisseau.addEventListener(MouseEvent.CLICK,auClic);
  14. function auClic(e:Event)
  15. {
  16.  rayon.addEventListener(Event.ENTER_FRAME,sedeplace);
  17. }
  18. // mise en place de la fonction sedeplacer
  19. function sedeplace(e:Event):void
  20. {
  21.  rayon.y = rayon.y - 10;
  22. }
  23. // mise en place du reset quand le rayon sort de l écran
  24. if (rayon.y > 550)
  25. {
  26.  rayon.y = poseInit;
  27.  rayon.removeEventListener(Event.ENTER_FRAME,sedeplace);
  28. }


 
si vous avez des conseils sur l'organisation ou autres ils sont les bienvenues ( mieux vaut apprendre avec les bonnes bases et techniques de mise en forme)  
 
bonne journée à tous :D
 

Reply

Marsh Posté le 17-12-2014 à 21:15:05   

Reply

Marsh Posté le 18-12-2014 à 19:56:41    

Personne n'as d 'idée?
je pige pas pourquoi il ne se passe rien, comme si je n'avais pas mis de code.

Reply

Marsh Posté le 19-12-2014 à 10:51:59    

bonjour
tu mets dans ton code  
 
vaisseau.addEventListener(MouseEvent.CLICK,auClic);
function auClic(e:Event){
              rayon.addEventListener(Event.ENTER_FRAME,sedeplace);
}
 
alors que la fonction auClic est un MouseEvent Donc
 
vaisseau.addEventListener(MouseEvent.CLICK,auClic);
function auClic(e:MouseEvent){
                            rayon.addEventListener(Event.ENTER_FRAME,sedeplace);
}
 
@+ gustave02

Reply

Marsh Posté le 19-12-2014 à 13:31:16    

Ahah merci, pour moi débutant tout ça c'est pas encore trés clair :D.
Je vais vite corriger ça.
 
Bon ba après test toujours rien , je pige pas pourquoi il ne se passe rien.
Les deux objets ne sont même pas à leur place.
Je dois avoir fait une bourde mais la quelle.
 
D'après le bouquin les premières lignes sont bonnes donc le rayon devrait être placé au milieu de l'axe Y et à 10 de l'origine de l'axe X.
Et pourtant il est en plein milieu de ma scène, la ou je ai posé l’occurrence pour l’éditer et lui donner un nom pour le code.


Message édité par agrahambell le 19-12-2014 à 13:40:37
Reply

Marsh Posté le 19-12-2014 à 14:36:29    

envois un fla en version 5.5 .
@+

Reply

Marsh Posté le 19-12-2014 à 14:54:48    

voila c'est partis ;)

Reply

Marsh Posté le 19-12-2014 à 15:02:28    

je repen et je comment ok? si pas ok  tant pis.
 
    import flash.events.*; /// normal
    //mise en place des variables Largeur et hauteur correspondant  à la scène.  
    var largeur:uint = stage.stageWidth; // tu la connait puisque que c'est toi qui détermine la scène pourquoi créer cette variable?
    var hauteur:uint = stage.stageHeight;// tu la connait puisque que c'est toi qui détermine la scène pourquoi créer cette variable?
 
    //placement des deux objets
    vaisseau.x = largeur - 540; // vaisseaux.x = // la largeur que ta determiné /2;
    vaisseau.y = hauteur / 2;// vaisseaux.x = // la hauteur que ta determiné /2;
    rayon.x = largeur - 540; // rayon.x = // la largeur que ta determiné /2;
    rayon.Y = hauteur / 2; // rayon.y = // la hauteur que ta determiné /2;
    // mise en place de la variable position initiale pour faire réapparaitre le rayon en position initiale  
    var poseInit:Number = rayon.y; // c'est toi qui la deja fixé
    //instalation du click bouton entrainant la fonction sedeplacer
    vaisseau.addEventListener(MouseEvent.CLICK,auClic);
    function auClic(e:MouseEvent):void{
                    rayon.addEventListener(Event.ENTER_FRAME,sedeplace);
    }
    // mise en place de la fonction sedeplacer
      function sedeplace(e:Event):void{
                               rayon.y = rayon.y - 10;  // ok  
      }
// mise en place du reset quand le rayon sort de l écran
     if (rayon.y > 550) { // cette condition ne sera effectuer qu'une seule fois je crois qu'elle n'est pas a ca place.
             rayon.y = poseInit;
                rayon.removeEventListener(Event.ENTER_FRAME,sedeplace);
}

Reply

Marsh Posté le 19-12-2014 à 15:05:22    

je vois pas ton fla

Reply

Marsh Posté le 19-12-2014 à 15:14:02    

tu as mis dans ton code.
rayon.Y au lieu de rayon.y

Reply

Marsh Posté le 19-12-2014 à 15:24:57    

http://www.citroen-france-tours-no [...] 0nom-1.swf
j'ai mis un exemple a cette adresse.
http://www.citroen-france-tours-no [...] 8Bl_forum/ tu pourras prendre le fla.
@+ gustave02

Reply

Marsh Posté le 19-12-2014 à 15:24:57   

Reply

Marsh Posté le 19-12-2014 à 17:23:10    

ok
je crois comprendre t'as logique (que je n'aime pas car bizarre);
tu as mis un frame 1(image1), un lecteur ( public var video1:FLVPlayback) ;
essais de le mettre qu' a la frame 2.
@+ gustave02

Reply

Marsh Posté le 19-12-2014 à 17:35:47    

me pas tenir compte du message ci dessus. erreur de discutions.

Reply

Marsh Posté le 19-12-2014 à 17:40:39    

je place les variable largeur et hauteur pour les réutiliser après.
si je change la taille de ma scène les objet resterons bien au centre sur Y.
 
Sinon grâce à ton fichier j'ai pu regarder mais je trouve pas la réponse mal grès tout.
 l installation du clic plante le script.
 
 //instalation du click bouton entrainant la fonction sedeplacer
    vaisseau.addEventListener(MouseEvent.CLICK,auClic);
    function auClic(e:MouseEvent):void{
                    rayon.addEventListener(Event.ENTER_FRAME,sedeplace);
    }  
 
pour temps c'est la même que sur ton code.
et si je copie colle ton code à la place du miens ça fonctionne parfaitement.
 
C'est bon j ai trouvé mes deux erreurs :D
Merci du coup de main.
Premièrement je ne savais pas que le if devait être inclus dans la fonction "sedeplace".
Deuxièmement la fonction "sedeplace" était réutilisée sous le nom "seDeplace" du coup le programme ne comprenait rien XD.
 
Merci pour ton aide et bonne fin de journée. :D


Message édité par agrahambell le 19-12-2014 à 17:57:53
Reply

Marsh Posté le 19-12-2014 à 18:02:21    

j'ai repris ton code de depart avec mes composant ( vaisseau et rayon ) et moi ca marche.
j'ai mis dans le dossier du site tu peux aller te servir.
 
donne ton code erreur.
 
vérifie que tes composant (vaisseau et rayon) soit bien nommé dans les propriétés.
@+ gustave02.

Reply

Marsh Posté le 19-12-2014 à 18:04:07    

vu ok.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed