This page was saved using jaction on 2006-09-04 8:33:41.
Address: http://flexdocs.kr/docs/flex2/langref/flash/net/FileReferenceList.html
Title: flash.net.FileReferenceList (Flex™ 2 레퍼런스 가이드)  •  Size: 43431
Packageflash.net
Classpublic class FileReferenceList
InheritanceFileReferenceList Inheritance EventDispatcher Inheritance Object

FileReferenceList 클래스에는, 유저가 업 로드하는 파일을 선택하는 수단 (복수 선택 가능)이 있습니다. FileReferenceList object는, 유저의 디스크상에 있는 로컬 파일을 FileReference object의 배열로서 표현합니다. FileReference object와 FileReference 클래스의 상세 및 중요한 고려사항에 대해서는, 「FileReference 클래스」를 참조해 주세요. 이것들은 FileReferenceList 로 사용합니다.

FileReferenceList 클래스를 사용하려면

FileReferenceList 클래스에는,browse() Methods나, 복수의 파일을 사용하기 위한 fileList property등이 있습니다.

View the examples

See also

FileReference


Public property
 property정의
 Inheritedconstructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor    함수에의 참조입니다.
Object
  fileList : Array
[read-only] FileReference object의 배열입니다.
FileReferenceList
 Inheritedprototype : Object
[static] 클래스 또는 함수 object의 prototype object에의 참조입니다.
Object
Public Methods
 Methods정의
  FileReferenceList ()
새로운 FileReferenceList object를 작성합니다.
FileReferenceList
 InheritedaddEventListener (type:String , listener:Function , useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
event listener objects를 EventDispatcher object에 등록해, listener가 이벤트의 통지를 받도록(듯이) 합니다.
EventDispatcher
  browse (typeFilter:Array = null):Boolean
업 로드하는 로컬 파일을 1 개 이상 선택할 수 있는 파일 참조 다이알로그 박스를 표시합니다.
FileReferenceList
 InheriteddispatchEvent (event:Event ):Boolean
이벤트를 event 플로우(flow)에 dispatch합니다.
EventDispatcher
 InheritedhasEventListener (type:String ):Boolean
EventDispatcher object에, 특정의 event 타입에 대해서 등록된 listener가 있을지 어떨지를 확인합니다.
EventDispatcher
 InheritedhasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
Object
 InheritedisPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
Object
 InheritedpropertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
Object
 InheritedremoveEventListener (type:String , listener:Function , useCapture:Boolean = false):void
EventDispatcher object로부터 listener를 삭제합니다.
EventDispatcher
 InheritedsetPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
Object
 InheritedtoString ():String
지정된 object의 string 표현을 돌려줍니다.
Object
 InheritedvalueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
Object
 InheritedwillTrigger (type:String ):Boolean
지정된 event 타입에 대해, 이 EventDispatcher object 또는 그 조상에게 event listener가 등록되어 있는지 어떤지를 확인합니다.
EventDispatcher
이벤트
 이벤트일람정의
  cancel 유저가 파일 참조 다이알로그 박스를 닫으면, dispatch됩니다FileReferenceList
  select 유저가 업 로드하는 파일을 파일 참조 다이알로그 박스로부터 1 개 이상 선택했을 때에 dispatch됩니다. FileReferenceList
property의 상세
fileListproperty
fileList:Array   [read-only]

FileReference object의 배열입니다.

FileReferenceList.browse() Methods가 불려 가 유저가 browse() Methods에 의해 연 다이알로그 박스로부터 파일을 선택하면, 이 property에 FileReference object의 배열이 설정됩니다. 이 object는, 유저가 선택한 파일을 나타냅니다. 그 후, 이 배열을 사용해,FileReference.upload() Methods로 각 파일을 업 로드할 수 있습니다. 한 번에 1 개의 파일을 업 로드할 필요가 있습니다.

fileList property는, browse()가 FileReferenceList object로 불려 갈 때마다 새롭게 설정됩니다.

FileReference object의 property에 대한 설명은, FileReference 클래스의 설명에 있습니다.

Implements
    public function get fileList():Array

See also

constructor    의 상세
FileReferenceList()constructor   
public 함수 FileReferenceList()

새로운 FileReferenceList object를 작성합니다. FileReferenceList object로 browse() Methods를 호출해, 유저가 1 개 또는 복수의 파일을 선택할 때까지는, FileReferenceList object에는 아무것도 포함되지 않습니다. FileReference object로 browse() 를 호출하면, 이 object의 fileList property에 FileReference object의 배열이 설정됩니다.

See also

Methods의 상세
browse()Methods
public function browse(typeFilter:Array = null):Boolean

업 로드하는 로컬 파일을 1 개 이상 선택할 수 있는 파일 참조 다이알로그 박스를 표시합니다. 이 다이알로그 박스는, operating system의 네이티브의 다이알로그 박스입니다. 이 Methods를 호출해, 유저가 정상적으로 파일을 선택하면, 이 FileReferenceList object의 fileList property에 FileReference object의 배열이 설정됩니다. FileReference object는 유저가 선택한 파일 마다 작성됩니다. 이 이후 FileReferenceList.browse() Methods가 불려 갈 때마다,FileReferenceList.fileList property는, 다이알로그 박스로 유저가 선택한 파일에 리셋트 됩니다.

어느 파일을 다이알로그 박스에 표시할까를 결정하기 위해서(때문에),typeFilter Parameters를 사용할 수 있습니다.

FileReferenceList object에 대해, 한 번에 1 개의 FileReference.browse() 세션,FileReference.download() 세션, 또는 FileReferenceList.browse() 세션만을 실행할 수 있습니다. 이것은, 한 번에 1 개의 다이알로그 박스 밖에 열지 않기 때문입니다.

Parameters
typeFilter:Array (default = null) — 다이알로그 박스에 표시하는 파일을 필터에 걸치는 경우에 사용하는 FileFilter 인스턴스의 배열입니다. 이 Parameters를 생략 하면, 모든 파일이 표시됩니다. 상세한 것에 대하여는,FileFilter 클래스를 참조해 주세요.

반환값
Boolean — Parameters가 유효해, 파일 참조 다이알로그 박스가 표시되었을 경우에,true 를 돌려줍니다.

이벤트
select:Event — 업 로드 대상의 항목을 유저가 다이알로그 박스로 정상적으로 선택했을 때에 불려 갑니다.
 
cancel:Event — 유저가 [캔슬] 을 클릭할까 다이알로그 박스를 닫았을 경우에, 불려 갑니다.

Throws
IllegalOperationError — 다음의 이유에 의해 슬로우 됩니다. 1) 다른 FileReference 브라우즈 세션, 또는 FileReferenceList 브라우즈 세션이 진행중의 경우. 파일 브라우즈의 세션은, 한 번에 1 개만 실행할 수 있습니다. 2) 유저의 "mms.cfg" 파일의 설정에 의해, 이 조작이 금지되고 있는 경우.
 
