我对 flex 和 flash builder 非常陌生。我想要做的是连接到 http 数据服务并从中检索数据。
我找到的所有教程都经历了设置数据服务并获取响应并将其放入网格的过程。
小麦我不理解(它可能真的很简单。)是如何获取响应而不是将其放入数据网格中,只需将结果存储在变量中以备后用。
如果有人可以帮助我解决这个问题,将不胜感激。
我对 flex 和 flash builder 非常陌生。我想要做的是连接到 http 数据服务并从中检索数据。
我找到的所有教程都经历了设置数据服务并获取响应并将其放入网格的过程。
小麦我不理解(它可能真的很简单。)是如何获取响应而不是将其放入数据网格中,只需将结果存储在变量中以备后用。
如果有人可以帮助我解决这个问题,将不胜感激。
首先为您创建一个变量来存储结果:
public var results : ArrayCollection;
然后在您的结果处理程序中,只需存储值:
protected function resultHandler(event:ResultEvent):void{
results = new ArrayCollection(event.result as Array);
}
Flextras 的回答略有不同:
public var results : ArrayCollection;
然后在您的结果处理程序中,只需存储值:
protected function resultHandler(event:ResultEvent):void{
if(event.result is Array)
results = new ArrayCollection(event.result as Array);
else if(event.result is IList)
results = new ArrayCollection(event.result.source);
else
results = new ArrayCollection([event.result]);
}
现在通常event.result
不需要对类型进行检查,因为大多数 Web 服务的返回类型都是一致的。resultHandler
因此,您需要做的就是调试应用程序并在函数入口处插入断点。然后观察event.result
并记下它的类型,并根据它保留相应的代码行。
PS:IList
是由ArrayCollection
, ArrayList
, 和许多其他类实现的接口,所以如果结果是这些类之一,那么您需要保留该行。