判断Flash Remoting Gateway连接失败的方法

在Flash Remoting中,怎样判断Gateway连接失败?不管AS1和AS2还是AS3都可以使用NetConnectionon对象。

ActionScript 1.0

var gatewayURL = "http://www.riafan.com/Gateway.aspx"; 
NetServices.setDefaultGatewayUrl(gatewayURL); 
conn = NetServices.createGatewayConnection(); 
conn.onStatus = function(info_obj) { 
    if (info_obj.code == "NetConnection.Call.Failed") { 
        trace("连接远程服务失败"); 
    } 
}

此处我们使用NetServices对象的createGatewayConnection方法返回NetConnection对象,再利用该对象的onStatus事件来判断连接失败。

ActionScript 2.0

var gatewayURL:String = "http://www.riafan.com/Gateway.aspx"; 
var custService:Service = new Service(gatewayUR, null, "HelloWorld", null, null); 
custService.connection.onStatus = function(info_obj) { 
    if (info_obj.code == "NetConnection.Call.Failed") { 
        trace("连接远程服务失败"); 
    } 
}

此处我们引用Service对象的connection属性指向一个NetConnection对象,再利用该NetConnection对象的onStatus事件来判断。

ActionScript 3.0

var gatewayURL:String = "http://www.riafan.com/Gateway.aspx"; 
var nc:NetConnection = new NetConnection(); 
nc.connect(gatewayURL); 
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 
function netStatusHandler(evt:NetStatusEvent):void { 
    if (evt.info.code =="NetConnection.Call.Failed") { 
        trace("连接远程服务失败"); 
    } 
}

此处我们使用NetStatusEvent事件对象来Gateway返回连接状态,并将其将作为参数传递给事件侦听器。

发表评论