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 1 & ActionScript 2 Discussion :

[MVC] Problème de gestion du clavier


Sujet :

ActionScript 1 & ActionScript 2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 128
    Par défaut [MVC] Problème de gestion du clavier
    Bonjour,

    Je suis en train de développer une application en AS2 basé sur le pattern MVC (qui est très bien expliqué ici : http://www.adobe.com/devnet/flash/ar...s2ess_ch18.pdf)

    Je réutilise la majorité des classes de ce tutorial sauf bien sûr les classes View, Controller et Model

    Le tutorial explique bien comment ajouter un listener sur les différents boutons pour que le controller puisse modifier le modèle en fonction des "users inputs" mais il n'explique pas comment ajouter un listener sur le clavier.

    J'ai intégré ce listener dans la classe Controller :
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
     
    /**
     *	CubeController.as
     *
     */
     
     import mvc.*;
     import util.*;
     import mvccube.CubeModel;
     
     class mvccube.CubeController extends AbstractController {
     
    	 private var _myKeyboardListener:Object;
     
    	/**
    	 * Constructeur
    	 * 
    	 * @param	cm	Le modele a modifier
    	 */
    	public function CubeController(cm:Observable) {
    		super(cm);
    		handleKeyboardEvent();		
    	}
     
     
    	/**
    	 * Fait tourner le cube à droite 
    	 */
    	 public function turnCubeToTheRight():Void {
    		trace("TURN TO THE RIGHT FROM CONTROLLER");
    		CubeModel(getModel()).turnToTheRight();
    	 }	
     
     
    	/**
    	 * Fait tourner le cube à gauche 
    	 */
    	 public function turnCubeToTheLeft():Void {
    		trace("TURN TO THE LEFT FROM CONTROLLER");
    		CubeModel(getModel()).turnToTheLeft();
    	 }
     
     
    	 /**
    	  * Accède à la face du dessous du cube
    	  */
    	 public function accessBottomCubeFace():Void {
    		CubeModel(getModel()).accessBottomFace();
    	 }
     
    	 /**
    	  * Revient à la face principale du cube
    	  */
    	 public function accessMainCubeFace():Void {
    		CubeModel(getModel()).accessMainFace();
    	 }
     
    	 /**
    	  * Gestion des évènements 
    	  */
    	 public function click(evt:Object):Void {
    		switch(evt.target._name) {
    			case "turnRight" : 
    				turnCubeToTheRight();
    				break;
    			case "turnLeft" :
    				turnCubeToTheLeft();
    				break;
    			case "bottomFace" :
    				accessBottomCubeFace();
    				break;
    			case "mainFace" : 
    				accessMainCubeFace();
    				break;
    		}
     
    	 }
     
    	 public function gestionClavier():Void {
    		trace("GESTION CLAVIER : " + getModel().toString());
     
    		 switch(Key.getCode()) {
    				case Key.UP :
    					accessMainCubeFace();
    					break;
    				case Key.DOWN :
    					accessBottomCubeFace();
    					break;
    				case ExtendedKey.SOFT1 :
    					turnCubeToTheLeft();
    					break;
    				case ExtendedKey.SOFT2 :
    					turnCubeToTheRight();
    					break;				
    			}
    	 }
     
    	/**
    	 * Gestion des évènements du clavier 
    	 */
    	 public function handleKeyboardEvent():Void {
     
    		_myKeyboardListener = new Object();
    		_myKeyboardListener.onKeyDown = gestionClavier;
    		Key.addListener(_myKeyboardListener);
     
    	}
     
     
     }
    Mon application prend bien en compte les entrées du clavier mais par contre dès que j'essaye d'accéder au modèle dans la méthode gestionClavier celui ci n'est plus défini. Pourtant, il est définit dans toutes les autres méthodes, même dans la méthode click qui gère les évènements liés aux boutons de ma vue.

    Quelqu'un voit-il où se situe mon problème ?
    Je peux envoyer par mail toute mon application si vous avez besoin des autres classes et fichiers cependant je sais que mon problème vient de cette classe.

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 128
    Par défaut
    Personne ne voit où est le problème ?

    Ai-je bien crée le listener pour le clavier ? C'est bien dans la classe Controller qu'il faut le faire ?

    J'ai tout essayé et là je satture je ne vois vraiment pas où se situe mon problème.

Discussions similaires

  1. Problème de gestion d'un octree
    Par MaxPayne dans le forum OpenGL
    Réponses: 9
    Dernier message: 06/04/2005, 10h17
  2. problème de gestion de fenêtre
    Par clemsouz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/11/2004, 14h35
  3. [MX]Optimisation de la gestion du clavier
    Par yacinechaouche dans le forum Flash
    Réponses: 8
    Dernier message: 18/04/2004, 02h13
  4. Problème de gestion fichiers
    Par glutock dans le forum ASP
    Réponses: 2
    Dernier message: 08/04/2004, 11h55
  5. [TFrame] Problème de gestion du OnMouseDown avec une Frame
    Par xherault dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2003, 15h35

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