我有一门课,我想在我的项目中使用它。它本质上可以让我轻松地使用 RemoteObject,这样我就不必在我的所有项目中定义它。它在不将“args”传递给 sendRequest(..) 时起作用。但是,当我想用参数调用 cfc 函数并尝试在其中传递“args”时,出现以下错误:
函数 getAllPreferences 的参数 USERNAME 是必需的,但未传入。
这是我的代码:
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();
}
}
}
当我跟踪(args.username)时,我看到它正确传递。我在另一个脚本中尝试过,但是,该脚本中的 RemoteObject 是用 mxml 定义的。我不明白这会有什么不同。
没有想法了:(
编辑:它现在对我们有用,如果有人想使用这个解决方案并且在实现这个类时遇到问题,我很乐意提供帮助