我对flex和flash Builder非常陌生。我正在尝试连接到一个http数据服务并从中检索数据。从flash builder http服务中获取数据
我发现的所有教程都经历了设置数据服务并将响应放入网格的过程。
小麦我不理解(它可能非常简单)。如何获取响应,而不是将其放入数据网格中,只需将结果存储在变量中供以后使用。
如果有人能帮助我解决这个问题,将非常感激。
我对flex和flash Builder非常陌生。我正在尝试连接到一个http数据服务并从中检索数据。从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
的类型,因为大多数webservices在返回类型中都是一致的。因此,您只需调试应用程序并在resultHandler
函数的入口处插入一个断点。然后注意event.result
并记下它的类型,并根据它保留相应的代码行。
P.S .: IList
是由ArrayCollection
,ArrayList
和许多其他类实现的接口,所以如果结果是其中的一个类,那么您需要保留该行。
根据我的经验,“大多数webservices在返回类型中都是一致的”非常罕见。我曾与服务返回XML,数组,字符串值或整数。授予我的答案,假设数组已被返回,并且您想将其作为ArrayCollection存储;这是主要的b/c原始海报提到使用结果作为dataProvider。 – JeffryHouser 2012-07-08 11:14:49