软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 电脑教程 > 编程开发 > 其它语言 > Flex air 中FileReference的学习和使用(附源代码)

Flex air 中FileReference的学习和使用(附源代码)

20120614081654

FileReference 对象表示客户端或服务器计算机上的数据文件。每个 FileReference 对象都代表本地计算机上的一个数据文件

通过 FileReference 类的方法可使应用程序本地加载和保存数据文件,以及与远程服务器之间传输文件数据。

该类就包括 browse() 方法、upload() 方法、download() 方法、load()方法 和 save() 方法。使用 browse() 方法使用户可以选择文件。使用 upload() 方法可以将文件数据上传到远程服务器。使用 download() 方法可以从服务器下载数据到本地文件。load() 和 save() 这两种方法允许您直接访问和保存本地文件。

注:File 类 (用于扩展 FileReference 类)和 FileStream 类提供了其他的函数用以使用文件和本地文件系统。仅 AIR 支持

FileReference 类的属性包含有关文件大小、类型、名称、文件扩展名、创建者、创建日期和修改日期的信息。

可以通过以下两种方式之一创建 FileReference 类的实例:

• 使用 new 运算符,如下面的代码所示:

import flash.net.FileReference;

var fileRef:FileReference = new FileReference();

• 调用 FileReferenceList.browse() 方法,该方法将打开一个对话框,提示用户选择一个或多个要上载的文件。如果用户成功选择了一个或多个文件,则创建一个 FileReference 对象数组。

在创建完 FileReference 对象后,您便可以进行以下操作:

• 调用 FileReference.browse() 方法,该方法将打开一个对话框,提示用户从本地文件系统中选择一个文件。这种情况通常在,后续调用 FileReference.upload() 方法或 FileReference.load() 方法之前执行。

• 调用 FileReference.download() 方法。download() 方法将打开一个对话框,让用户选择用于保存新文件的位置。然后从服务器下载数据,并将数据存储在新文件中。

• 调用 FileReference.load() 方法。此方法使用 browse() 方法开始从之前所选的文件中加载数据。直到 browse() 操作完成 (用户选择了文件)时,才能调用 load() 方法。

• 调用 FileReference.save() 方法。此方法将打开一个对话框,提示用户在本地文件系统上选择一个文件位置。然后此方法将数据保存到该指定位置。

注意:  一次只能执行一个 browse()、download() 或 save() 操作,因为在任何时刻都只能打开一个对话框。

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="init(event)">
<s:layout>
<s:VerticalLayout horizontalAlign="center" verticalAlign="middle"/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.CloseEvent;
import mx.events.FlexEvent;
import mx.formatters.NumberFormatter;
var fileref:FileReference = new FileReference();
protected function init(event:FlexEvent):void
{
// 初始化
}

protected function browerfun(event:MouseEvent):void
{
// 打开浏览对话框
var textfilter:FileFilter = new FileFilter('请选择文本文件','*.txt');
fileref.addEventListener(Event.SELECT,selectok);
fileref.browse([textfilter]);
}

protected function savefun(event:MouseEvent):void
{
if (fileref.data) {
fileref.addEventListener(Event.COMPLETE,saveok);
fileref.save(fileref.data,'测试.txt');
} else {
Alert.show('请先浏览文件并加载数据!','警告');
}

}

protected function uploadfun(event:MouseEvent):void
{
// TODO Auto-generated method stub
var url:URLRequest = new URLRequest('http://blog.phpclubs.com/demo/flex/upload.php');
if (fileref.data) {
fileref.removeEventListener(Event.COMPLETE,loadok);
fileref.addEventListener(Event.COMPLETE,uploadok);
fileref.addEventListener(ProgressEvent.PROGRESS,profun);
fileref.upload(url);
} else {
Alert.show('请先浏览文件并加载数据!','警告');
}
}

protected function downloadfun(event:MouseEvent):void
{
// 远程文件下载
fileref.addEventListener(Event.COMPLETE,downloadok);
fileref.addEventListener(ProgressEvent.PROGRESS,profun);
fileref.download(new URLRequest('http://blog.phpclubs.com/demo/flex/demo.air'));

}

function selectok(event:Event):void{
// 选择文件成功函数
Alert.yesLabel = '是';
Alert.cancelLabel = '否';
Alert.show('选择文件成功,是否加载数据?','温馨提示',Alert.YES|Alert.CANCEL,this,closefun);
}
function closefun(event:CloseEvent):void{
// 关闭对话框函数
trace(event.detail);
if(event.detail==1){
fileref.addEventListener(Event.COMPLETE,loadok);
fileref.load();
}
}
function loadok(event:Event):void{
// 加载数据完成处理函数
Alert.show('加载数据完成','温馨提示');
fileref.removeEventListener(Event.SELECT,selectok);
fileref.removeEventListener(Event.COMPLETE,loadok);
}
function saveok(event:Event):void{
// 数据保存成功
Alert.show('数据保存成功','温馨提示');
fileref.removeEventListener(Event.SELECT,selectok);
fileref.removeEventListener(Event.COMPLETE,saveok);
}
function uploadok(event:Event):void{
// 数据保存成功
Alert.show('上传成功','温馨提示');
fileref.removeEventListener(Event.SELECT,selectok);
fileref.removeEventListener(Event.COMPLETE,uploadok);
}
function downloadok(event:Event):void{
// 数据保存成功
Alert.show('下载完成','温馨提示');
fileref.removeEventListener(Event.SELECT,selectok);
fileref.removeEventListener(Event.COMPLETE,downloadok);
}
function profun(event:ProgressEvent):void{
var numformat:NumberFormatter = new NumberFormatter();
numformat.precision = 0;
var int:int = int(event.bytesLoaded/event.bytesTotal*100);
process.text = '进度'+numformat.format(int)+'%';
}

]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:HGroup width="331" height="79">
<s:Label width="331" height="48" fontSize="29" text="FileReference学习实例" textAlign="center"
verticalAlign="middle" fontFamily="微软雅黑"/>
</s:HGroup>
<s:HGroup width="398" height="42" textAlign="center" verticalAlign="middle" horizontalAlign="center">
<s:Button label="浏览" click="browerfun(event)"/>
<s:Button label="保存数据" click="savefun(event)"/>
<s:Button label="上传" click="uploadfun(event)"/>
<s:Button label="下载" click="downloadfun(event)"/>
</s:HGroup>
<s:VGroup width="329" height="59" horizontalAlign="center">
<s:Label id="process" width="272" height="48" fontSize="29" text="" textAlign="center"
verticalAlign="middle"/>
</s:VGroup>
</s:WindowedApplication>
本文源代码下载:filereference_veryhuo.com.rar
    相关阅读
    栏目导航
    推荐软件