J'ai une classe que je veux utiliser tout au long de mes projets. Cela me permettrait essentiellement de travailler facilement avec un RemoteObject afin de ne pas avoir à le définir dans tous mes projets. Cela fonctionne quand ne pas passer "args" à sendRequest (..). Mais quand je veux appeler la fonction cfc avec des paramètres et essayez passer "args" dans je reçois l'erreur suivante:Flex 3 Dynamic RemoteObject Classe
The parameter USERNAME to function getAllPreferences is required but was not passed in.
Heres mon 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();
}
}
}
Quand je trace (args.username) Je vois que c'est passé correctement. J'ai essayé ceci dans un autre script, cependant, le RemoteObject dans ce script a été défini avec mxml. Je ne vois pas comment cela serait très différent.
à court d'idées :(
Edit: Il travaille pour nous maintenant, si quelqu'un veut utiliser cette solution et ayant un problème mise en œuvre de cette classe je vais heureux de vous aider
merci, en utilisant ao.send (args) travaillé. –