パッケージflash.net
public class URLStream
継承URLStream Inheritance EventDispatcher Inheritance Object
実装IDataInput

URLStream クラスはダウンロード用 URL への低レベルのアクセスを提供します。データはダウンロードされるとすぐに ActionScript で使用できるようになります。URLLoader の場合のように、ファイル全体がダウンロードされるまで待つ必要はありません。URLStream クラスでは、ダウンロードの完了前にストリームを閉じることもできます。ダウンロードされたファイルの内容は、生のバイナリデータとして利用できます。

URLStream の読み取り操作で、ブロッキングは発生しません。つまり、読み取るデータが十分にあるかどうかを読み取り前に確認するために、bytesAvailable プロパティを使用する必要があります。データが十分にない場合は、EOFError 例外がスローされます。

すべてのバイナリデータは、ビッグエンディアン形式がデフォルトのエンコーディングです。ビッグエンディアンでは、最上位バイトが最初になります。

URLStream クラスでダウンロードしている URL に適用されるセキュリティルールは、URLLoader オブジェクトに適用されるルールと同一です。ポリシーファイルは、必要に応じてダウンロードされます。ローカルファイルのセキュリティルールが適用され、必要に応じてセキュリティ警告が発生します。

例の表示

関連項目

URLLoader
URLRequest


パブリックプロパティ
 プロパティ定義
  bytesAvailable : uint
[read-only] 入力バッファで読み取ることができるデータのバイト数を返します。
URLStream
  connected : Boolean
[read-only] この URLStream オブジェクトが現在、接続されているかどうかを示します。
URLStream
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  endian : String
データのバイト順序を示します。指定できる値は BIG_ENDIAN または LITTLE_ENDIAN です。
URLStream
  objectEncoding : uint
オブジェクトの書き込みまたは読み取り時に使用される Action Message Format (AMF) のバージョンを制御します。
URLStream
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  close():void
すぐにストリームを閉じ、ダウンロード処理をキャンセルします。
URLStream
 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
request パラメータで指定された URL でのダウンロードを開始します。
URLStream
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
  readBoolean():Boolean
ストリームからブール値を読み取ります。
URLStream
  readByte():int
ストリームから符号付きバイトを読み取ります。
URLStream
  readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
ストリームから length バイトのデータを読み取ります。
URLStream
  readDouble():Number
ストリームから IEEE 754 倍精度浮動小数点数を読み取ります。
URLStream
  readFloat():Number
バイトストリームから IEEE 754 単精度浮動小数点数を読み取ります。
URLStream
  readInt():int
ストリームから符号付き 32 ビット整数を読み取ります。
URLStream
  readMultiByte(length:uint, charSet:String):String
指定した文字セットを使用して、バイトストリームから指定した長さのマルチバイトストリングを読み取ります。
URLStream
  readObject():*
ソケットから Action Message Format (AMF) 形式でエンコードされたオブジェクトを読み取ります。
URLStream
  readShort():int
ストリームから符号付き 16 ビット整数を読み取ります。
URLStream
  readUnsignedByte():uint
ストリームから符号なしバイトを読み取ります。
URLStream
  readUnsignedInt():uint
ストリームから符号なし 32 ビット整数を読み取ります。
URLStream
  readUnsignedShort():uint
ストリームから符号なし 16 ビット整数を読み取ります。
URLStream
  readUTF():String
ストリームから UTF-8 ストリングを読み取ります。
URLStream
  readUTFBytes(length:uint):String
ストリームから length の UTF-8 バイトを読み取り、ストリングを返します。
URLStream
 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 データが正常にロードされたときに送出されます。URLStream
  httpStatus URLStream.load() を呼び出して HTTP を介してデータにアクセスを試み、現在の Flash Player で要求のステータスコードを検出して返すことができる場合に送出されます。URLStream
  ioError 入出力エラーが発生してロード操作が失敗したときに送出されます。URLStream
  open ロード操作が開始したときに送出されます。URLStream
  progress ダウンロード処理を実行中にデータを受信したときに送出されます。URLStream
  securityError URLStream.load() の呼び出しによってセキュリティサンドボックスの外部にあるサーバーからデータをロードしようとすると送出されます。URLStream
プロパティの詳細
bytesAvailableプロパティ
bytesAvailable:uint  [read-only]

