如何在AS3中获取Web服务侦听器的当前目标名称

时间:2014-07-04 18:16:10

标签: actionscript-3

我使用Alducente的网络服务包来访问在线游戏的一系列不同的网络服务链接,并希望使用单个"连接"监听器而不是每个连接都有一堆监听器。

但是我无法在侦听器中获取currentTarget的名称,以便根据连接的服务继续进行。

---我的代码如下---

import alducente.services.WebService;
import flash.events.*;

var serviceA:WebService = new WebService();
var serviceB:WebService = new WebService();

serviceA.addEventListener(Event.CONNECT, connectedListener);
serviceB.addEventListener(Event.CONNECT, connectedListener);

serviceA.connect("http://thatWebService.com/gameStuff.asmx?WSDL");  
serviceB.connect("http://thatWebService.com/accountStuff.asmx?WSDL");   


function  connectedListener(evt:Event):void{
    trace(evt.currentTarget);   //[object webservice]
    trace(evt.currentTarget.name);   //this gives undefined 

    //Do something if serviceA is connected
    //Do something else if serviceB is connected


}

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

除非您提供一个名称,否则该服务将没有名称。 WebService是一个动态类,因此您应该能够执行以下操作:

import alducente.services.WebService;
import flash.events.*;

var serviceA:WebService = new WebService();
serviceA.name = "serviceA";

var serviceB:WebService = new WebService();
serviceB.name = "serviceB";

serviceA.addEventListener(Event.CONNECT, connected);
serviceB.addEventListener(Event.CONNECT, connected);

serviceA.connect("http://thatWebService.com/gameStuff.asmx?WSDL");  
serviceB.connect("http://thatWebService.com/accountStuff.asmx?WSDL");   


function connected(evt:Event):void{
    trace(evt.currentTarget.name);   // should get the results now 
}