var lstservices:Array = ["Attachment","Dev","Domain","service"]
for each(var servicename:String in lstservices)
{
var webs:WebService = new WebService();
var url:String= "http://XXXX/XXXX/"+ servicename +".asmx?wsdl";
webs.wsdl = url;
webs.loadWSDL();
webs.addEventListener(FaultEvent.FAULT,fault);
webs.addEventListener(ResultEvent.RESULT,GetDataFromService);
webs.makeObjectsBindable=false;
webs.GetAll();
srvs = servicename.substr(0,servicename.length-7);
}
正如您在代码中看到的那样,每次都会添加侦听器,并且每次都会更改WSDL。问题是,当循环结束时,控件转到结果事件Listener,其结果来自第一个WSDL,但循环中的最后一个变量是保存数组的最后一个元素而不是第一个元素作为WSDL结果。我希望你们的问题很清楚,谢谢你们。我在flex中使用了动作脚本
答案 0 :(得分:0)
此代码放在哪里?
它将转到最后一项,因为最后一项是唯一的。你继续覆盖var webs:WebService
,因此第一个不再存在,没有现有的引用。