改进AIR网页浏览器:支持加载本地内容

使用HTMLLoader对象,不仅可以加载Html、文本、图片,还可以加载PDF内容(本机安装Adobe Reader 版本8.1或更高版本),目前我们的网页浏览器只能加载远程内容,如何加载本地内容呢?

无论是远程还是本地,都可以通过文件路径的URL来加载,而要访问本地文件或目录的路径,则要用到AIR中的File对象。还有就是我们不能加载所有类型的文件,因此加载前得使用FileFilter对象来过滤。

在Flash CS3的舞台中放置按钮openBtn,并为其注册事件侦听器,如下面的代码:

openBtn.addEventListener(MouseEvent.CLICK, clickOpenHandler); 
  
private function clickOpenHandler( event:MouseEvent ):void { 
    var htmlFilter:FileFilter = new FileFilter("HTML Files","*.html;*.htm"); 
    var txtFilter:FileFilter = new FileFilter("Text Files","*.txt;*.xml"); 
    var imgFilter:FileFilter = new FileFilter("Image Files","*.jpg;*.gif;*.png;*bmp"); 
    var f:File = new File(); 
    var pdfFilter:FileFilter = new FileFilter("PDF Files","*.pdf"); 
    f.browseForOpen( "Select a File", [htmlFilter, txtFilter, imgFilter, pdfFilter] ); 
    f.addEventListener( Event.Select, selectHandler); 
} 
  
private function selectHandler( event:Event ):void { 
    var file:File = event.target as File; 
    htmlLoader.load( new URLRequest( file.url )); 
}

在用户选择文件并关闭打开文件对话框时File对象分派select事件,通过File对象的url属性返回所选本地文件的路径。点击此处下载该实例的源码。

发表评论