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 は実際に2行目を表示します(または範囲外の例外をスローします)

于 2012-08-23T14:20:28.167 に答える