| パッケージ | flash.net |
| クラス | public class URLLoader |
| 継承 | URLLoader EventDispatcher Object |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
URLLoader オブジェクトは、データを ActionScript で使用できるようにする前に、それらのすべてのデータを URL からダウンロードします。URLLoader オブジェクトは、ダウンロードの進捗に関する通知を送信します。この通知は、送出済みのイベント、さらには bytesLoaded および bytesTotal プロパティで監視できます。
このメソッドを使用するときは、Adobe® Flash® Player セキュリティモデルを考慮してください。
Flash Player 8 以降 :
Flash Player 7 以降 :
url は正確に同じドメインに置かれている必要があります。たとえば www.adobe.com に置かれている SWF ファイルは、www.adobe.com に置かれているソースからのみデータをロードできます。詳細については、以下を参照してください。
Flash Player 7 より前のバージョンの Player で SWF ファイルを実行している場合、url は、呼び出し元の SWF ファイルと同じスーパードメインに属している必要があります。スーパードメインは、ファイルの URL の左端の要素を削除することで求められます。たとえば、www.adobe.com に存在する SWF ファイルは、store.adobe.com に存在するソースからデータをロードできます。これは、どちらのファイルも同じスーパードメイン adobe.com に属しているためです。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
| bytesLoaded : uint = 0
ロード操作中に、既にロード済みのデータのバイト数を示します。
| URLLoader | ||
| bytesTotal : uint = 0
ダウンロードデータの合計バイト数を示します。
| URLLoader | ||
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
| data : *
ロード操作によって受信したデータです。
| URLLoader | ||
| dataFormat : String = "text"
ダウンロードしたデータがテキスト (URLLoaderDataFormat.TEXT)、生のバイナリデータ (URLLoaderDataFormat.BINARY)、または URL エンコードされた変数 (URLLoaderDataFormat.VARIABLES) のいずれであるかを制御します。
| URLLoader | ||
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| メソッド | 定義元 | ||
|---|---|---|---|
|
URLLoader(request:URLRequest = null)
URLLoader オブジェクトを作成します。
| URLLoader | ||
![]() |
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
| EventDispatcher | |
|
進行中のロード操作は直ちに終了します。
| URLLoader | ||
![]() |
イベントをイベントフローに送出します。
| EventDispatcher | |
![]() |
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
| EventDispatcher | |
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
| Object | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
|
指定された URL からデータを送信およびロードします。
| URLLoader | ||
![]() |
指定されたプロパティが存在し列挙できるかどうかを示します。
| Object | |
![]() |
EventDispatcher オブジェクトからリスナーを削除します。
| EventDispatcher | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| EventDispatcher | |
| イベント | 概要 | 定義元 | ||
|---|---|---|---|---|
![]() | Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | ||
| 受信したすべてのデータがデコードされて URLLoader オブジェクトの data プロパティへの格納が完了したときに送出されます。 | URLLoader | |||
![]() | Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | ||
| URLLoader.load() を呼び出して HTTP 経由でデータへのアクセスを試みたときに Flash Player がその要求のステータスコードを検出して返すことが可能な環境にある場合に送出されます | URLLoader | |||
| URLLoader.load() の呼び出し時に致命的なエラーが発生してダウンロードが終了した場合に送出されます。 | URLLoader | |||
| URLLoader.load() メソッドの呼び出しによりダウンロード処理が開始されると送出されます。 | URLLoader | |||
| ダウンロード処理を実行中にデータを受信したときに送出されます。 | URLLoader | |||
| URLLoader.load() の呼び出しによってセキュリティサンドボックスの外部にあるサーバーからデータをロードしようとすると送出されます。 | URLLoader | |||
| bytesLoaded | プロパティ |
public var bytesLoaded:uint = 0
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ロード操作中に、既にロード済みのデータのバイト数を示します。
| bytesTotal | プロパティ |
public var bytesTotal:uint = 0
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ダウンロードデータの合計バイト数を示します。このプロパティは、ロード操作の進行中は 0 を格納し、操作が完了した時点で設定されます。また、Content-Length ヘッダがない場合、bytesTotal の値が不確定になります。
| data | プロパティ |
public var data:*
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ロード操作によって受信したデータです。このプロパティは、ロード操作が完了したときにのみ設定されます。データの形式は、dataFormat プロパティの設定によって決まります。
dataFormat プロパティが URLLoaderDataFormat.TEXT の場合、受け取るデータは、ロードされたファイルのテキストを含むストリングです。
dataFormat プロパティが URLLoaderDataFormat.BINARY の場合、受け取るデータは、生のバイナリデータを含む ByteArray オブジェクトです。
dataFormat プロパティが URLLoaderDataFormat.VARIABLES の場合、受け取るデータは、URL エンコードされた変数を含む URLVariables オブジェクトです。
関連項目
| dataFormat | プロパティ |
public var dataFormat:String = "text"
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ダウンロードしたデータがテキスト (URLLoaderDataFormat.TEXT)、生のバイナリデータ (URLLoaderDataFormat.BINARY)、または URL エンコードされた変数 (URLLoaderDataFormat.VARIABLES) のいずれであるかを制御します。
dataFormat プロパティの値が URLLoaderDataFormat.TEXT の場合、受け取るデータは、ロードされたファイルのテキストを含むストリングです。
dataFormat プロパティの値が URLLoaderDataFormat.BINARY の場合、受け取るデータは、生のバイナリデータを含む ByteArray オブジェクトです。
dataFormat プロパティの値が URLLoaderDataFormat.VARIABLES の場合、受け取るデータは、URL エンコードされた変数を含む URLVariables オブジェクトです。
デフォルト値 : URLLoaderDataFormat.TEXT.
関連項目
| URLLoader | () | コンストラクタ |
public function URLLoader(request:URLRequest = null)
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
URLLoader オブジェクトを作成します。
パラメータrequest:URLRequest (default = null) — ダウンロードする URL を指定する URLRequest オブジェクトです。このパラメータを省略すると、ロード操作は開始されません。指定すると、直ちにロード操作が開始されます。詳細については、load を参照してください。
|
関連項目
| close | () | メソッド |
public function close():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
進行中のロード操作は直ちに終了します。進行中のロード操作は直ちに終了します。URL が現在ストリーミングされていない場合、無効なストリームエラーがスローされます。
| load | () | メソッド |
public function load(request:URLRequest):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
指定された URL からデータを送信およびロードします。dataFormat プロパティに設定した値に基づき、テキスト、生のバイナリデータ、または URL エンコードされた変数としてデータを受け取ることができます。dataFormat プロパティのデフォルト値はテキストです。データを指定された URL に送信する場合は、URLRequest オブジェクトの data プロパティを設定できます。
メモ : ロード中のファイルに ASCII 文字以外の文字 (英語以外の多くの言語に存在する) が含まれている場合は、ASCII のような非 Unicode 形式ではなく UTF-8 または UTF-16 エンコーディング形式でファイルを保存することをお勧めします。
このメソッドを使用するときは、Flash Player セキュリティモデルを考慮してください。
Flash Player 9 以降では、SWF ファイルがこのメソッドを使用しないようにすることができます。そのためには、SWF コンテンツを含んでいる HTML ページに allowNetworking パラメータ (object タグおよび embed タグ) を設定します。
Flash Player 8 以降 :
Flash Player 7 以降では、クロスドメインポリシーファイルによって、Web サイトでのリソースへのクロスドメインアクセスを許可することができます。Flash Player 7 以降で SWF ファイルを実行している場合、url はまったく同じドメインに属している必要があります。たとえば www.adobe.com に置かれている SWF ファイルは、www.adobe.com に置かれているソースからのみデータをロードできます。
詳細については、以下を参照してください。
Flash Player 7 より前のバージョンの Player で SWF ファイルを実行している場合、url は、呼び出し元の SWF ファイルと同じスーパードメインに属している必要があります。スーパードメインは、ファイルの URL の左端の要素を削除することで求められます。たとえば、www.adobe.com に存在する SWF ファイルは、store.adobe.com に存在するソースからデータをロードできます。これは、どちらのファイルも同じスーパードメイン adobe.com に属しているためです。
パラメータ
request:URLRequest — ダウンロードする URL を指定する URLRequest オブジェクトです。
|
complete: — データが正常にロードされた後に送出されます。 |
|
httpStatus: — アクセスが HTTP 経由で、現在の Flash Player 環境がステータスコードの取得をサポートしている場合、complete イベントまたは error イベントに加えて、これらのイベントを受け取る場合があります。 |
|
ioError: — ロード操作を完了できませんでした。 |
|
progress: — ダウンロード処理を実行中にデータを受信したときに送出されます。 |
|
securityError: — 呼び出し元のセキュリティ Sandbox の外部にあるサーバーからデータを取得しようとするロード操作です。これはサーバー上のポリシーファイルを使用すると回避できます。 |
|
open: — ロード操作が開始したときに送出されます。 |
ArgumentError — URLRequest.requestHeader オブジェクトには、禁止されている特定の HTTP リクエストヘッダを含めることはできません。詳細については、URLRequestHeader クラスの説明を参照してください。
|
|
MemoryError — このエラーは、次の理由で発生する可能性があります。1) Flash Player では URLRequest.data パラメータを UTF8 から MBCS に変換できません。このエラーは、load() に渡された URLRequest オブジェクトが GET 操作を行うように設定されている場合、および System.useCodePage が true に設定されている場合に発生することがあります。2) Flash Player では POST データにメモリを割り当てることができません。このエラーは、load に渡された URLRequest オブジェクトが POST 操作を行うように設定されている場合に発生することがあります。
|
|
SecurityError — 信頼されていないローカル SWF はインターネットへの接続を許可されません。これは、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類すると回避できる場合があります。
|
|
TypeError — 要求パラメータの値、または渡された URLRequest オブジェクトの URLRequest.url プロパティの値は null です。
|
関連項目
XML ファイルの場所を示す URLRequest オブジェクトを作成します。この例では、XML ファイルは SWF ファイルと同じディレクトリにあります。発生する可能性のあるエラーをキャッチするために、try...catch ブロックにファイルをロードします。この例では、SecurityError エラーをキャッチします。IO_ERROR イベントが発生すると、errorHandler() メソッドを呼び出します。このメソッドは、xmlTextField テキストフィールドにエラーメッセージを書き込みます。XML ファイルのデータを受信して loader URLLoader オブジェクトのデータプロパティに格納した後、Event.COMPLETE イベントを送出し、loaderCompleteHandler() メソッドを呼び出します。
loaderCompleteHandler() メソッドで、try...catch ブロックを使用して、ロードしたデータをファイルから XML オブジェクトに変換する際に発生する解析エラーをキャッチします。次に、readNodes() メソッドで XML ドキュメントのノード内にあるすべてのエレメントを回帰的に読み取り、すべてのエレメントの先頭にある属性のリストを xmlTextField テキストフィールドに付加します。
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.xml.*;
import flash.events.IOErrorEvent;
public class URLLoader_loadExample extends Sprite {
private var xmlTextField:TextField = new TextField();
private var externalXML:XML;
private var loader:URLLoader;
public function URLLoader_loadExample() {
var request:URLRequest = new URLRequest("xmlFile.xml");
loader = new URLLoader();
try {
loader.load(request);
}
catch (error:SecurityError)
{
trace("A SecurityError has occurred.");
}
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
xmlTextField.x = 10;
xmlTextField.y = 10;
xmlTextField.background = true;
xmlTextField.autoSize = TextFieldAutoSize.LEFT;
addChild(xmlTextField);
}
private function loaderCompleteHandler(event:Event):void {
try {
externalXML = new XML(loader.data);
readNodes(externalXML);
} catch (e:TypeError) {
trace("Could not parse the XML file.");
}
}
private function readNodes(node:XML):void {
for each (var element:XML in node.elements()) {
xmlTextField.appendText(element.attributes()[0] + "\n");
readNodes(element);
}
}
private function errorHandler(e:IOErrorEvent):void {
xmlTextField.text = "Had problem loading the XML File.";
}
}
}
| complete | イベント |
flash.events.Event
flash.events.Event.COMPLETE
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
受信したすべてのデータがデコードされ、URLLoader オブジェクトの data プロパティに配置された後に送出されます。このイベントが送出されると、受信したデータにアクセスできます。
type プロパティ (complete イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | ロードが完了したネットワークオブジェクトです。 |
関連項目
| httpStatus | イベント |
flash.events.HTTPStatusEvent
flash.events.HTTPStatusEvent.HTTP_STATUS
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
URLLoader.load() を呼び出して HTTP を介してデータにアクセスを試み、現在の Flash Player 環境で要求のステータスコードを検出して返すことができる場合に送出されます (一部のブラウザ環境ではこの情報を提供できません)。httpStatus イベントが発生した場合は、complete イベントまたは error イベントの前に、これらのイベントとは別に送信されます。
type プロパティ (httpStatus イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
status | サーバーから返された HTTP ステータスコードです。 |
target | HTTP ステータスコードを受け取るネットワークオブジェクトです。 |
関連項目
| ioError | イベント |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
URLLoader.load() の呼び出しによってダウンロードが終了するという致命的なエラーが発生する場合に送出されます。
type プロパティ (ioError イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 入出力エラーが発生したネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
関連項目
| open | イベント |
flash.events.Event
flash.events.Event.OPEN
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
URLLoader.load() メソッドの呼び出しによりダウンロード処理が開始されると送出されます。
type プロパティ (open イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 接続をオープンしたネットワークオブジェクトです。 |
関連項目
| progress | イベント |
flash.events.ProgressEvent
flash.events.ProgressEvent.PROGRESS
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ダウンロード処理を実行中にデータを受信したときに送出されます。
URLLoader オブジェクトでは、完全にデータが受信されるまではデータにアクセスできません。このため、progress イベントの通知でしかダウンロードの進行状況を確認できません。完全にダウンロードされる前にデータにアクセスするには、URLStream オブジェクトを使用します。
type プロパティ (progress イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
bytesLoaded | リスナーがイベントを処理しているときにロードされたアイテム数またはバイト数です。 |
bytesTotal | ロードプロセスが成功した場合に最終的にロードされるアイテムまたはバイトの総数です。 |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 進行状況をレポートするネットワークオブジェクトです。 |
関連項目
| securityError | イベント |
flash.events.SecurityErrorEvent
flash.events.SecurityErrorEvent.SECURITY_ERROR
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
URLLoader.load() の呼び出しによってセキュリティサンドボックスの外部にあるサーバーからデータをロードしようとすると送出されます。
SecurityErrorEvent.SECURITY_ERROR 定数は、type プロパティ (securityError イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | セキュリティエラーを報告するネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
関連項目
メモ :この例を実行するには、urlLoaderExample.txt ファイルを SWF ファイルと同じディレクトリに配置します。このファイルには、次のテキスト行のみが含まれています。answer=42&question=unknown
コード例では、次の処理が実行されます。
loader という URLLoader インスタンスと、ロードされるファイルの場所と名前を含む request という URLRequest インスタンスを作成します。loader オブジェクトが configureListeners() メソッドに渡されます。このメソッドは、サポートされる各 URLLoader イベントのリスナーを追加します。request オブジェクトが、テキストファイルをロードする loader.load() に渡されます。Event.COMPLETE event イベントが発生し、completeHandler() メソッドがトリガされます。completeHandler() メソッドはファイルからロードされたテキストから URLVariables オブジェクトを作成します。URLVariables オブジェクトは、URL エンコードされた名前と値のペアを ActionScript プロパティに変換し、ロードされたデータを操作しやすくします。
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.*;
public class URLLoaderExample extends Sprite {
public function URLLoaderExample() {
var loader:URLLoader = new URLLoader();
configureListeners(loader);
var request:URLRequest = new URLRequest("urlLoaderExample.txt");
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("completeHandler: " + loader.data);
var vars:URLVariables = new URLVariables(loader.data);
trace("The answer is " + vars.answer);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
}
}
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/net/URLLoader.html