0

我在 Flex Mobile 中创建了一个 PHP 服务,并将结果与​​一个列表绑定。我想根据对数据字段的一些计算对服务中的记录进行排序。那么,是否可以对 PHP 服务的结果集执行操作?

详细问题:

我已经通过 Flash Builder 4.6 中的内置工具创建了 php 服务。在我看来,我还使用列表绑定了服务。(再次使用 GUI 控件)。现在我想根据与当前位置的距离和服务返回的行的坐标重新排列列表中的项目。所以我想的方法是,从服务中获取内容。提取纬度,经度并计算距离。然后再次更新列表。

我在函数中尝试了以下行:

getAllplacesResult.lastResult[1].lon // lon is a column in the table.

但它返回一个空白。他们是更理智或更简单的方法吗?

4

1 回答 1

1

更好的方法是将其分配到 Arraycollection 并从那里操作数据。

 <mx:ArrayCollection id="myAC" source="{ArrayUtil.toArray(myRO.getAllplacesResult.lastResult)}" />

确保将 myAC 绑定到您的列表。

按照您想要的方式对其进行排序:

var collection:ArrayCollection = new ArrayCollection();
var s:Sort = new Sort();
s.fields = [new SortField("lat"), new SortField("lon")];
s.compareFunction = myCompareFunction;
collection.sort = s;
collection.refresh();

private function myCompareFunction(a:Object, b:Object, fields:Array = null):int {
...
}

此外,AS3 是基于 0 的索引。1 实际上会给你第二行(或抛出超出范围的异常)

于 2012-08-23T14:20:28.167 回答