0

プロキシ サーバーを使用して、LAN ネットワーク内で組み込みフラッシュ 'swf' を実行しています。プロキシ サーバーが一部の URL を中断し、使用情報を返します。これらの URL を送信して、この情報にアクセスしようとしています。このトラフィックは firebug で確認できますが、URLLoader は読み取っていないようです。Complete イベントも Progress イベントも発生しません。タイマーでURLStreamも試してみましたが、availableBytesは常にゼロでした.この情報を読み取ることはできますか?

  private var getLoader:URLLoader = new URLLoader();
  private var sendRequest:URLRequest = new URLRequest();
  public function XDomain() {
   sendRequest= new URLRequest("requesturl");
   getLoader.addEventListener(Event.COMPLETE, eventHandler);
   getLoader.addEventListener(ProgressEvent.PROGRESS,eventHandler2);
   getLoader.load(sendRequest);
  }
  private function eventHandler(event:Event):void {
    trace("running");
  }
  private function eventHandler2(event:ProgressEvent):void {
   trace("runninhg progresss");
  }

事前に感謝 // 編集:このセキュリティ エラーが発生しました

[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]
4

1 に答える 1

0

「しかし、URLLoader はそれを読み取っていないようです...」

URLStream(タイマーなしで、それは何を達成するのでしょうか?)を使用してリンクに到達し、関連するprogressEvent内で a を使用してreadUTFBytes、そのリンクのサーバーから提供されたテキスト応答データを取得します。また、progressEvent を使用して、受信したバイトのサイズを確認します (イベントは複数回発生し、完全なデータがダウンロードされるまで 64kb パケットを取得します)。

エラー #2048 について:
URLloaderはビジュアル データ (jpg、png、swf、テキスト) のデコーダですが、テキスト以外のデータの場合は、swf にアクセスしている他のサーバーにcrossdomain.xmlが存在することが期待されます (両側にも存在する必要があります)。一致する samehttpまたはhttps. これをバイパスする最善の方法は、バイトをバイト配列にロードすることです (URLStream を使用しますが、progressEvents はバイト配列に書き込む必要があります)。URLLoader.loadBytes( yourSWFBytes );

于 2016-12-27T17:06:40.930 に答える