包 | flash.net |
类 | public class FileReferenceList |
继承 | FileReferenceList EventDispatcher Object |
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
使用 FileReferenceList 类:
var myFileRef = new FileReferenceList();
FileReferenceList.browse()
方法,该方法将打开一个对话框,让用户选择一个或多个要上载的文件:myFileRef.browse();
browse()
方法之后,使用 FileReference 对象数组来填充 FileReferenceList 对象的 fileList
属性。fileList
数组中的每个元素调用 FileReference.upload()
。FileReferenceList 类包括 browse()
方法以及用于处理多个文件的 fileList
属性。 在执行对 FileReferenceList.browse()
的调用时,SWF 文件回放将在用于 Linux 和 Mac OS X 10.1 及其早期版本操作系统的独立播放器和外部播放器上暂停。
另请参见
属性 | 定义方 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。
| Object | ||
fileList : Array
[read-only]
一个 FileReference 对象数组。
| FileReferenceList | ||
prototype : Object
[static]
对类或函数对象的原型对象的引用。
| Object |
方法 | 定义方 | ||
---|---|---|---|
创建新的 FileReferenceList 对象。
| FileReferenceList | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
| EventDispatcher | ||
显示文件浏览对话框,让用户选择一个或多个要上载的本地文件。
| FileReferenceList | ||
将事件调度到事件流中。
| EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
| EventDispatcher | ||
指示对象是否已经定义了指定的属性。
| Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。
| Object | ||
指示指定的属性是否存在、是否可枚举。
| Object | ||
从 EventDispatcher 对象中删除侦听器。
| EventDispatcher | ||
设置循环操作动态属性的可用性。
| Object | ||
返回指定对象的字符串表示形式。
| Object | ||
返回指定对象的原始值。
| Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
| EventDispatcher |
事件 | 摘要 | 定义方 | ||
---|---|---|---|---|
Flash Player 获得操作系统焦点并变为活动状态时调度。 | EventDispatcher | |||
当用户退出文件浏览对话框时调度。 | FileReferenceList | |||
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: — 当用户从对话框中成功选择了要上载的项时进行调用。 |
|
cancel: — 在用户通过单击“取消”或关闭对话框来取消对话框时调用。 |
IllegalOperationError — 在以下情况下引发:1) 另一个 FileReference 或 FileReferenceList 浏览会话正在进行中;每次仅能执行一个文件浏览会话。 2) 用户 mms.cfg 文件中的某个设置禁止此操作。
|
|
ArgumentError — 如果 typeFilter 数组包含格式不正确的 FileFilter 对象,将引发异常。 有关过滤器正确格式化的详细信息,请参阅 FileFilter 文档。
|
另请参见
cancel | 事件 |
flash.events.Event
flash.events.Event.CANCEL
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
当用户退出文件浏览对话框时调度。 (当调用 FileReferenceList.browse()
、FileReference.browse()
或 FileReference.download()
方法时显示此对话框。)
cancel
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 对已取消其操作的对象的引用。 |
另请参见
select | 事件 |
flash.events.Event
flash.events.Event.SELECT
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
当用户从文件浏览对话框选择一个或多个要上载的文件时调度。 (当调用 FileReferenceList.browse()
、FileReference.browse()
或 FileReference.download()
方法时显示此对话框。) 当用户选择文件并确认该操作(例如,通过单击“保存”)时,会使用表示用户选择的文件的 FileReference 对象填充 FileReferenceList
对象。
select
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | FileReference 对象,已在其中选定了一个项目。 |
另请参见
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