Bonjour,

J'essaie actuellement de placer un listener sur le clavier.

SI je place le code suivant sur une frame cela fonctionne :

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
 
import flash.events.KeyboardEvent;
var left:uint = 37;
var up:uint = 38;
var right:uint = 39;
var down:uint = 40;
 
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownListener);
 
		function keyDownListener(e:KeyboardEvent):void {
			trace("e.keyCode=" + e.keyCode);
			if (e.keyCode==left) {
				trace("left");
			}else if (e.keyCode==right) {
				trace("right");
			}
 
		}
Mais si je crée une classe dans un fichier actionscript cela ne fonctionne plus :

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
 
package  {
	import flash.display.MovieClip;
	import flash.events.*;
 
	public class Game extends MovieClip {
 
		static const RIGHT = 39;
		static const LEFT = 37;
 
 
		public function Game() {
 
			stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownListener);
		}
 
 
		function keyDownListener(e:KeyboardEvent):void {
			trace("e.keyCode=" + e.keyCode);
			if (e.keyCode==LEFT) {
				trace("left");
				//ship_mc.nextrotation=ship_mc.rotation-5;
			}else if (e.keyCode==RIGHT) {
				trace("right");
				//ship_mc.nextrotation=ship_mc.rotation+5;
			}
		}
	}	
}
L'erreur provient de la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownListener);
Et affiche : TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.

J'en déduis donc que je n'arrive pas à atteindre stage !

J'ai loupé un truc dans mon code ?

Merci d'avance.