2012-07-07 44 views
0

我对flex和flash Builder非常陌生。我正在尝试连接到一个http数据服务并从中检索数据。从flash builder http服务中获取数据

我发现的所有教程都经历了设置数据服务并将响应放入网格的过程。

小麦我不理解(它可能非常简单)。如何获取响应,而不是将其放入数据网格中,只需将结果存储在变量中供以后使用。

如果有人能帮助我解决这个问题,将非常感激。

回答

2

首先创建一个变量为您存储结果:

public var results : ArrayCollection; 

然后在你结果处理,只是存储的值:

protected function resultHandler(event:ResultEvent):void{ 
    results = new ArrayCollection(event.result as Array); 
} 
1

略有差异,以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和许多其他类实现的接口,所以如果结果是其中的一个类,那么您需要保留该行。

+0

根据我的经验,“大多数webservices在返回类型中都是一致的”非常罕见。我曾与服务返回XML,数组,字符串值或整数。授予我的答案,假设数组已被返回,并且您想将其作为ArrayCollection存储;这是主要的b/c原始海报提到使用结果作为dataProvider。 – JeffryHouser 2012-07-08 11:14:49