用Flash download组件下载文件时,大致步骤如下:
   // 定义一个FileReference 对象
   var downloadFile:FileReference = new FileReference();
   // 绑定downloadFile对象的Event.COMPLETE事件到completeHandle方法
   downloadFile.addEventListener(Event.COMPLETE, completeHandle);
   // 定义一个URLRequest 对象,服务器文件所在的具体路径
   var downloadURL:URLRequest = new URLRequest("http://10.167.12.75:8080/FileUpload/OUTFILE/test.xls");
   // 开始下载文件
   downloadFile.download(downloadURL);
   // completeHandle方法如下
   private function completeHandle(event:Event):void {
        Alert.show("下载成功");
   }
   =====================================================
   如果光是这样,完全没有问题,可以顺利地从服务器上将文件下载下来
   但是项目要求 文件的URL地址必须通过访问WebService取得,就是点了下载按钮后 先得访问WebService里的方法(传一些简单的参数),该方法会返回一个 文件的URL地址(如:http://10.167.12.75:8080/FileUpload/OUTFILE/test.xls),事实上我也成功地得到了该地址,但是按照上面的步骤却下载文件失败:
    部分代码如下:
    override public function successForward(successEvents:Array):void {// successForward方法是访问WebService成功后调用的方法
       var event:ResultEvent = successEvents[0];// event 用来存放WebService成功后调用所 返回的参数
       var result:ArrayList = new ArrayList();
       if(event != null){ //当返回的结果不为空时
          if (event.result != null){ // 当返回结果中的 result 属性值不为空时(正常时它的值是文件的URL路径)
             downloadFile.addEventListener(Event.COMPLETE, completeHandle);// downloadFile对象我是定义在类变量中的,所以方法中未定义
               var url = event.result;//调试结果显示url 是:http://10.167.12.75:8080/FileUpload/OUTFILE/test.xls
             var downloadURL:URLRequest = new URLRequest();
             downloadURL.url = url;
             downloadFile.download(downloadURL);//****这里出问题了????
               //Error: Error #2176: ポップアップウィンドウを表示するなどの特定のアクションは、例えばマウスをクリックしたりボタンを押したりして、ユ ーザによる相互作用が発生した場合にのみ呼び出されます。(中文:显示弹出窗口等的特定ACTION,例如点击鼠标、按下键什么的,只有通过用户发生相互作用时才被调用)
             //completeHandle方法 这里就略去不写了...
          }
       }
    }@@@@@@@@@@@@@@:郁闷!不知道是为什么,它说的'用户发生相互作用'到底是什么意思? 是用户与远程服务器端交互 还是只是与本机交互?
               不明白,难道flash 的download组件是用HTTP协议,而WebService不是用的HTTP协议,这会有问题吗?
                  高手给点idea!