2012-04-05 8 views
1

外部ファイルに接続しようとしているときに接続が確立されなかったときを正しく識別することに問題があります。 (config.gateway1である)localhostを持っていれば正常に動作しますが、サーバをオフにするとエラーが発生します:ネット接続エラーをas3でトレースする

"http://localhost/amfphp/gateway.php ' "

接続と通話の両方でtry catchを設定しようとしました。私はonFailure(この時点では失敗をトレースする)という関数を呼び出すはずのイベントリスナーも設定します。エラーが発生したようですが、エラーが発生したときに何が起こるかを指示できません。

var gateway1:String = config.gateway1 
    var gateway2:String = config.gateway2 
    var connection:NetConnection = new NetConnection ; 
    connection.addEventListener(IOErrorEvent.IO_ERROR,onFailure); 
    try{ 
     connection.connect(gateway1); 
     trace("It went in to the try of the connection.connect") 
     //trace(connection); 
     } 
    catch(error:IOError){ 

     trace("It didn't work",error); 
    } 

var responder:Responder = new Responder(onResult,onFault);//onResult and onFault can be any name 
var array:Array = new Array(kioskNum,questionNum); 
try 
    {connection.call("dataconnect.retrieveInfo",responder,array); 
    trace("It went in to the try of the connection.call");} 
catch(error:IOError){ 
    trace("It didn't work",error);} 
//trace(gateway1); 

答えて

3

あなたはNetStatusEvent.NET_STATUSのイベントリスナーを追加し、infoをチェックする必要があります。

connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 

    function netStatusHandler(event:NetStatusEvent):void { 
     switch (event.info.code) { 
      case "NetConnection.Connect.Failed": 
       //Do something on Failed 
       break; 
      case "NetConnection.Connect.Closed": 
       //Do something on Closed 
       break; 
      case "NetConnection.Call.Failed": 
       //Do something on Call.Failed 
       break; 
     } 
    } 
+0

デバッグ時には、デフォルトのケースを使用して他のすべてのネットステータスイベントコードをトレースします。これは、デフォルトでは非常に賢明になります。デフォルト:trace(event.info.code);ブレーク; ' –

+0

ありがとうございます。明らかに私が探していたケースは何らかの理由で "NetConnection.Call.Failed"でした。コードの痕跡は、私がそれを理解するのを助けました...ありがとう、万人!!!! –

+0

@umamiMike私は自分の答えを更新したので、おそらくそれを受け入れることができます。 – Engineer

4

読み込みエラーWSDLホープ、このことができますFaultEvent.FAULT

... 
webService.addEventListener(FaultEvent.FAULT, onWsdlLoadError); 
webService.loadWsdl(<wsdl>); 
... 
protected function onWsdlLoadError(event:FaultEvent):void { 
    trace("wsdl load error: " + event.fault); 
} 

を用いて撮像することができながら。

関連する問題