我使用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
}
非常感谢你的帮助!
答案 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
}