パッケージ | 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 オブジェクトの配列が設定されます。 -
FileReference.upload()
をfileList
配列のエレメントごとに呼び出します。
FileReferenceList クラスには、browse()
メソッドや、複数のファイルを扱うための fileList
プロパティなどが含まれます。FileReferenceList.browse()
の呼び出しが実行されている間に、SWF ファイル再生は Linux および Mac OS X 10.1 以前の Flash Player のスタンドアローンバージョンと外部バージョンおよび AIR で一時停止します。
関連する 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 | ||
アップロードするローカルファイルを 1 つ以上選択できるファイル参照ダイアログボックスを表示します。 | 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 | |||
ユーザーがアップロードするファイルをファイル参照ダイアログボックスから 1 つ以上選択したときに送出されます。 | FileReferenceList |
fileList | プロパティ |
fileList:Array
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
FileReference
オブジェクトの配列です。
FileReferenceList.browse()
メソッドが呼び出され、browse()
メソッドが開いたダイアログボックスからユーザーがファイルを選択すると、このプロパティに FileReference オブジェクトの配列が設定されます。FileReference オブジェクトのそれぞれが、ユーザーが選択したファイルを表します。その後、この配列を使用して、FileReference.upload()
メソッドで各ファイルをアップロードできます。一度に 1 つのファイルをアップロードする必要があります。
fileList
プロパティは、browse() が FileReferenceList オブジェクトで呼び出されるたびに新しく設定されます。
FileReference
オブジェクトのプロパティについては、FileReference クラスの説明を参照してください。
実装
public function get fileList():Array
関連する API エレメント
FileReferenceList | () | コンストラクター |
public function FileReferenceList()
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
新しい FileReferenceList オブジェクトを作成します。FileReferenceList オブジェクトで browse()
メソッドが呼び出され、ユーザーがファイルを選択するまでは、FileReferenceList オブジェクトには何も含まれません。FileReference オブジェクトで browse()
を呼び出すと、このオブジェクトの fileList
プロパティに FileReference
オブジェクトの配列が設定されます。
関連する API エレメント
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: — アップロード対象の項目をユーザーがダイアログボックスで正常に選択したときに呼び出されます。
| |
cancel: — ユーザーが「キャンセル」をクリックするかダイアログボックスを閉じたときに呼び出されます。
|
例外
IllegalOperationError — 次の理由によりスローされます。1)他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。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
定数は、type
プロパティ(cancel
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
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 |
ユーザーがアップロードするファイルをファイル参照ダイアログボックスから 1 つ以上選択したときに送出されます。(このダイアログボックスは、FileReferenceList.browse()
メソッド、FileReference.browse()
メソッド、または FileReference.download()
メソッドを呼び出したときに開かれます。)ユーザーがファイルを選択し、「保存」などをクリックして操作を確定すると、ユーザーが選択したファイルを表す FileReference オブジェクトが FileReferenceList
オブジェクトに設定されます。
Event.SELECT
定数は、type
プロパティ(select
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | アイテムが選択されたオブジェクトです。 |
関連する API エレメント
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()); } }
Tue Jun 12 2018, 10:34 AM Z