0

問題は、どうやって?

AS3の順序付きオブジェクトはプロパティの挿入順序を維持することになっているため、順序付きオブジェクトをsparkリモートオブジェクトに渡し、LinkedHashMapとして受け取りますが、foreachループは混乱した順序でemを読み取ります。

また、これまでのところ運がなくても、過去3日間の自由時間にOrededObjectsを渡すことに関するドキュメントを見つけようとしました= /

私は一般的に機能を追求していません、私はこれが可能かどうか知りたいだけです。

短い例:

フレックス

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Declarations>    
        <s:RemoteObject
            id="exampleRO"
            destination="example"/>
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import mx.utils.OrderedObject;
            private var oobject:OrderedObject=new OrderedObject();
            private function sendObject(){
                oobject["key1"]="value1";
                oobject["key2"]="value2";
                oobject["key3"]="value3";
                oobject["key4"]="value4";
                exampleRO.send(oobject);
            }
        ]]>
    </fx:Script>
    <s:Button click="sendObject()"/>
</s:Application>

Javaバックエンド

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;

import org.apache.log4j.Logger;

public class somename{
    private static Logger logger = Logger.getLogger(somename.class);
    public void send(LinkedHashMap<String, Object> oobject){
        Iterator it;
        Map.Entry e;
        for(it=oobject.entrySet().iterator(); it.hasNext();){
            e = (Map.Entry)it.next();
            logger.info("oobject key: "+  e.getKey() + " value:" + e.getValue());
        }

    }
}
4

1 に答える 1

0

動作しました=)

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Declarations>    
        <s:RemoteObject
            id="exampleRO"
            destination="example"/>
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import org.as3commons.collections.LinkedMap;
            private var oobject:LinkedMap=new LinkedMap();
            private function sendObject(){
                oobject.add("key1","value1");
                oobject.add("key2","value2");
                oobject.add("key3","value3");
                oobject.add("key4","value4");
                oobject.add("key5","value5");
            }
        ]]>
    </fx:Script>
    <s:Button click="sendObject()"/>
</s:Application>
于 2012-09-16T19:36:18.997 に答える