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:
et les fonctions listener:
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);
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 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!"); }
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"); } } }
Partager