0

我在带有代理服务器的 LAN 网络中运行嵌入式闪存“swf”。代理服务器中断一些 url 并返回我的使用信息。我正在尝试通过发送这些 url 来访问这些信息。我可以在 firebug 中看到这个流量,但 URLLoader 似乎没有读取它。Complete 事件或进度事件都不会被触发。我也尝试了带计时器的 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 中使用 areadUTFBytes来获取该链接服务器给出的任何文本响应数据。使用 progressEvent 还可以检查任何接收到的字节的大小(该事件多次触发,获得 64kb 数据包,直到下载完整数据)。

关于错误 #2048:
URLloader是视觉数据(jpg、png、swf、文本)的解码器,但对于非文本数据,它希望在您访问 swf 的另一台服务器上存在crossdomain.xml(双方还必须有一个匹配的相同httphttps。再次绕过它的最佳方法是将字节加载到字节数组中(通过 URLStream 但progressEvents现在应该写入您的字节数组)然后稍后使用URLLoader.loadBytes( yourSWFBytes );

于 2016-12-27T17:06:40.930 回答