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 每次都在更改。问题是当循环完成时,控件会使用第一个 WSDL 的结果转到结果事件侦听器,但循环中的最后一个变量将数组的最后一个元素而不是第一个元素作为 WSDL 结果。我希望问题对你们来说很清楚,谢谢。我在 flex 中使用了动作脚本