パッケージflash.net
public class URLLoader
継承URLLoader Inheritance EventDispatcher Inheritance Object

URLLoader クラスは、指定した URL からテキスト、バイナリデータ、または URL エンコード形式の変数をダウンロードする際に使用します。動的なデータ駆動アプリケーションで使用するテキストファイル、XML、その他の情報をダウンロードする場合に便利です。

URLLoader オブジェクトは、データを ActionScript で使用できるようにする前に、それらのすべてのデータを URL からダウンロードします。URLLoader オブジェクトは、ダウンロードの進捗に関する通知を送信します。これらは、送出済みのイベント、さらには bytesLoaded および bytesTotal プロパティで監視できます。

url パラメータに渡す値は、デフォルトでは、同じドメインに置かれている必要があります。たとえば www.adobe.com に置かれている SWF ファイルは、www.adobe.com に置かれているソースからのみデータをロードできます。異なるドメインからデータをロードする場合は、SWF ファイルをホストするサーバーにクロスドメインポリシーファイルを置いておく必要があります。

このメソッドを使用するときは、Adobe® Flash® Player セキュリティモデルを考慮してください。

Flash Player 8 以降 :

Flash Player 7 以降 :

詳細については、次のトピックを参照してください。

Flash Player 7 より前のバージョンの Player で SWF ファイルを実行している場合、url は、呼び出し元の SWF ファイルと同じスーパードメインに属している必要があります。スーパードメインは、ファイルの URL の左端の要素を削除することで求められます。たとえば、www.adobe.com に存在する SWF ファイルは、store.adobe.com に存在するソースからデータをロードできます。これは、どちらのファイルも同じスーパードメイン adobe.com に属しているためです。

例の表示

関連項目

URLRequest
URLVariables
URLStream
外部 XML ドキュメントの読み込み
外部データの操作


パブリックプロパティ
 プロパティ定義
  bytesLoaded : uint = 0
ロード操作中に、既にロード済みのデータのバイト数を示します。
URLLoader
  bytesTotal : uint = 0
ダウンロードデータの合計バイト数を示します。
URLLoader
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  data : *
ロード操作によって受信したデータです。
URLLoader
  dataFormat : String = "text"
ダウンロードしたデータがテキスト (URLLoaderDataFormat.TEXT)、生のバイナリデータ (URLLoaderDataFormat.BINARY)、または URL エンコードされた変数 (URLLoaderDataFormat.VARIABLES) のいずれであるかを制御します。
URLLoader
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義
  URLLoader(request:URLRequest = null)
URLLoader オブジェクトを作成します。
URLLoader
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  close():void
進行中のロード操作は直ちに終了します。
URLLoader
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  load(request:URLRequest):void
指定された URL からデータを送信およびロードします。
URLLoader
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント一覧定義
  complete 受信したすべてのデータがデコードされ、URLLoader オブジェクトの data プロパティに配置された後に送出されます。URLLoader
  httpStatus URLLoader.load() を呼び出して HTTP を介してデータにアクセスを試み、現在の Flash Player 環境で要求のステータスコードを検出して返すことができる場合に送出されますURLLoader
  ioError URLLoader.load() の呼び出しによってダウンロードが終了するという致命的なエラーが発生する場合に送出されます。URLLoader
  open URLLoader.load() メソッドの呼び出しによりダウンロード処理が開始されると送出されます。URLLoader
  progress ダウンロード処理を実行中にデータを受信したときに送出されます。URLLoader
  securityError URLLoader.load() の呼び出しによってセキュリティサンドボックスの外部にあるサーバーからデータをロードしようとすると送出されます。URLLoader
プロパティの詳細
bytesLoadedプロパティ
public var bytesLoaded:uint = 0

ロード操作中に、既にロード済みのデータのバイト数を示します。

bytesTotalプロパティ 
public var bytesTotal:uint = 0

ダウンロードデータの合計バイト数を示します。このプロパティは、ロード操作の進行中は 0 を格納し、操作が完了した時点で設定されます。

dataプロパティ 
public var data:*

ロード操作によって受信したデータです。このプロパティは、ロード操作が完了したときにのみ設定されます。データの形式は、dataFormat プロパティの設定によって決まります。

dataFormat プロパティが URLLoaderDataFormat.TEXT の場合、受け取るデータは、ロードされたファイルのテキストを含むストリングです。

dataFormat プロパティが URLLoaderDataFormat.BINARY の場合、受け取るデータは、生のバイナリデータを含む ByteArray オブジェクトです。

dataFormat プロパティが URLLoaderDataFormat.VARIABLES の場合、受け取るデータは、URL エンコードされた変数を含む URLVariables オブジェクトです。

関連項目

dataFormatプロパティ 
public var dataFormat:String = "text"

ダウンロードしたデータがテキスト (URLLoaderDataFormat.TEXT)、生のバイナリデータ (URLLoaderDataFormat.BINARY)、または URL エンコードされた変数 (URLLoaderDataFormat.VARIABLES) のいずれであるかを制御します。

dataFormat プロパティの値が URLLoaderDataFormat.TEXT の場合、受け取るデータは、ロードされたファイルのテキストを含むストリングです。

dataFormat プロパティの値が URLLoaderDataFormat.BINARY の場合、受け取るデータは、生のバイナリデータを含む ByteArray オブジェクトです。

dataFormat プロパティの値が URLLoaderDataFormat.VARIABLES の場合、受け取るデータは、URL エンコードされた変数を含む URLVariables オブジェクトです。

デフォルト値URLLoaderDataFormat.TEXT.

関連項目

コンストラクタの詳細
URLLoader()コンストラクタ
public 関数 URLLoader(request:URLRequest = null)

URLLoader オブジェクトを作成します。

パラメータ
request:URLRequest (default = null) — ダウンロードする URL を指定する URLRequest オブジェクトです。このパラメータを省略すると、ロード操作は開始されません。指定すると、直ちにロード操作が開始されます。詳細については、load を参照してください。

関連項目

メソッドの詳細
close()メソッド
public function close():void

進行中のロード操作は直ちに終了します。進行中のロード操作は直ちに終了します。URL が現在ストリーミングされていない場合、無効なストリームエラーがスローされます。

load()メソッド 
public function load(request:URLRequest):void

指定された URL からデータを送信およびロードします。dataFormat プロパティに設定した値に基づき、テキスト、生のバイナリデータ、または URL エンコードされた変数としてデータを受け取ることができます。dataFormat プロパティのデフォルト値はテキストです。データを指定された URL に送信する場合は、URLRequest オブジェクトの data プロパティを設定できます。

メモ:ロード中のファイルに ASCII 文字以外の文字 (英語以外の多くの言語に存在する) が含まれている場合は、ASCII のような非 Unicode 形式ではなく UTF-8 または UTF-16 エンコーディング形式でファイルを保存することをお勧めします。

デフォルトで、ロードする URL は呼び出し元の SWF ファイルと同じドメインに置かれている必要があります。たとえば www.adobe.com に置かれている SWF ファイルは、www.adobe.com に置かれているソースからのみデータをロードできます。異なるドメインからデータをロードする場合は、SWF ファイルのホストとして動作するサーバーにクロスドメインポリシーファイルを置いておく必要があります。

このメソッドを使用するときは、Flash Player セキュリティモデルを考慮してください。

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:Event — データが正常にロードされた後に送出されます。
 
httpStatus:HTTPStatusEvent — アクセスが HTTP 経由で、現在の Flash Player 環境がステータスコードの取得をサポートしている場合、complete イベントまたは error イベントに加えて、これらのイベントを受け取る場合があります。
 
ioError:IOErrorEvent — ロード操作を完了できませんでした。
 
progress:ProgressEvent — ダウンロード処理を実行中にデータを受信したときに送出されます。
 
securityError:SecurityErrorEvent — 呼び出し元のセキュリティ Sandbox の外部にあるサーバーからデータを取得しようとするロード操作。これはサーバー上のポリシーファイルを使用すると回避できます。
 
open:Event — ロード操作が開始したときに送出されます。

スロー
ArgumentError URLRequest.requestHeader オブジェクトには、禁止されている特定の HTTP 要求のヘッダを含めることはできません。詳細については、URLRequestHeader クラスの説明を参照してください。
 
MemoryError — このエラーは、次の理由で発生する可能性があります。1) Flash Player では URLRequest.data パラメータを UTF8 から MBCS に変換できません。このエラーは、load() に渡された URLRequest オブジェクトが GET 操作を行うように設定された場合、および System.useCodePagetrue に設定された場合に発生することがあります。2) Flash Player では POST データにメモリを割り当てることができません。このエラーは、load に渡された URLRequest オブジェクトが POST 操作を行うように設定された場合に発生することがあります。
 
SecurityError — 信頼されていないローカル SWF はインターネットへの接続を許可されません。これは、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類すると回避できる場合があります。
 
TypeError — 要求パラメータの値、または渡された URLRequest オブジェクトの URLRequest.url プロパティの値は null です。

関連項目

イベントの詳細
completeevent 
イベントオブジェクトの型: flash.events.Event
Event.type property = flash.events.Event.COMPLETE

受信したすべてのデータがデコードされ、URLLoader オブジェクトの data プロパティに配置された後に送出されます。このイベントが送出されると、受信したデータにアクセスできます。

complete イベントオブジェクトの type プロパティの値を定義します。

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

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetロードが完了したネットワークオブジェクトです。target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。

関連項目

httpStatusevent  
イベントオブジェクトの型: flash.events.HTTPStatusEvent
HTTPStatusEvent.type property = flash.events.HTTPStatusEvent.HTTP_STATUS

URLLoader.load() を呼び出して HTTP を介してデータにアクセスを試み、現在の Flash Player 環境で要求のステータスコードを検出して返すことができる場合に送出されます(一部のブラウザ環境ではこの情報を提供できません)。httpStatus イベントがある場合は、complete イベントまたは error イベントの前に、これらのイベントに加えて送信されます。

httpStatus イベントオブジェクトの type プロパティの値を定義します。

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

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
statusサーバーから返された HTTP ステータスコードです。
targetHTTP ステータスコードを受け取るネットワークオブジェクトです。

関連項目

ioErrorevent  
イベントオブジェクトの型: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

URLLoader.load() の呼び出しによってダウンロードが終了するという致命的なエラーが発生する場合に送出されます。

ioError イベントオブジェクトの type プロパティの値を定義します。

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

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target入出力エラーが発生したネットワークオブジェクトです。
textエラーメッセージとして表示されるテキストです。

関連項目

openevent  
イベントオブジェクトの型: flash.events.Event
Event.type property = flash.events.Event.OPEN

URLLoader.load() メソッドの呼び出しによりダウンロード処理が開始されると送出されます。

open イベントオブジェクトの type プロパティの値を定義します。

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

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

関連項目

progressevent  
イベントオブジェクトの型: flash.events.ProgressEvent
ProgressEvent.type property = flash.events.ProgressEvent.PROGRESS

ダウンロード処理を実行中にデータを受信したときに送出されます。

URLLoader オブジェクトでは、完全にデータが受信されるまではデータにアクセスできません。このため、progress イベントの通知でしかダウンロードの進行状況を確認できません。完全にダウンロードされる前にデータにアクセスするには、URLStream オブジェクトを使用します。

progress イベントオブジェクトの type プロパティの値を定義します。

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

プロパティ
bubblesfalse
bytesLoadedリスナーがイベントを処理しているときにロードされたアイテム数またはバイト数です。
bytesTotalロードプロセスが成功した場合に最終的にロードされるアイテムまたはバイトの総数です。
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target進行状況をレポートするネットワークオブジェクトです。

関連項目

securityErrorevent  
イベントオブジェクトの型: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

URLLoader.load() の呼び出しによってセキュリティサンドボックスの外部にあるサーバーからデータをロードしようとすると送出されます。

SecurityErrorEvent.SECURITY_ERROR 定数は、securityError イベントオブジェクトの type プロパティ値を定義します。

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

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetセキュリティエラーを報告するネットワークオブジェクトです。
textエラーメッセージとして表示されるテキストです。

関連項目


次の例では、 ローカルテキストファイルで検出されたデータをロードして表示します。また、イベント処理情報も出力します。

メモ: この例を実行するには、urlLoaderExample.txt という名前のファイルを SWF ファイルと同じディレクトリに配置します。このファイルには、次のテキスト行のみが含まれています。

answer=42&question=unknown

コード例では、次の処理が実行されます。

  1. コンストラクタ関数は loader という URLLoader インスタンスと request という URLRequest インスタンスを作成します。これはロードされるファイルの場所と名前です。
  2. loader オブジェクトが configureListeners() メソッドに渡され、 サポートされる各 URLLoader イベントにリスナーを追加します。
  3. 次に request オブジェクトが、テキストファイルをロードする loader.load() に渡されます。
  4. URLLoader によるテキストファイルのロードが終了すると、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);
        }
    }
}