Flex 3 RemoteObject-Dynamische Klasse

Habe ich eine Klasse, die ich nutzen möchte in meiner ganzen Projekte. Im wesentlichen würde mir erlauben, um bequem arbeiten mit RemoteObject, so dass ich nicht haben, um zu definieren, das in allen meinen Projekten. Es funktioniert, wenn nicht übergeben, "args" sendRequest(..). Aber wenn ich will, nennen Sie die cfc-Funktion mit Parametern und versuchen nebenbei "args" bekomme ich die folgende Fehlermeldung:

Den parameter USERNAME-Funktion getAllPreferences erforderlich ist
wurde aber nicht übergeben.

Heres mein code:

package Actionscript
{
    import mx.collections.ArrayCollection;
    import mx.rpc.AbstractOperation;
    import mx.rpc.events.FaultEvent;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.remoting.mxml.RemoteObject;

    public class CFCRemote
    {
        private var ro:RemoteObject;
        private var roSource:ArrayCollection;
        private var appPointer:Object;

        //constructor
        public function CFCRemote(appMain:Object):void
        {
            appPointer = appMain;
            roSource = new ArrayCollection();
        }

        public function addSource(alias:String, source:String, thisObj:Object):void
        {
            roSource.addItem({alias:alias, source:source, thisObj:thisObj});
        }

        public function sendRequest(roAlias:String, funcName:String, args:Object = null):void
        {
            var roCaller:Object;

            ro = new RemoteObject("ColdFusion");
            ro.showBusyCursor = true;           

            for(var i:int = 0; i < roSource.length; i++)
            {
                if(roSource.getItemAt(i).alias == roAlias)
                {
                    ro.source = roSource.getItemAt(i).source;
                    roCaller = roSource.getItemAt(i).thisObj;
                    break;
                }
            }

            var ao:AbstractOperation = ro.getOperation(funcName);
            ao.arguments = args;
            ao.addEventListener(ResultEvent.RESULT, function(e:ResultEvent):void{roCaller.handleROF(e,funcName)});
            ao.addEventListener(FaultEvent.FAULT, function(e:FaultEvent):void{appPointer.server_fault(e,funcName,"unknown")});
            ao.send();

        }
    }
}

Wenn ich trace(args.username) ich sehe, dass seine übergebenen richtig. Ich versuchte dies in einem anderen Skript, aber das RemoteObject, die im Skript definiert wurde, mit mxml. Ich sehe nicht, wie das wäre viel anders.

Langsam die Ideen aus 🙁

Edit: Es funktioniert jetzt für uns, wenn jemand will, um diese Lösung verwenden, und ist ein problem der Implementierung dieser Klasse werde ich gerne helfen

InformationsquelleAutor Chris Klepeis | 2009-06-23

Schreibe einen Kommentar