2012-01-16 8 views
0

SWFがWebサーバー上にあり、無効なURLを読み込もうとしているときにloadの方法がURLStreamクラスのEvent.OPENの代わりにIOErrorEvent.IO_ERRORの代わりに送信されるのはなぜですか?IOErrorEvent.IO_ERRORの代わりにEvent.OPENをディスパッチする理由

SWFをローカルで実行しているときは、同じことは適用されません。

サンプルコード:

var CLS_UrlStream:URLStream = new URLStream(); // Initialize URLStream class instance. 
CLS_UrlStream.addEventListener(Event.OPEN, FUN_StreamHandler); // Listen for successful connections. 
CLS_UrlStream.addEventListener(IOErrorEvent.IO_ERROR, FUN_StreamHandler); // Listen for conenction errors. 
CLS_UrlStream.load(new URLRequest("InvalidURL")); // Load file. 

private function FUN_StreamHandler(FUN_PAR_Event:Event):void { 
trace("EVENT TYPE: " + FUN_PAR_Event.type); 
} 
// Outputs: EVENT TYPE: open 

答えて

0

HTTPStatusEvent.HTTP_STATUS、これなしありたいですエラーイベント。存在しないファイルの要求が行われたときにエラーで応答するWebサーバーがなかったため、同じものはローカルには適用されませんでした。 Monster Debuggerでライブをトレースすることでこれを発見しました。

0

Event.OPENは、負荷時に起動されます。常にそう呼ばれるでしょう。

おそらく、SWFがサーバー上で実行され、存在しないリソースを要求した場合、サーバは実際にデータとしてカウントエラー・メッセージを送信し

+0

代わりにHTTP_STATUSを保持していますが、Event.OPENに関しては、実行されたSWFがWebサーバーからアクセスされたときに常に起動されますが、ローカルで実行された場合は起動されません。私はなぜそれが理解したいと思います。同じように聴いても、なぜイベントが違うのですか? – IneedHelp

+0

わかりました。SWFがサーバー上で実行されていて、存在しないリソースを要求しているとき、サーバーは実際にデータとしてカウントするエラーメッセージを送信します。したがって、エラーイベントはありません。存在しないファイルの要求が行われたときにエラーで応答するWebサーバーがなかったため、同じものはローカルには適用されませんでした。 Monster Debuggerでライブをトレースすることでこれを発見しました。 – IneedHelp

+0

基本的には、ストリーミングと通常のローディングの違い。 –

関連する問題