入力バッファで読み取ることができるデータのバイト数を返します。read メソッドを使用する前に、コードで bytesAvailable プロパティを呼び出して、読み取るデータが十分にあることを確認します。

実装
    public function get bytesAvailable():uint
connectedプロパティ 
connected:Boolean  [read-only]

この URLStream オブジェクトが現在、接続されているかどうかを示します。このプロパティの呼び出しによって、URLStream オブジェクトが接続されている場合は true の値を、それ以外の場合は false の値を返します。

実装
    public function get connected():Boolean
endianプロパティ 
endian:String  [read-write]

データのバイト順序を示します。指定できる値は BIG_ENDIAN または LITTLE_ENDIAN です。

デフォルト値Endian.BIG_ENDIAN.

実装
    public function get endian():String
    public function set endian(value:String):void

関連項目

objectEncodingプロパティ 
objectEncoding:uint  [read-write]

オブジェクトの書き込みまたは読み取り時に使用される Action Message Format (AMF) のバージョンを制御します。

実装
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

関連項目

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

すぐにストリームを閉じ、ダウンロード処理をキャンセルします。close() メソッドの呼び出し後は、ストリームからデータを読み込みません。


スロー
IOError — ストリームを閉じることができないか、またはストリームが開いていません。
load()メソッド 
public function load(request:URLRequest):void

request パラメータで指定された URL でのダウンロードを開始します。

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

ロード処理がすぐに失敗すると、エラーについて説明する IOError または SecurityError (ローカルファイルのセキュリティエラーを含む) 例外がスローされます。その他に、URL ダウンロードでダウンロードが正常に開始した場合は open イベントが送出され、エラーが発生した場合はエラーイベントが送出されます。

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

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

パラメータ
request:URLRequest — ダウンロードする URL を指定する URLRequest オブジェクトです。このパラメータの値または URLRequest オブジェクトの URLRequest.url プロパティが null の場合、Flash Player はポインタエラーをスローします。

イベント
complete:Event — データが正常にロードされた後に送出されます。
 
httpStatus:HTTPStatusEvent — HTTP によるアクセスで、かつ現在の Flash Player 環境でステータスコードの取得をサポートしている場合は、complete または error イベントだけでなく、これらのイベントを受け取ることがあります。
 
ioError:IOErrorEvent — ロード操作を完了できませんでした。
 
open:Event — ロード操作が開始したときに送出されます。
 
securityError:SecurityErrorEvent — 呼び出し元のセキュリティ Sandbox の外部にあるサーバーからデータを取得しようとするロード操作。これはサーバー上のポリシーファイルを使用すると回避できます。

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

ストリームからブール値を読み取ります。1 バイトが読み取られ、バイトがゼロ以外の場合は true、それ以外の場合は false が返されます。

戻り値
Boolean

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readByte()メソッド 
public function readByte():int

ストリームから符号付きバイトを読み取ります。

返される値は -128 ~ 127 の範囲です。

戻り値
int

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readBytes()メソッド 
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

ストリームから length バイトのデータを読み取ります。このバイトは、bytes で指定した ByteArray オブジェクトに読み込まれ、offset バイトから開始して ByteArray オブジェクトまでとなります。

パラメータ
bytes:ByteArray — データの読み込み先の ByteArray オブジェクトです。
 
offset:uint (default = 0) — データの読み取りが開始する bytes へのオフセットです。デフォルト値は 0 です。
 
length:uint (default = 0) — 読み取るバイト数です。デフォルト値の 0 に設定すると、すべてのデータが読み取られます。

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readDouble()メソッド 
public function readDouble():Number

ストリームから IEEE 754 倍精度浮動小数点数を読み取ります。

戻り値
Number

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readFloat()メソッド 
public function readFloat():Number

バイトストリームから IEEE 754 単精度浮動小数点数を読み取ります。

戻り値
Number

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readInt()メソッド 
public function readInt():int

ストリームから符号付き 32 ビット整数を読み取ります。

返される値は -2147483648 ~ 2147483647 の範囲です。

戻り値
int

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readMultiByte()メソッド 
public function readMultiByte(length:uint, charSet:String):String

指定した文字セットを使用して、バイトストリームから指定した長さのマルチバイトストリングを読み取ります。

