Untitled
By: a guest | Mar 10th, 2010 | Syntax:
ActionScript 3 | Size: 1.62 KB | Hits: 28 | Expires: Never
The dispatching Class
package Classes.Scoreboard
{
import Classes.Events.*;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.EventDispatcher;
/**
* ...
* @author Niels van Aken
*/
public class Counter extends MovieClip
{
public var score:Number = 0;
public function Counter()
{
this.addEventListener("CHANGINGSCORE", testfunc);
}
private function testfunc(e:Event) {
trace("Schiet mij maar lek");
}
public function addToScore(count:Number):void {
if (!isNaN(count)) {
if (count < 0) {
Math.abs(count);
}
this.score += count;
dispatchEvent(new ScoreChangeEvent("CHANGINGSCORE", true));
trace ('COUNTER: Adding to score, dispatching event');
}
}
public function substractFromScore(count:Number):void {
if (!isNaN(count)) {
if (count < 0) {
Math.abs(count);
}
this.score -= count;
dispatchEvent(new ScoreChangeEvent("CHANGINGSCORE", true));
trace ('COUNTER: Substract from score, dispatching event');
}
}
}
}
I've used a custom class (which isn't custom at all actually, but just to be able to debug a little bit)
package Classes.Events
{
import flash.events.Event;
/**
* ...
* @author Niels van Aken
*/
public class ScoreChangeEvent extends Event
{
public function ScoreChangeEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
{
super(type, bubbles, cancelable);
}
public override function clone():Event
{
return new ScoreChangeEvent( type, bubbles, cancelable );
}
}
}