package{
import flash.events.*;
public class Thermometer extends EventDispatcher{
private var _temp:Number=32;
public static const TEMP_CHANGED:String="tempChanged";
public function set temp(newTemp:Number):void{
_temp=newTemp;
trace("Fired TEMP_CHANGED event");
dispatchEvent(new Event(TEMP_CHANGED));
}
public function get temp():Number{
return _temp;
}
}
}
package{
import Thermometer;
import flash.events.*;
public class TempDisplay{
public function TempDisplay(thermometer:Thermometer){
thermometer.addEventListener(Thermometer.TEMP_CHANGED,onTempChanged);
}
protected function onTempChanged(event:Event):void{
var thermometer:Thermometer=Thermometer(event.target);
trace(thermometer.temp+"F");
}
}
}
package{
import flash.display.*;
public class TemperatureMonitor extends Sprite{
protected var thermometer:Thermometer;
protected var tempDisplayF:TempDisplay;
public function TemperatureMonitor(){
thermometer=new Thermometer();
tempDisplayF=new TempDisplay(thermometer);
thermometer.temp=57;
thermometer.temp=98.6;
thermometer.temp=-12;
}
}
}
------解决方案--------------------
- Java code
package{ import flash.events.*; public class Thermometer extends EventDispatcher{ private var _temp:Number=32;//温度 public static const TEMP_CHANGED:String="tempChanged";//温度改变事件 //设置温度 public function set temp(newTemp:Number):void{ _temp=newTemp; trace("Fired TEMP_CHANGED event"); dispatchEvent(new Event(TEMP_CHANGED));//派发温度改变事件 } //获取温度 public function get temp():Number{ return _temp; } } } package{ import Thermometer; import flash.events.*; public class TempDisplay{ public function TempDisplay(thermometer:Thermometer){ //监听温度改变事件 thermometer.addEventListener(Thermometer.TEMP_CHANGED,onTempChanged); } //温度改变后进行处理 protected function onTempChanged(event:Event):void{ var thermometer:Thermometer=Thermometer(event.target); trace(thermometer.temp+"F"); } } } package{ import flash.display.*; public class TemperatureMonitor extends Sprite{ protected var thermometer:Thermometer; protected var tempDisplayF:TempDisplay; public function TemperatureMonitor(){ thermometer=new Thermometer(); tempDisplayF=new TempDisplay(thermometer); thermometer.temp=57; thermometer.temp=98.6; thermometer.temp=-12; } } }
------解决方案--------------------
thermometer这是一个对象,event.target当前操作对象