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