flash.net
public class FileReferenceList
继承FileReferenceList Inheritance EventDispatcher Inheritance Object

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

FileReferenceList 类提供了让用户选择一个或多个要上载的文件的方法。 FileReferenceList 对象将用户磁盘上的一组本地文件(一个或多个文件)表示为 FileReference 对象的数组。 有关详细信息以及有关 FileReference 对象和 FileReference 类(可与 FileReferenceList 一起使用)的重要注意事项,请参阅 FileReference 类。

使用 FileReferenceList 类:

FileReferenceList 类包括 browse() 方法以及用于处理多个文件的 fileList 属性。 在执行对 FileReferenceList.browse() 的调用时,SWF 文件回放将在用于 Linux 和 Mac OS X 10.1 及其早期版本操作系统的独立播放器和外部播放器上暂停。

查看示例

另请参见

FileReference



公共 属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  fileList : Array
[read-only] 一个 FileReference 对象数组。
FileReferenceList
 Inheritedprototype : Object
[static] 对类或函数对象的原型对象的引用。
Object
公共 方法
 方法定义方
  
创建新的 FileReferenceList 对象。
FileReferenceList
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
browse(typeFilter:Array = null):Boolean
显示文件浏览对话框,让用户选择一个或多个要上载的本地文件。
FileReferenceList
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件摘要定义方
 Inherited Flash Player 获得操作系统焦点并变为活动状态时调度。EventDispatcher
   当用户退出文件浏览对话框时调度。FileReferenceList
 Inherited Flash Player 失去操作系统焦点并变为非活动状态时调度。EventDispatcher
   当用户从文件浏览对话框选择一个或多个要上载的文件时调度。FileReferenceList
属性详细信息
fileList属性
fileList:Array  [read-only]

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

一个 FileReference 对象数组。

当调用了 FileReferenceList.browse() 方法并且用户已从 browse() 方法打开的对话框中选择了一个或多个文件后,此属性用 FileReference 对象数组来填充,数组中的每个对象表示一个用户选择的文件。 然后,您可以通过 FileReference.upload() 方法使用此数组上载每个文件。 必须一次上载一个文件。

每次对该 FileReferenceList 对象调用 browse() 时都要重新填充 fileList 属性。

FileReference 对象的属性在 FileReference 类文档中介绍。


实现
    public function get fileList():Array

另请参见

构造函数详细信息
FileReferenceList()构造函数
public function FileReferenceList()

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

创建新的 FileReferenceList 对象。 在对 FileReferenceList 对象调用 browse() 方法且用户选择一个或多个文件之前,该对象不包含任何内容。 当对 FileReference 对象调用 browse() 时,该对象的 fileList 属性用 FileReference 对象数组来填充。

另请参见

方法详细信息
browse()方法
public function browse(typeFilter:Array = null):Boolean

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

显示文件浏览对话框,让用户选择一个或多个要上载的本地文件。 该对话框对于用户的操作系统来说是本机的。 当调用此方法并且用户成功选择文件时,此 FileReferenceList 对象的 fileList 属性用 FileReference 对象数组来填充,数组中的每个对象表示一个用户选择的文件。 以后每次调用 FileReferenceList.browse() 方法时,FileReferenceList.fileList 属性都重置为用户在对话框中选择的文件。

使用 typeFilter 参数,可决定对话框显示哪些文件。

每次只能对 FileReferenceList 对象执行一个 FileReference.browse()FileReference.download()FileReferenceList.browse() 会话(因为每次只能打开一个对话框)。

参数

typeFilter:Array (default = null) — 一个 FileFilter 实例数组,用于过滤在对话框中显示的文件。 如果省略此参数,则显示所有文件。 有关详细信息,请参阅 FileFilter 类。

返回
Boolean — 如果参数有效并且打开了文件浏览对话框,则返回 true

事件
select:Event — 当用户从对话框中成功选择了要上载的项时进行调用。
 
cancel:Event — 在用户通过单击“取消”或关闭对话框来取消对话框时调用。

引发
IllegalOperationError — 在以下情况下引发:1) 另一个 FileReference 或 FileReferenceList 浏览会话正在进行中;每次仅能执行一个文件浏览会话。 2) 用户 mms.cfg 文件中的某个设置禁止此操作。
 
ArgumentError — 如果 typeFilter 数组包含格式不正确的 FileFilter 对象,将引发异常。 有关过滤器正确格式化的详细信息,请参阅 FileFilter 文档。

另请参见

事件详细信息
cancel 事件
事件对象类型: flash.events.Event
Event.type property = flash.events.Event.CANCEL

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

当用户退出文件浏览对话框时调度。 (当调用 FileReferenceList.browse()FileReference.browse()FileReference.download() 方法时显示此对话框。)

定义 cancel 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target对已取消其操作的对象的引用。

另请参见

