扩展mate现有的标签
1. 创建class extends AbstractServiceInvoker implements IAction. 实现IAction 才能放入 EventHandlers中,AbstractServiceInvoker提供了result和fault的处理
2. 构造函数
设置 currentInstance指向this
3. 重写run函数
为result和fault创建 inner handlers
override protected function run(scope:IScope):void {
// specify that the dispatcher of the result and error event is the weatherService object
innerHandlersDispatcher = weatherService;
if (this.resultHandlers && resultHandlers.length > 0){
this.createInnerHandlers(scope, WeatherResultEvent.WEATHER_LOADED, resultHandlers);
}
if (this.faultHandlers && faultHandlers.length > 0){
this.createInnerHandlers(scope, WeatherErrorEvent.INVALID_LOCATION , faultHandlers);
}
weatherService.getWeather(location, unit);
}
4. 使用tag
<extensions:WeatherLoader> <!-- make the call to the service -->
<Properties location="{event.location}" unit="{event.unit}" />
<extensions:resultHandlers>
<!-- receive the results contained in the currentEvent.data property (
WeatherResultEvent contains a data property) -->
<MethodInvoker generator="{WeatherManager}" method="setWeather"
arguments="{currentEvent.data}" />
</extensions:resultHandlers>