在我的 flex 应用程序中,我经常使用服务。我需要他们更新我在应用程序中的数据,所以经常给他们打电话。目前我通过以下方式实现它:
1)有一个服务提供者(AMFLoader 类) 2)和响应处理程序(Responder 类)
代码如下所示:
public function AMFLoader(url:String):void
{
gateway = new NetConnection();
gateway.connect(url);
}
public function callAMFLoader(serviceName:String, param:String, resultHandler:AMFResultHandler):void
{
gateway.addEventListener(IOErrorEvent.IO_ERROR, resultHandler.onIENetError);
gateway.addEventListener(NetStatusEvent.NET_STATUS, resultHandler.onNetStatus);
responder = new Responder(resultHandler.onSuccess, resultHandler.onFalse);
gateway.call(serviceName,responder, param);
}
和结果处理程序类:
public class AMFResultHandler
{
public function AMFResultHandler()
{
}
public function onSuccess(result:*):void
{
trace("Result from basic AMF Result handler on success: " + result);
}
为了调用服务,我扩展了基本的 Result 处理程序类,并制作了自定义函数来处理结果。通常在最新阶段,我将从服务接收到的数据绑定到我在主应用程序中定义的全局变量,然后在其他类中使用它。
目前我注意到使用全局变量是一件很烦人的事情,不确定这是否是一种好的编程风格。例如,当我尝试重构我的代码时,我注意到有时很难理解谁、何时(以及为什么)在那里填充了数据。
也许您可以建议一种存储服务调用数据的方法。我无法理解的主要事情是我们不能只创建一个方法,例如getData,然后在应用程序的某个地方调用它,因为调用服务和存储数据是不同的事情(因为数据只在某些事件上接收) ……
提前致谢。