パッケージflash.net
クラスpublic class FileReferenceList
継承FileReferenceList Inheritance EventDispatcher Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

FileReferenceList クラスは、ユーザーがアップロードするファイルを選択する手段を提供します。FileReferenceList オブジェクトは、ユーザーのディスク上にあるローカルファイルを FileReference オブジェクトの配列として表現します。FileReference オブジェクトと FileReference クラスの詳細および重要な考慮事項については、FileReference クラスを参照してください。これらは FileReferenceList で使用します。

FileReferenceList クラスを使用するには

FileReferenceList クラスには、browse() メソッドや、複数のファイルを使用するための fileList プロパティなどがあります。FileReferenceList.browse() の呼び出しが実行されている間に、SWF ファイル再生は Linux および Mac OS X 10.1 以前の Flash Player のスタンドアローンバージョンと外部バージョンおよび AIR で一時停止します。

例を表示

関連項目

FileReference


パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  fileList : Array
[読み取り専用] FileReference オブジェクトの配列です。
FileReferenceList
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
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
アップロードするローカルファイルを 1 つ以上選択できるファイル参照ダイアログボックスを表示します。
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 または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
  ユーザーがファイル参照ダイアログボックスを閉じると、送出されます。FileReferenceList
 Inherited[ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
  ユーザーがアップロードするファイルをファイル参照ダイアログボックスから 1 つ以上選択したときに送出されます。FileReferenceList
プロパティの詳細
fileListプロパティ
fileList:Array  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

FileReference オブジェクトの配列です。

FileReferenceList.browse() メソッドが呼び出され、ユーザーが browse() メソッドによって開いたダイアログボックスからファイルを選択すると、このプロパティに FileReference オブジェクトの配列が設定されます。このオブジェクトは、ユーザーが選択したファイルを表します。その後、この配列を使用して、FileReference.upload() メソッドで各ファイルをアップロードできます。一度に 1 つのファイルをアップロードする必要があります。

fileList プロパティは、browse() が FileReferenceList オブジェクトで呼び出されるたびに新しく設定されます。

FileReference オブジェクトのプロパティについては、FileReference クラスの説明を参照してください。



実装
    public function get fileList():Array

関連項目

コンストラクタの詳細
FileReferenceList()コンストラクタ
public function FileReferenceList()

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

新しい FileReferenceList オブジェクトを作成します。FileReferenceList オブジェクトで browse() メソッドを呼び出し、ユーザーが 1 つまたは複数のファイルを選択するまでは、FileReferenceList オブジェクトには何も含まれません。FileReference オブジェクトで browse() を呼び出すと、このオブジェクトの fileList プロパティに FileReference オブジェクトの配列が設定されます。

関連項目

メソッドの詳細
browse()メソッド
public function browse(typeFilter:Array = null):Boolean

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

アップロードするローカルファイルを 1 つ以上選択できるファイル参照ダイアログボックスを表示します。このダイアログボックスは、オペレーティングシステムのネイティブのダイアログボックスです。

Flash Player 10 以降では、このメソッドの呼び出しは、マウスのクリックやキー入力などのユーザーイベントに応じてイベントハンドラで呼び出した場合にのみ成功します。それ以外の場合は、このメソッドを呼び出すと、Flash Player から例外がスローされます。

このメソッドが呼び出されて、ユーザーが正常にファイルを選択すると、この FileReferenceList オブジェクトの fileList プロパティに FileReference オブジェクトの配列が設定されます。ユーザーが選択したファイル 1 つにつき 1 つの FileReference オブジェクトになります。これ以降 FileReferenceList.browse() メソッドが呼び出されるたびに、FileReferenceList.fileList プロパティは、ダイアログボックスでユーザーが選択したファイルに再設定されます。

どのファイルをダイアログボックスに表示するかを決定するために、typeFilter パラメータを使用できます。

FileReferenceList オブジェクトに対し、一度に 1 つの FileReference.browse() セッション、FileReference.download() セッション、または FileReferenceList.browse() セッションだけを実行できます。これは、一度に 1 つのダイアログボックスしか開けないからです。

パラメータ

typeFilter:Array (default = null) — ダイアログボックスに表示するファイルをフィルタにかける場合に使用する FileFilter インスタンスの配列です。このパラメータを省略すると、すべてのファイルが表示されます。詳細については、FileFilter クラスを参照してください。

戻り値
Boolean — パラメータが有効で、ファイル参照ダイアログボックスが表示された場合に、true を返します。

イベント
select:Event — アップロード対象の項目をユーザーがダイアログボックスで正常に選択したときに呼び出されます。
 
cancel:Event — ユーザーが [キャンセル] をクリックするかダイアログボックスを閉じたときに呼び出されます。

例外
IllegalOperationError — 次の理由によりスローされます。1) 他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) ユーザーの mms.cfg ファイルの設定により、この操作が禁止されている場合。
 
ArgumentError typeFilter 配列に、正しい形式の FileFilter オブジェクトが含まれていないと、例外がスローされます。正しいフィルタ形式について詳しくは、FileFilter の説明を参照してください。
 
Error — マウスイベントやキー入力イベントなどのユーザー操作に応じてメソッドが呼び出されない場合。

関連項目

イベントの詳細
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 定数は、type プロパティ(cancel イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target操作をキャンセルするオブジェクトへの参照です。

関連項目

select イベント  
イベントオブジェクトの型: flash.events.Event
プロパティ Event.type = flash.events.Event.SELECT

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ユーザーがアップロードするファイルをファイル参照ダイアログボックスから 1 つ以上選択したときに送出されます。(このダイアログボックスは、FileReferenceList.browse() メソッド、FileReference.browse() メソッド、または FileReference.download() メソッドを呼び出したときに開かれます)。ユーザーがファイルを選択し、[保存] などをクリックして操作を確定すると、ユーザーが選択したファイルを表す FileReference オブジェクトが FileReferenceList オブジェクトに設定されます。

Event.SELECT 定数は、type プロパティ(select イベントオブジェクト)の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetアイテムが選択されたオブジェクトです。

関連項目

例の使用法
FileReferenceListExample.as

次の例は、イベントを使用して複数ファイルのアップロードを管理する方法を示しています。CustomFileReferenceList クラスは FileReferenceList を継承し、complete イベントを含んでいます。このイベントは、FileReferenceList オブジェクト内の個々のファイルがアップロードされるたびに送出されます。FileReferenceListExample クラスの LIST_COMPLETE イベントは、FileReferenceList オブジェクト内のすべてのファイルがアップロードされると送出されます。

この例を実行するには、ファイルアップロードの受け取り処理を記述したスクリプトを、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/flex/3_jp/langref/flash/net/FileReferenceList.html