Bonjour,
J'en suis à mes premiers tests avec AS3. J'essaie de créer un évènement personnalisé. Avec le code ci-après, je m'attendrais à voir les 2 traces des fonctions listener. Je vois la trace du OnKeyDown mais le DispatchEvent ne fonctionne pas et OnCustomRequest_Info n'est jamais exécuté. J'imagine que ce n'est pas ainsi qu'il faut créer une classe évènement... Quelqu'un peut m'orienter svp? Merci beaucoup!

Dans main.as, function init(), après le EntryPoint:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
	stage.addEventListener(KeyboardEvent.KEY_DOWN, OnKeyDown_RequestCreer);
	stage.addEventListener(CustomEvent.REQUEST, OnCustomRequest_Info);
et les fonctions listener:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
private function OnKeyDown_RequestCreer(event:KeyboardEvent):void
{
	trace("Main.OnKeyDown -> Touche clavier! Une demande a été faite!");
	dispatchEvent(new CustomEvent(CustomEvent.REQUEST) );
}
 
private function OnCustomRequest_Info(event:CustomEvent):void
{
	trace("Main.OnRequest -> Je réalise la demande!");
}
Finalement la classe CustomEvent. C'est le code automatique de FlashDevelop quand on crée un nouvel Event. J'ai ajouté la constante statique REQUEST.
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
 
package  
{
	import flash.events.Event;
 
	public class CustomEvent extends Event 
	{
		public static const REQUEST:String = "Creer";
 
		public function CustomEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) 
		{ 
			super(type, bubbles, cancelable);
		} 
 
		public override function clone():Event 
		{ 
			return new CustomEvent(type, bubbles, cancelable);
		} 
 
		public override function toString():String 
		{ 
			return formatToString("EventCreer", "type", "bubbles", "cancelable", "eventPhase"); 
		}
	}
}