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 :

Problème avec KeyboardEvent.


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 22
    Par défaut Problème avec KeyboardEvent.
    Bonsoir,

    Je reviens vers vous sûrement encore avec un problème de débutant mais je n'y peux rien, mes neurones ont du mal à comprendre les subtilités de l'AS3, désolée...

    J'aimerais faire avancer un MovieClip (Mouton) à l'aide de quatre touches du clavier (1,2,3 et 4), j'ai essayé avec un if, avec switch case, mais rien ne fonctionne alors si l'un ou l'une d'entre vous pouvait m'éclairer... Merci !
    Pour l'instant, je n'ai pas encore implémenté le déplacement avec les touches 1,2,3 et 4 mais même juste comme ça, ça ne fonctionne pas :/

    Voilà mon code :
    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
    package{
    	// importation des classes
    	import flash.display.MovieClip;
    	import flash.display.Stage;
    	import flash.events.*;
    	import flash.display.Stage;
    	import flash.ui.Keyboard;
     
    	// classe principale
    	public class Mouton extends MovieClip{
    		// les propriétés
    		private var st:Stage;
     
    		// le constructeur
    		public function Mouton(s:Stage){
    			st = s; // mise à jour de la propriété st
    			this.y = 440;
    			this.x = 550; 
    			// ajouts des écouteurs de touches
    			this.addEventListener(KeyboardEvent.KEY_DOWN, bouger);
    		}
     
    		function bouger (evt:KeyboardEvent):void{
    			switch(evt.keyCode){
           			// déplacement vers la gauche
           			case Keyboard.LEFT:
              			evt.target.x-=5;
              		break;
           			// déplacement vers le haut
           			case Keyboard.UP:
              			evt.target.y-=5;
              		break;
           			// déplacement vers la droite
           			case Keyboard.RIGHT:
              			evt.target.x+=5;
              		break;
           			//déplacement vers le bas
           			case Keyboard.DOWN:
              			evt.target.y+=5;
              		break;
           			// pas de déplacement
           			default :
              			evt.target.x+=0;
        		}
    		}
    	}
    }
    EDIT : je n'ai pas d'erreurs, le mouton s'affiche mais ne se déplace pas.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Par défaut
    Je ne voudrai pas dire de bêtises, mais il me semble que pour que l'écouteur clavier fonctionne, il faut que ton mouton est le focus (soit sélectionne) puis, les évènements claviers seront remontés.

    Je te conseille de modifier ton code et d'ajouter l'écouteur sur le stage.

    En gros remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.addEventListener(KeyboardEvent.KEY_DOWN, bouger);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    st.addEventListener(KeyboardEvent.KEY_DOWN, bouger);

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 22
    Par défaut
    Bah en faisant ça, ça fonctionne... mais sur un autre objet qui reçoit le focus (un bouton) :/
    Comment je fais pour dire qu'il faut que ce soit l'occurrence de mon objet "Mouton" qui doit recevoir le focus ?!

    EDIT : j'ai ajouté ça à mon code :
    s.focus = this;
    et ça fonctionne sur mon objet Mouton tant que je n'ai pas cliqué sur le bouton.
    Existe-t'il un moyen de "bloquer" le focus sur mon clip tout en faisant en sorte que mon bouton fonctionne quand je le clique ?!
    Je viens de lire que l'on pouvait passer le focus entre plusieurs objets grâce à une boucle de tabulation, mais comment est-ce que ça fonctionne au juste ?

    Merci !

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Par défaut
    En fait, après le clic sur le bouton, tu réaffectes le focus à ton objet.

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 22
    Par défaut
    Bon bah j'ai beau chercher mais je ne vois toujours pas comment faire ça... Avec un "if" ?!

  6. #6
    Membre éclairé Avatar de SnowStyle
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 73
    Par défaut
    hmm, il y a juste une chose que je comprend pas, tu as plusieurs moutons à faire deplacer ? parce que sinon tu as pas besoin de focus, suffit de directement déplacer ton mouton dans les events

    genre

    case Keyboard.LEFT:
    monMouton.x -= 5;

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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