I am learning how to do a custom event in AS3.
I can do an event in a class but I dont know how to detect events in other classes.
I want to detect in main.as an event reached in class player. eg a variable reached a value 4 in class payer and dispatches an event so main.as can detect it.
This doesnt give an error but my code doesnt output I can deect an event in main from classplayer.
//main
myplayer=new ClassPlayer();
myplayer.addEventListener(“image_loaded”,imageLoadedHandler,false,0,true);
myplayer.addEventListener (“watcher_loaded”,watcher_loadedHandler,false,0,true);
addChild( myplayer);
// Handler methods
private function watcher_loadedHandler(e:Event):void {
trace(“watcher in main”);
}
//player
var watcher:Watcher = new Watcher();
…
watcher.addEventListener(Watcher.VALUE_REACHED, onValueReached, false, 0, true);
…
private function onValueReached(event:Event):void{
trace(“watcher’s value is now at 4 in player”);
dispatchEvent(new Event(“watcher_loaded”));
}
//watcher
package {
import flash.events.Event;
import flash.events.EventDispatcher;
public class Watcher extends EventDispatcher {
public static const VALUE_REACHED:String = "valueReached";
private var _value:Number = 0;
public function Watcher():void { }
public function get Value():Number {
return _value;
}
public function set Value(num:Number):void {
_value = num;
if (_value == 4) {
var event:Event = new Event(Watcher.VALUE_REACHED);
dispatchEvent(event);
}
}
}
}