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

Flash Discussion :

[MX]Optimisation de la gestion du clavier


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 304
    Par défaut [MX]Optimisation de la gestion du clavier
    Bonjour,

    Sous flash,la gestion du clavier est trés facile avec l'objet key qui contient plusieurs méthodes pour gérer le clavier.

    Seulement voilà,il semble que flash ne gére qu'une seul touche de calvier à la fois,je m'explique :

    Vous voulez deplacer un véhicule (un clip qui bouge,controlé par votre clavier).Mettons que flèche HAUT fait avancer et que flèche GAUCHE fait tourner à gauche (rotation).Quand j'appuye sur la flèche du haut,impécable mon clip avance...Quand j'appuye sur la flèche de gauche,c'est merveilleux mon clip subit une rotation à gauche.Mais quand j'appuye sur HAUT,et que sans relacher la touche du HAUT j'appuye sur GAUCHE,le clip ne reçoit que l'evenement de la touche gauche et il tourne sans avancer,de meme si j'appuye d'abord sur la fleche GAUCHE, et que sans relacher j'appuye sur HAUT,le clip avance mais sans tourner....

    Ma question est la suivante :

    Comment gérer plusieurs touches simultanément sous flash !!?

    Merci à tous.

  2. #2
    Membre Expert
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Par défaut
    tu peux pas avec les fonction native il faut que tu cree ta prope fonction.

    il faut utiliser l'objet Key.addListener

    tu utiliser un On.enterFrame ,, dans celui tu utiliser 3 booleenes qui correspond a chque touches

    quand les 3 touche sont presse les boolene = true et apres tu mets ton actions


    c un peu brouillon mais voila l'idée

  3. #3
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 304
    Par défaut
    désolé bolo je ne comprends pas trop

    voilà j'ai essayé ça mais ça ne régle pas le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    gestion_clavier = new Object();
    gestion_clavier.onKeyDown = function() {
    	if (Key.getCode() == Key.UP) {
    		_root.vase._x++;
    	}
    	if (Key.getCode() == Key.LEFT) {
    		_root.vase._y--;
    	}
    };
    Key.addListener(gestion_clavier);
    Je ne l'ai pas mis dans une géstionaire d'évenements mais dans une image de mon scénario principale.

    Aidez-moi :/

  4. #4
    Membre Expert
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Par défaut
    Pourquoi ca ne règle pas ton problème ?

    les touche ne doivent pas etre touchées simultanément ?

  5. #5
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 304
    Par défaut
    salut,

    ça ne régle pas le problème quand j'appyue sur deux touches à la fois il n'en prends en compte qu'une seule et c'est toujours la dérnière touche que j'appuye qu'il prends en compte.

    ....

    Ciao.

  6. #6
    Membre Expert
    Avatar de bolo
    Inscrit en
    Novembre 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 309
    Par défaut
    ok pourquoi ne pas faire comme ceci
    ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    gestion_clavier = new Object();
    gestion_clavier.onKeyDown = function() {
       if ((Key.getCode() == Key.UP) and (Key.getCode() == Key.LEFT) ) {
          _root.vase._x++;
        _root.vase._y--;
       }
    };
    Key.addListener(gestion_clavier);

  7. #7
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 304
    Par défaut
    Salut,

    bolo le code que tu as mis ne marche pas non plus.En fait je crois avoir compris le problème.L'objet Key ne peut pas gérer plusieurs touches à la fois mais uniquement la dérnière touche appuyée,du moins je pense.
    Ce qu'il faut faire c'est jouer sur la onKeyRelease.En fait :
    Quand j'appuye sur une touche c'est onKeyDown qui la prends en charge.Quand j'appuye sur cette touche donc,je fait une action et je maintiens cette action dans le onEnterFrame.Cette action sera annulé dans le gestionaire onKeyUp.

    J'espère que cette logique va marcher !!! j'ai la flemme de programmer....Bon un petit effort

    Ciao.

  8. #8
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 304
    Par défaut
    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
     
    onClipEvent (keyDown) {
    	if (key.getCode() == key.UP) {
    		up = 1;
    	}
    	if (key.getCode() == key.LEFT) {
    		left = 1;
    	}
    }
    onClipEvent (keyUp) {
    	if (key.getCode() == key.UP) {
    		up = 0;
    	}
    	if (key.getCode() == key.LEFT) {
    		left = 0;
    	}
    }
    onClipEvent (enterFrame) {
    	if (up == 1) {
    		_y--;
    	}
    	if (left == 1) {
    		_x++;
    	}
    }
    Et ça marche !!!!!!!!!!!

  9. #9
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 304
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    onClipEvent (enterFrame) {
    	if (Key.isDown(Key.UP)) {
    		vitesse = 5;
    	}
    	if (Key.isDown(Key.DOWN)) {
    		vitesse = -5;
    	}
    	if (Key.isDown(Key.RIGHT)) {
    		_root.g.body._rotation += 4;
    	}
    	if (Key.isDown(Key.LEFT)) {
    		_root.g.body._rotation -= 4;
    	}
    Exemple de code trouvé sur internet.Il y avait donc plus simple !!!

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

Discussions similaires

  1. Gestion du clavier
    Par - Glop - dans le forum Général Python
    Réponses: 7
    Dernier message: 21/06/2006, 19h17
  2. [C#] Gestion évenements clavier
    Par Tips dans le forum Windows Forms
    Réponses: 9
    Dernier message: 19/04/2006, 20h29
  3. [MFC][VC++.NET]gestion évènement clavier
    Par Rafoo dans le forum MFC
    Réponses: 2
    Dernier message: 14/12/2005, 09h29
  4. Gestion du clavier
    Par Ekinoks dans le forum OpenGL
    Réponses: 12
    Dernier message: 22/08/2005, 14h36
  5. gestion du Clavier
    Par benthebest dans le forum MFC
    Réponses: 13
    Dernier message: 07/05/2005, 22h39

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