ArrayCollectionのは、私のオブジェクトの順序を逆に
-
23-08-2019 - |
質問
私が最初にあなたの機能を紹介します。
private var areaCollection:ArrayCollection;
private function generateAreaCollection():void
{
areaCollection = new ArrayCollection();
areaCollection.addItem({Areal: "Totalareal:", Verdi: int(totalArea * 100) / 100 + " kvm"});
areaCollection.addItem({Areal: "Hovedtakets areal:", Verdi: int(result.area* 100) / 100 + " kvm"});
//Lots of other stuff omitted (just more addItems).
}
ご覧のとおり、私はArrayCollectionの中のアイテムを入れるためには、面積で、その後、ヴェルディ(面積、値)
場合は、後で私のコレクションをループ、順序の変更。今ではヴェルディその後、面積(値、面積)である。
誰もが問題になるかもしれないもののアイデアを持っていますか?
私は後でHTMLでテーブル作りのためのPHPスクリプトにそれを渡すとき、それは本当に物事を台無しに。 (私はサイズと「値」が異なり、いくつかの異なる動的データグリッドを持っているので、私は本当に私のPHPスクリプトで「面積」f.exに直接指すことはできません)
ところで、誰もが私はその厄介なmx_internal_uid
を削除することができます方法を知っていますか?
解決
AS3(オブジェクトクラス、または{}によって定義されるもの)で生のオブジェクトは、何のソートを持っていません。つまり、順序が予測不可能です。あなたはここでは2つのアイデアを混乱していると思います。面積とヴェルディの文字列は、オブジェクトマップ内のキーです。配列のコレクションは、そのような2つのオブジェクトで構成されるリストです。だから、配列のコレクションに適用されるすべてのソートはなく、オブジェクト内の、これらのオブジェクトをソートします。
ですから、「Totalareal」を取得するためにareaCollection.source[0].Areal
を参照する必要があります。そしてareaCollection.source[1].Verdi
を取得するint(result.area* 100) / 100 + " kvm"
for(var s:String in areaCollection.source[0]) { }
ない場合は、あなたは「S」の値が「面積」と「ヴェルディ」またはその逆(例えば、順序保証されません)された状態で、二回反復されます。
意味をなさない?あなたは順序が必要な場合は、オブジェクトの配列の代わりに["Totalareal", (int(totalArea * 100) / 100 + " kvm")]
行い、その後、[1]。
P.s。 mx_internal_idを削除する方法がわからない。