·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]监测用户是否确认(或取消)了下载文件

时间:2016-06-21 11:08酷播
[AS3]监测用户是否确认(或取消)了下载文件,Flash播放器就会试图打开保存对话框,要么成功打开对话框,要么抛出异常,而Flash播放器则继续执行下一行代码

download()方法本身没有暂停执行功能,一旦download()方法被调用,Flash播放器就会试图打开保存对话框,要么成功打开对话框,要么抛出异常,而Flash播放器则继续执行下一行代码,也就是系统并不知道用户是否已经选择了文件并点击保存按钮

解决方法是监听Event.SELECT事件和Event.CANCEL事件,在事件中可以获得被下载文件的名称,因为其事件发起者就是FileReference

  1. package { 
  2.  import flash.display.Sprite; 
  3.  import flash.events.Event; 
  4.  import flash.events.MouseEvent; 
  5.  import flash.net.FileReference; 
  6.  import flash.net.URLRequest; 
  7.  public class Sample0723 extends Sprite 
  8.  { 
  9.   private var fileRefer:FileReference; 
  10.    
  11.   public function Sample0723() 
  12.   { 
  13.    stage.addEventListener(MouseEvent.CLICK,onClick); 
  14.    fileRefer = new FileReference(); 
  15.    fileRefer.addEventListener(Event.SELECT,onSelect); 
  16.    fileRefer.addEventListener(Event.CANCEL,onCancel); 
  17.   } 
  18.    
  19.   private function onClick(event:MouseEvent):void 
  20.   { 
  21.    var urlRequest:URLRequest = new URLRequest("http://xyq.gdl.netease.com/08cg.rar"); 
  22.    try 
  23.    { 
  24.     fileRefer.download(urlRequest,"patch.jpg"); 
  25.    } 
  26.    catch(error:Error) 
  27.    { 
  28.     trace(error.message); 
  29.    } 
  30.   } 
  31.    
  32.   private function onSelect(event:Event):void 
  33.   { 
  34.    trace("用户点了确定,下载文件为"+(event.target  as  FileReference).name); 
  35.   } 
  36.    
  37.   private function onCancel(event:Event):void 
  38.   { 
  39.    trace("用户取消了下载"); 
  40.   } 
  41.  } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器