パラメータ
length:uint — バイトストリームから読み取るバイト数です。
 
charSet:String — バイトの解釈に使用する文字セットを表すストリングです。文字セットのストリングには、"shift_jis""CN-GB"、および "iso-8859-1" などがあります。完全な一覧については、「サポートする文字セット」を参照してください。

戻り値
String — UTF-8 エンコードされたストリングです。

スロー
EOFError — 読み取り可能なデータが十分ではありません。
readObject()メソッド 
public function readObject():*

ソケットから Action Message Format (AMF) 形式でエンコードされたオブジェクトを読み取ります。

戻り値
* — 非直列化されたオブジェクトです。

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。

関連項目

readShort()メソッド 
public function readShort():int

ストリームから符号付き 16 ビット整数を読み取ります。

返される値は -32768 ~ 32767 の範囲です。

戻り値
int

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readUnsignedByte()メソッド 
public function readUnsignedByte():uint

ストリームから符号なしバイトを読み取ります。

返される値は 0 ~ 255 の範囲です。

戻り値
uint

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readUnsignedInt()メソッド 
public function readUnsignedInt():uint

ストリームから符号なし 32 ビット整数を読み取ります。

返される値は 0 ~ 4294967295 の範囲です。

戻り値
uint

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readUnsignedShort()メソッド 
public function readUnsignedShort():uint

ストリームから符号なし 16 ビット整数を読み取ります。

返される値は 0 ~ 65535 の範囲です。

戻り値
uint

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readUTF()メソッド 
public function readUTF():String

ストリームから UTF-8 ストリングを読み取ります。このストリングには、バイト単位で長さを示す符号なし short が接頭辞として付くことが前提となっています。

戻り値
String

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
readUTFBytes()メソッド 
public function readUTFBytes(length:uint):String

ストリームから length の UTF-8 バイトを読み取り、ストリングを返します。

パラメータ
length:uint — UTF-8 バイトのシーケンスです。

戻り値
String

スロー
EOFError — 読み取り可能なデータが十分ではありません。ローカル SWF ファイルがセキュリティ警告をトリガする場合、Flash Player は URLStream データが ActionScript で利用されるのを阻止します。その場合、データが受信され、読み取りメソッドのいずれかが EOFError 例外をスローした場合でも、bytesAvailable プロパティは 0 を返します。
 
IOError — ストリームで I/O エラーが発生したか、ストリームが開いていません。
イベントの詳細
completeevent 
イベントオブジェクトの型: flash.events.Event
Event.type property = flash.events.Event.COMPLETE

データが正常にロードされたときに送出されます。

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

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

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

URLStream.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

入出力エラーが発生してロード操作が失敗したときに送出されます。

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

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

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

関連項目

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

ロード操作が開始したときに送出されます。

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

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

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

関連項目

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

ダウンロード処理を実行中にデータを受信したときに送出されます。受け取ったデータは、URLStream クラスのメソッドを使用してすぐに読み取ることができます。

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

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

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

関連項目

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

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

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

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

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

関連項目


次の例では、SWF ファイルをロードして、そのヘッダの先頭を解析し、 圧縮とバージョン番号の情報を示します。

例を実行するために、URLStreamExample.swf という名前のファイルを SWF ファイルと同じディレクトリに配置してください。


package {
    import flash.display.Sprite;
    import flash.errors.*;
    import flash.events.*;
    import flash.net.URLRequest;
    import flash.net.URLStream;

    public class URLStreamExample extends Sprite {
        private static const ZLIB_CODE:String = "CWS";
        private var stream:URLStream;

        public function URLStreamExample() {
            stream = new URLStream();
            var request:URLRequest = new URLRequest("URLStreamExample.swf");
            configureListeners(stream);
            try {
                stream.load(request);
            } catch (error:Error) {
                trace("Unable to load requested URL.");
            }
        }

        private function configureListeners(dispatcher:EventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        }

        private function parseHeader():void {
            trace("parseHeader");
            trace("isCompressed: " + isCompressed());
            trace("version: " + stream.readByte());
        }

        private function isCompressed():Boolean {
            return (stream.readUTFBytes(3) == ZLIB_CODE);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
            parseHeader();
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:Event):void {
            trace("progressHandler: " + event);
        }

        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);
        }
    }
}