ArgumentError typeFilter 배열에, 올바른 형식의 FileFilter object가 포함되지 않으면 예외가 슬로우 됩니다. 올바른 필터 형식의 상세한 것에 대하여는, FileFilter 의 설명을 참조해 주세요.

See also

이벤트의 상세
cancelevent 
Event object type: flash.events.Event
Event.type property = flash.events.Event.CANCEL

유저가 파일 참조 다이알로그 박스를 닫으면, dispatch됩니다(이 다이알로그 박스는,FileReferenceList.browse() Methods,FileReference.browse() Methods, 또는FileReference.download() Methods를 호출했을 때에 열립니다).

cancelevent object의 type property의 값을 정의합니다.

이 이벤트에는, 다음의 property가 있습니다.

PropertyValue
bubblesfalse
cancelablefalse 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다.
currentTargetevent listener로 Event object를 액티브하게 처리하고 있는 object입니다.
target조작을 캔슬하는 object에의 참조입니다.

See also

selectevent  
Event object type: flash.events.Event
Event.type property = flash.events.Event.SELECT

유저가 업 로드하는 파일을 파일 참조 다이알로그 박스로부터 1 개 이상 선택했을 때에 dispatch됩니다. (이 다이알로그 박스는,FileReferenceList.browse() Methods,FileReference.browse() Methods, 또는FileReference.download() Methods를 호출했을 때에 열립니다). 유저가 파일을 선택해,[보존] 등을 클릭해 조작을 확인하면, 유저가 선택한 파일을 나타내는 FileReference object가 FileReferenceList object로 설정됩니다.

select event object의 type property의 값을 정의합니다.

이 이벤트에는, 다음의 property가 있습니다.

PropertyValue
bubblesfalse
cancelablefalse 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다.
currentTargetevent listener로 Event object를 액티브하게 처리하고 있는 object입니다.
target아이템이 선택된 FileReference object입니다.

See also

Examples

다음의 예는, 이벤트를 사용해 복수 파일의 업 로드를 관리하는 방법을 나타내고 있습니다. CustomFileReferenceList 클래스는, FileReferenceList 를 확장한 클래스에서, complete 이벤트가 포함됩니다. 이 이벤트는, FileReferenceList object내의 개개의 파일이 업 로드되면 dispatch됩니다. FileReferenceListExample 클래스의 LIST_COMPLETE 이벤트는, FileReferenceList object내의 모든 파일이 업 로드되면, dispatch됩니다.

이 예를 실행하려면 , 파일 업 로드의 수취 처리를 기술한 스크립트를, http://www. [도메인명]. 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://flexdocs.kr/docs/flex2/langref/flash/net/FileReferenceList.html