IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Yeux qui suivent la souris


Sujet :

ActionScript 3

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut Yeux qui suivent la souris
    Bonjour à tous,
    Une question toute bête très certainement, mais je ne trouve pas de réponse.
    J'ai crée une ligne d'yeux via une boucle for, lesquels sont sensés suivre le mouvement de la souris. Avec le code ci-dessous, seul mon dernier oeil, suit la souris.
    Je n'arrive pas à comprendre pourquoi je n'arrive pas à récupérer chacun des yeux de la boucle dans la fonction, je ne récupère que le dernier. (pas sûre d'être clair )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    var oeil:Oeil ; 
    var fond:Sprite = new Sprite ();
    addChild ( fond );
    var posX = 10;
    var posY = 10;
     
    for (var i:int=0 ; i<9 ; i++) {
    	oeil = new Oeil ();
    	oeil.x = posX;
    	oeil.y = posY;
    	posX += 40 ;
     
    	fond.addChild ( oeil );
     
    function suivreSouris(e:MouseEvent):void {
     
    	var dx = this.mouseX - this.oeil.x;
    	var dy = this.mouseY - this.oeil.y;	
    	var angle = Math.atan2(dy, dx);
     
    	this.oeil.pupille_mc.x = 10*Math.cos(angle);
    	this.oeil.pupille_mc.y = 10*Math.sin(angle);
    } 
    }
    this.addEventListener(MouseEvent.MOUSE_MOVE,suivreSouris);
    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut,

    (correction)
    tu devrais nommer les yeux pour pouvoir les viser car la tu ne peux viser qu'une seule occurence, la derniere qui a été crée

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    Bonjour !
    Merci pour ta réponse.
    En fait, en faisant un trace dans ma boucle, tous mes objets existent, mais si je fais un trace dans ma fonction, je n'ai plus qu'un seul objet, le dernier.
    J'ai essayé de les nommer dans ma boucle, mais cela ne change pas le pb ; je n'arrive pas à les récupérer dans ma fonction.

  4. #4
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    bien sur que tout existe avec le trace dans la boucle, le problème est lors de chaque occurrence de la boucle, tu écrases le contenu de la variable œil, ce qui explique que tu peux viser que la dernière ...
    soit tu crées un classe perso pour tes yeux, soit a chaque changement de la position de la souris tu fais une boucle sur les 8 yeux pour changer leurs direction !
    info : la classe DisplayObjectContainer a la méthode getChildByName -> cf doc

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    Désolée, je n'avais plus de connexion internet pour répondre.
    Merci pour ta réponse, je vais creuser la doc.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    J'ai fini par trouver, je joins le fichier fla (CS4) pour ceux qui s'énervent régulièrement comme moi sur les boucles for.
    Je n'avais pas créé un tableau pour stocker mes instances, c'était peut-être ça le problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    var oeil:Array = new Array (); 
    var posX = 20;
    var posY = 20;
    var fond:Sprite = new Sprite ();
    addChild ( fond );
     
    for (var i:int=0 ; i<42 ; i++) 
    	{
    	oeil[i] = new Oeil ();
    	oeil[i].x = posX ;
    	oeil[i].y = posY ;
    	posX += 39 ;
    	if (posX > 540) {posY += 40 ; posX = 20};	
    	fond.addChild ( oeil[i] );	
     
    function suivreSouris(e:MouseEvent):void {
    	for (i=0 ; i<42; i++) {
    		var dx = this.mouseX - this.oeil[i].x;
    		var dy = this.mouseY - this.oeil[i].y;	
    		var angle = Math.atan2(dy, dx);
    		this.oeil[i].pupille_mc.x = 10*Math.cos(angle);
    		this.oeil[i].pupille_mc.y = 10*Math.sin(angle);
    		}
    	} 
    	}
     
    this.addEventListener(MouseEvent.MOUSE_MOVE,suivreSouris);
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/03/2007, 16h38
  2. un element qui fuit la souris ?
    Par KOMODO dans le forum Flash
    Réponses: 6
    Dernier message: 03/08/2006, 15h43
  3. DragDrop faire un shape qui suit la souris
    Par matech dans le forum Langage
    Réponses: 9
    Dernier message: 15/04/2006, 18h41
  4. Fenêtre (sorte de popup) qui suit la souris en onmouseover
    Par yoyot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/03/2005, 09h52
  5. fenetre qui fuit la souris
    Par Nurs dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/11/2004, 23h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo