패키지 | flash.net |
클래스 | public class FileReferenceList |
상속 | FileReferenceList EventDispatcher Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
FileReferenceList 클래스로 작업하려면 다음을 수행합니다.
- 다음과 같이 클래스를 인스턴스화합니다.
var myFileRef = new FileReferenceList();
- 다음과 같이
FileReferenceList.browse()
메서드를 호출하여 업로드할 파일을 하나 이상 선택할 수 있는 대화 상자를 엽니다.myFileRef.browse();
-
browse()
메서드가 성공적으로 호출되면 FileReferenceList 객체의fileList
속성이 FileReference 객체의 배열로 채워집니다. -
fileList
배열의 각 요소에 대해FileReference.upload()
를 호출합니다.
FileReferenceList 클래스에는 여러 파일을 사용하여 작업할 수 있도록 browse()
메서드와 fileList
속성이 포함되어 있습니다. 독립 실행형 및 외부 버전의 Flash Player와 Linux, Mac OS X 10.1 및 이전 버전용 AIR에서는 FileReferenceList.browse()
를 호출하는 동안 SWF 파일의 재생이 일시 정지됩니다.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
fileList : Array [읽기 전용]
FileReference 객체의 배열입니다. | FileReferenceList |
메서드 | 정의 주체 | ||
---|---|---|---|
새 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 | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
이벤트 | 요약 | 정의 주체 | ||
---|---|---|---|---|
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | |||
사용자가 파일 탐색 대화 상자를 닫을 때 전달됩니다. | FileReferenceList | |||
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | |||
파일 탐색 대화 상자에서 업로드할 파일을 하나 이상 선택할 때 전달됩니다. | FileReferenceList |
fileList | 속성 |
fileList:Array
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
FileReference
객체의 배열입니다.
FileReferenceList.browse()
메서드가 호출되고 browse()
메서드에 의해 열린 대화 상자에서 하나 이상의 파일을 선택하면 이 속성은 선택된 각 파일을 나타내는 FileReference 객체의 배열로 채워집니다. 그런 다음, 이 배열을 FileReference.upload()
메서드와 함께 사용하여 각 파일을 업로드할 수 있습니다. 한 번에 하나의 파일만 업로드해야 합니다.
fileList
속성은 해당 FileReferenceList 객체에 대해 browse()를 호출할 때마다 새로 채워집니다.
FileReference
객체 속성에 대해서는 FileReference 클래스 설명서에 설명되어 있습니다.
구현
public function get fileList():Array
관련 API 요소
FileReferenceList | () | 생성자 |
public function FileReferenceList()
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
새 FileReferenceList 객체를 만듭니다. FileReferenceList 객체에 대해 browse()
메서드를 호출하여 하나 이상의 파일을 선택하기 전에는 이 객체에는 아무 것도 포함되지 않습니다. FileReference 객체에 대해 browse()
를 호출하면 이 객체의 fileList
속성이 FileReference
객체의 배열로 채워집니다.
관련 API 요소
browse | () | 메서드 |
public function browse(typeFilter:Array = null):Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
업로드할 로컬 파일을 하나 이상 선택할 수 있는 파일 탐색 대화 상자를 표시합니다. 대화 상자는 사용자 운영 체제에 따라 다릅니다.
Flash Player 10 이상에서는 마우스 클릭이나 키 누르기 이벤트에 대한 이벤트 핸들러 등 사용자 이벤트에 대한 응답으로만 이 메서드를 호출할 수 있습니다. 그렇지 않은 경우 이 메서드를 호출하면 Flash Player에서 오류가 발생합니다.
이 메서드를 호출하여 파일 선택에 성공하면 FileReferenceList 객체의 fileList
속성은 선택된 각 파일의 FileReference 객체 배열로 채워집니다. 다음에 FileReferenceList.browse() 메서드를 호출할 때마다 FileReferenceList.fileList
속성은 대화 상자에서 사용자가 선택한 파일로 다시 설정됩니다.
typeFilter
매개 변수를 사용하여 대화 상자에 표시할 파일을 결정할 수 있습니다.
한 번에 하나의 대화 상자만 표시할 수 있으므로 FileReference.browse()
, FileReference.download()
또는 FileReferenceList.browse()
세션은 FileReferenceList 객체에 대해 한 번에 하나만 수행할 수 있습니다.
매개 변수
typeFilter:Array (default = null ) — 대화 상자에 표시되는 파일을 필터링하는 데 사용되는 FileFilter 인스턴스 배열입니다. 이 매개 변수를 생략하면 모든 파일이 표시됩니다. 자세한 내용은 FileFilter 클래스를 참조하십시오.
|
Boolean — 매개 변수가 유효하고 파일 탐색 대화 상자가 열리면 true 를 반환합니다.
|
이벤트
select: — 사용자가 대화 상자에서 업로드할 항목을 성공적으로 선택했을 때 호출됩니다.
| |
cancel: — [취소]를 클릭하거나 종료하는 방법으로 대화 상자를 닫으면 호출됩니다.
|
오류
IllegalOperationError — 다음과 같은 이유로 발생합니다. 1) 다른 FileReference 또는 FileReferenceList 탐색 세션이 진행 중일 경우. 파일 탐색 세션은 한 번에 하나만 수행할 수 있습니다. 2) 사용자의 mms.cfg 파일 설정이 이 작업을 금지한 경우.
| |
ArgumentError — typeFilter 배열에 올바른 형식의 FileFilter 객체가 포함되어 있지 않은 경우 예외가 발생합니다. 필터의 올바른 형식에 대한 자세한 내용은 FileFilter 설명서를 참조하십시오.
| |
Error — 메서드가 마우스 클릭이나 키 누르기 이벤트와 같은 사용자 액션에 대한 응답으로 호출되지 않는 경우.
|
관련 API 요소
cancel | 이벤트 |
flash.events.Event
속성 Event.type =
flash.events.Event.CANCEL
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
사용자가 파일 탐색 대화 상자를 닫을 때 전달됩니다. 이 대화 상자는 FileReferenceList.browse()
, FileReference.browse()
또는 FileReference.download()
메서드를 호출할 때 열립니다.
Event.CANCEL
상수는 cancel
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 작업이 취소된 객체에 대한 참조입니다. |
관련 API 요소
select | 이벤트 |
flash.events.Event
속성 Event.type =
flash.events.Event.SELECT
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
파일 탐색 대화 상자에서 업로드할 파일을 하나 이상 선택할 때 전달됩니다. 이 대화 상자는 FileReferenceList.browse()
, FileReference.browse()
또는 FileReference.download()
메서드를 호출할 때 열립니다. 파일을 선택하고 작업을 확인하면(예: [저장]을 클릭) FileReferenceList
객체는 선택된 파일을 나타내는 FileReference 객체로 채워집니다.
Event.SELECT
상수는 select
이벤트 객체의 type
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 항목이 선택된 객체입니다. |
관련 API 요소
complete
이벤트를 포함합니다. FileReferenceListExample 클래스의 LIST_COMPLETE
이벤트는 FileReferenceList 객체의 모든 파일이 업로드되면 전달됩니다.
이 예제를 실행하려면 파일 업로드를 승인하도록 작성된 스크립트를 http://www.[yourDomain].com/yourUploadHandlerScript.cfm에 넣습니다. SWF 파일 위치와 파일을 업로드하는 대상 위치에 따라, [로컬 재생 보안]을 [네트워크만 액세스]로 설정하여 SWF 파일을 컴파일해야 할 수도 있습니다. 또는 Flash(r) 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()); } }
Tue Jun 12 2018, 03:17 PM Z