0
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 中使用了动作脚本

4

1 回答 1

0

这段代码放在哪里?它将转到最后一项,因为最后一项是唯一的。您继续覆盖var webs:WebService,因此第一个不再存在,也没有对它的现有引用。

于 2013-08-30T21:06:51.500 回答