select 事件  
事件对象类型: flash.events.Event
Event.type property = flash.events.Event.SELECT

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

当用户从文件浏览对话框选择一个或多个要上载的文件时调度。 (当调用 FileReferenceList.browse()FileReference.browse()FileReference.download() 方法时显示此对话框。) 当用户选择文件并确认该操作(例如,通过单击“保存”)时,会使用表示用户选择的文件的 FileReference 对象填充 FileReferenceList 对象。

定义 select 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
targetFileReference 对象,已在其中选定了一个项目。

另请参见

示例 如何使用示例

下例说明如何使用事件来管理多个文件的上载。 CustomFileReferenceList 类扩展了 FileReferenceList,它包含一个 complete 事件,在上载 FileReferenceList 对象中的各个文件时将调度该事件。 FileReferenceList 对象中的所有文件上载完毕后,将调度 FileReferenceListExample 类中的 LIST_COMPLETE 事件。

若要运行该示例,请插入一个编写好以接受 http://www.[yourDomain].com/yourUploadHandlerScript.cfm 处的文件上载的脚本。 根据 SWF 文件的位置及文件的上载位置,您可能还需要编译 SWF 文件,将“本地回放安全性”设置为“只访问网络”,或更新 Flash ® Player 的安全设置,以允许此文件网络访问。 如果上载服务器为远程服务器,并且要从桌面计算机运行此示例,则服务器必须具有 crossdomain.xml 文件。


package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.FileReferenceList;
 
    public class FileReferenceListExample extends Sprite {
        public static var LIST_COMPLETE:String = "listComplete";
        public function FileReferenceListExample() {
            initiateFileUpload();
        }

        private function initiateFileUpload():void {
            var fileRef:CustomFileReferenceList = new CustomFileReferenceList();
            fileRef.addEventListener(FileReferenceListExample.LIST_COMPLETE, listCompleteHandler);
            fileRef.browse(fileRef.getTypes());
        }

        private function listCompleteHandler(event:Event):void {
            trace("listCompleteHandler");
        }
    }
}
 
import flash.events.*;
import flash.net.FileReference;
import flash.net.FileReferenceList;
import flash.net.FileFilter;
import flash.net.URLRequest;
 
class CustomFileReferenceList extends FileReferenceList {
    private var uploadURL:URLRequest;
    private var pendingFiles:Array;

    public function CustomFileReferenceList() {
        uploadURL = new URLRequest();
        uploadURL.url = "http://www.[yourDomain].com/yourUploadHandlerScript.cfm";
        initializeListListeners();
    }

    private function initializeListListeners():void {
        addEventListener(Event.SELECT, selectHandler);
        addEventListener(Event.CANCEL, cancelHandler);
    }

    public function getTypes():Array {
        var allTypes:Array = new Array();
        allTypes.push(getImageTypeFilter());
        allTypes.push(getTextTypeFilter());
        return allTypes;
    }
 
    private function getImageTypeFilter():FileFilter {
        return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
    }
 
    private function getTextTypeFilter():FileFilter {
        return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
    }
 
    private function doOnComplete():void {
        var event:Event = new Event(FileReferenceListExample.LIST_COMPLETE);
        dispatchEvent(event);
    }
 
    private function addPendingFile(file:FileReference):void {
        trace("addPendingFile: name=" + file.name);
        pendingFiles.push(file);
        file.addEventListener(Event.OPEN, openHandler);
        file.addEventListener(Event.COMPLETE, completeHandler);
        file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
        file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        file.upload(uploadURL);
    }
 
    private function removePendingFile(file:FileReference):void {
        for (var i:uint; i < pendingFiles.length; i++) {
            if (pendingFiles[i].name == file.name) {
                pendingFiles.splice(i, 1);
                if (pendingFiles.length == 0) {
                    doOnComplete();
                }
                return;
            }
        }
    }
 
    private function selectHandler(event:Event):void {
        trace("selectHandler: " + fileList.length + " files");
        pendingFiles = new Array();
        var file:FileReference;
        for (var i:uint = 0; i < fileList.length; i++) {
            file = FileReference(fileList[i]);
            addPendingFile(file);
        }
    }
 
    private function cancelHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("cancelHandler: name=" + file.name);
    }
 
    private function openHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("openHandler: name=" + file.name);
    }
 
    private function progressHandler(event:ProgressEvent):void {
        var file:FileReference = FileReference(event.target);
        trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
    }
 
    private function completeHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("completeHandler: name=" + file.name);
        removePendingFile(file);
    }
 
    private function httpErrorHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("httpErrorHandler: name=" + file.name);
    }
 
    private function ioErrorHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("ioErrorHandler: name=" + file.name);
    }
 
    private function securityErrorHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("securityErrorHandler: name=" + file.name + " event=" + event.toString());
    }
}




 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/net/FileReferenceList.html