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 :

Event deux touches du clavier simultanément


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Par défaut Event deux touches du clavier simultanément
    Bonjour,

    j'ai un petit fla ou je fait ce déplacer un clip grâçe au x touches du clavier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
    function reportKeyDown(event:KeyboardEvent):void
    {
    	if(event.keyCode == 37){ //LEFT
    		c_map.x += vitesse_depla_map ;   
    	}else if(event.keyCode == 39){ //RIGHT
    		c_map.x -= vitesse_depla_map ;   
    	}else if(event.keyCode == 38){ //UP
    		c_map.y += vitesse_depla_map ;   
    	}else if(event.keyCode == 40){ //DOWN
    		c_map.y -= vitesse_depla_map ;   
    	}
    }

    Ma question est : Est t'il possible de gèrer en AS3 l'appuis de plusieurs touche. Pour par exemple faire déplacer mon clip en diagonal ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 32
    Par défaut
    Salut !

    Essaye de faire des tests avec la méthode trace();

    Sinon peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(event.keyCode == 37 && event.keyCode == 38){ //LEFT+UP
    	// alors...   
    }

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Par défaut
    J'ai essayé....

    Ca donne rien. Quand on fait des traces de event on voit bien qu'il ne prend en compte q'une seul des touches appuyées, la dernière .

    Merci beaucoup. je continue a chercher

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 32
    Par défaut
    Regarde mon exemple...

    Dessine une forme sur ta scène et converti la en movieClip en lui donnant le nom d'occurence monClip.

    Ensuite ajoute le code suivant :
    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
    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
     
    stage.focus = this;
     
    var droite:Boolean = new Boolean ();
    var haut:Boolean = new Boolean ();
    var gauche:Boolean = new Boolean ();
    var bas:Boolean = new Boolean ();
     
    this.addEventListener(KeyboardEvent.KEY_DOWN, toucheDown);
    this.addEventListener(KeyboardEvent.KEY_UP, toucheUp);
    this.addEventListener(Event.ENTER_FRAME, deplace);
     
    function toucheDown(evt:KeyboardEvent) {
    	if (evt.keyCode == 38) {
    		haut=true;
    	}
    	if (evt.keyCode == 39) {
    		droite=true;
    	}
    	if (evt.keyCode == 37) {
    		gauche=true;
    	}
    	if (evt.keyCode == 40) {
    		bas=true;
    	}
    }
    function toucheUp(evt:KeyboardEvent) {
    	if (evt.keyCode == 38) {
    		haut=false;
    	}
    	if ( evt.keyCode == 39) {
    		droite=false;
    	}
    	if (evt.keyCode == 37) {
    		gauche=false;
    	}
    	if (evt.keyCode == 40) {
    		bas=false;
    	}
    }
    function deplace(evt:Event) {
    	if (droite) {
    		monClip.x++;
    	}
    	if (haut) {
    		monClip.y--;
    	}
    	if (gauche) {
    		monClip.x--;
    	}
    	if (bas) {
    		monClip.y++;
    	}
    }
    Tu verras que si tu presses par exemple la touche "fleche du haut"+ la touche "fleche gauche", monClip se déplacera en même temps vers le haut et la gauche...

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    76
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 76
    Par défaut
    RockNtrek, tu es excellent! C'est l'un des premier truc que j'ai appris en Java! Et en passant au flash, je me retrouve perdu! Faut éviter de vouloir mettre toutes les actions dans les même méthodes... Chacun sa mission!

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

Discussions similaires

  1. Touches clavier simultanées
    Par Dimitri_87 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 18/11/2009, 16h45
  2. Réponses: 6
    Dernier message: 19/03/2009, 16h24
  3. [SFML] - Appui sur deux touches simultanément
    Par skysee dans le forum SFML
    Réponses: 1
    Dernier message: 17/09/2008, 09h30
  4. Evènement : Deux touches appuyées simultanément
    Par Matt112 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 21/01/2008, 09h19
  5. Appui simultané sur les deux touches SHIFT
    Par dcmo5 dans le forum SDL
    Réponses: 31
    Dernier message: 12/11/2007, 15h32

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