Wednesday, March 10, 2010

ActionScript3: EventDispatcher with simple example

package
{
    import flash.display.Sprite;
    import flash.events.*;

    public class App1 extends Sprite{
        public function App1() {
            var x:Thermometer = new Thermometer();
            x.addEventListener(Thermometer.TEMP_CHANGED, onTempChanged);
            trace (" Value: ");
            x.temp=10;
        }
       
        private function onTempChanged(event:Event):void {
            var thermometer:Thermometer = Thermometer(event.target);
            trace (thermometer.temp + "F");
        }
    }
}


import flash.events.*;

class Thermometer extends EventDispatcher
{
    private var _temp:Number = 32;
    public static const TEMP_CHANGED:String = "temChanged";
   
    public function set temp(newTemp:Number):void {
        _temp = newTemp;
        trace ("Fired TEMP_CHANGED");
        dispatchEvent(new Event(TEMP_CHANGED));
    }
   
    public function get temp():Number {
        return _temp;
    }
   
    public function Thermometer() {
       
    }
}

No comments: