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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

このメソッドを使用するときは、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
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  
進行中のロード操作は直ちに終了します。
URLLoader
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  
load(request:URLRequest):void
指定された URL からデータを送信およびロードします。
URLLoader
 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 がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
   受信したすべてのデータがデコードされて URLLoader オブジェクトの data プロパティへの格納が完了したときに送出されます。URLLoader
 Inherited 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: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 です。

関連項目




次の例は、XML ファイルをロードし、そのエレメントの最初の引数の内容をテキストフィールドに表示します。

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
Event.type property = flash.events.Event.COMPLETE

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

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

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

関連項目

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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

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

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

関連項目

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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

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

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

関連項目

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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

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

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

関連項目

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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

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

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

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

関連項目

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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

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

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

関連項目

例の使用法
URLLoaderExample.as

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

メモ :この例を実行するには、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);
        }
    }
}




 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/net/URLLoader.html