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

NetConnection クラスでは、Adobe の Macromedia Flash Media Server 2 や Adobe Flex などのリモートアプリケーションサーバーでコマンドを起動し、HTTP アドレスまたはローカルドライブのいずれかからストリーミング Flash Video (FLV) ファイルを再生できます。通常、NetConnection オブジェクトは NetStream オブジェクトとともに使用します。

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

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

NetStream クラス内のプロパティとメソッドの中には、主に Flash Media Server や Flex などのサーバーで使用することを目的としたものがあります。これらのプロパティとメソッドには、サーバーサイド機能を追加できます。詳細については、 Flash Media Server マニュアルの「NetStream class」を参照してください。

メモ :このクラスは、ActionScript 2.0 ではダイナミッククラスでしたが、sealed クラスになりました。このクラスのコールバックメソッドを記述するには、クラスを拡張してサブクラスでコールバックメソッドを定義する方法と、client プロパティを使用してオブジェクトを参照し、そのオブジェクトでコールバックメソッドを定義する方法があります。

例の表示

関連項目

client
NetStream


パブリックプロパティ
 プロパティ定義
  client : Object
コールバックメソッドが呼び出されるオブジェクトを示します。
NetConnection
  connected : Boolean
[read-only] 永続的な RTMP 接続を介して (true)、またはそれ以外の方法で (false) サーバーに接続したことを示します。
NetConnection
  connectedProxyType : String
[read-only] 正常に接続が確立すると、直接接続、CONNECT メソッド、または HTTP トンネリングなど、接続の確立に使用されたメソッドが示されます。
NetConnection
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  defaultObjectEncoding : uint
[static] SWF ファイルで作成された NetConnection オブジェクトのデフォルトオブジェクトのエンコード (AMF バージョン) です。
NetConnection
  objectEncoding : uint
この NetConnection インスタンスのオブジェクトのエンコード (AMF バージョン) です。
NetConnection
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  proxyType : String
ネイティブ SSL が HTTPS ではなく RTMPS に使用されるかどうか、トンネリングの CONNECT メソッドがプロキシサーバーを介して接続するために使用されるかどうかを調べます。
NetConnection
  uri : String
[read-only] connect がサーバーへの接続に使用された場合、NetConnection.connect() に渡されたアプリケーションサーバーの URIです。
NetConnection
  usingTLS : Boolean
[read-only] HTTPS ではなく、ネイティブ TLS を使用してセキュア接続が確立されたかどうかを示します。
NetConnection
パブリックメソッド
 メソッド定義
  NetConnection()
リモートアプリケーションサーバーでコマンドを起動したり、ローカルで、またはサーバーからストリーミングビデオファイル (FLV) を再生するために、NetStream オブジェクトと組み合わせて使用することが可能な NetConnection オブジェクトを生成します。
NetConnection
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  addHeader(operation:String, mustUnderstand:Boolean = false, param:Object = null):void
コンテキストヘッダを AMF パケット構造に追加します。
NetConnection
  call(command:String, responder:Responder, ... arguments):void
アプリケーションインスタンスに接続する Flash Media Server を実行しているサーバーまたはアプリケーションサーバーで、コマンドまたはメソッドを起動します。
NetConnection
  close():void
ローカルまたはサーバーで開始した接続を閉じ、NetConnection.Connect.Closecode プロパティで、netStatus イベントを送出します。
NetConnection
  connect(command:String, ... arguments):void
サーバーへの接続を開きます。
NetConnection
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 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
イベント
 イベント一覧定義
  asyncError 非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。NetConnection
  ioError 入出力エラーが発生してネットワーク処理が失敗したときに送出されます。NetConnection
  netStatus NetConnection オブジェクトが、そのステータスまたはエラーの状況をレポートするときに送出されます。NetConnection
  securityError NetConnection.call() の呼び出しによって呼び出し元のセキュリティサンドボックスの外部にあるサーバーに接続しようとすると送出されます。NetConnection
プロパティの詳細
clientプロパティ
client:Object  [read-write]

コールバックメソッドが呼び出されるオブジェクトを示します。デフォルト値はこの NetConnection インスタンスです。client プロパティを別のオブジェクトに設定する場合は、コールバックメソッドをその別のオブジェクトで呼び出すことができます。

実装
    public function get client():Object
    public function set client(value:Object):void

Throws
TypeError client プロパティは、null 以外のオブジェクトに設定する必要があります。
connectedプロパティ 
connected:Boolean  [read-only]

永続的な RTMP 接続を介して (true)、またはそれ以外の方法で (false) サーバーに接続したことを示します。HTTP 経由で接続している場合は、このプロパティは常に false になります。アプリケーションサーバーへの AMF 接続の場合は、常に true です。

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

正常に接続が確立すると、直接接続、CONNECT メソッド、または HTTP トンネリングなど、接続の確立に使用されたメソッドが示されます。有効な値は、"none"、"HTTP"、"HTTPS"、および "CONNECT" です。このプロパティは、NetConnection オブジェクトが接続されている場合にのみ有効です。このプロパティは、Flex アプリケーションおよび Flash Media Server アプリケーションで使用されます。Flash Player 9 では、このプロパティは RTMP、RTMPS、または RTMPTを使用している場合にのみ適用できます。CONNECT メソッドは、プロキシサーバー経由でネットワークに接続しているユーザーにのみ適用できます。

このプロパティを読み込んで、使用された接続方法を調べることができます。このプロパティは、直接接続が行われると "none"、HTTP トンネリングが使用されると "HTTP"、セキュリティ保護のある HTTPS トンネリングが使用されると "HTTPS"、プロキシの CONNECT メソッドが使用されると "CONNECT" を返します。

実装
    public function get connectedProxyType():String

Throws
ArgumentError — NetConnection インスタンスが接続されていないときに、このプロパティにアクセスしようとしました。
defaultObjectEncodingプロパティ 
defaultObjectEncoding:uint  [read-write]

SWF ファイルで作成された NetConnection オブジェクトのデフォルトオブジェクトのエンコード (AMF バージョン) です。バイナリデータからオブジェクトを書き込みまたは読み取りをすると、defaultObjectEncoding プロパティは、使用する必要のある Action Message Format バージョンを示します。ActionScript 3.0 フォーマット、または ActionScript 1.0 および ActionScript 2.0 フォーマットです。

デフォルトでは、NetConnection.defaultObjectEncoding は ActionScript 3.0 フォーマット、AMF3 を使用するように設定されます。NetConnection.defaultObjectEncoding を変更しても、既存の NetConnection インスタンスには影響せず、それ以降に作成されたインスタンスにのみ影響します。

オブジェクトエンコードを SWF ファイル全体で設定せず個別に設定するには、NetConnection オブジェクトの objectEncoding プロパティを設定します。

詳細については、objectEncoding プロパティの説明を参照してください。

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

関連項目

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

この NetConnection インスタンスのオブジェクトのエンコード (AMF バージョン) です。このプロパティのデフォルト値は、defaultObjectEncoding の値です。指定できる値は、ObjectEncoding.AMF3 および ObjectEncoding.AMF0 です。

ActionScript 3.0 SWF ファイルで Flash Player 9 以前にリリースされたサーバーと通信する必要がある場合は、このプロパティを理解することが重要です。

バイナリデータからオブジェクトを書き込みまたは読み取りをすると、objectEncoding プロパティは、使用する必要のある Action Message Format バージョンを示します。ActionScript 3.0 フォーマット (ObjectEncoding.AMF3) または ActionScript 1.0 および ActionScript 2.0 フォーマット (ObjectEncoding.AMF0) です。NetConnection オブジェクトを使用してサーバーに接続するときは、3 つの場合が考えられます。

defaultObjectEncoding を変更しても、既存の NetConnection インスタンスには影響せず、それ以降に作成されたインスタンスにのみ影響します。

NetConnection インスタンスが接続されたら、その objectEncoding プロパティは読み取り専用になります。

サーバーへの接続に誤ったエンコーディングを使用した場合、Flash Player により netStatus イベントが送出されます。NetStatusEvent.info プロパティには、code プロパティの値 NetConnection.Connect.Failed を持つ情報オブジェクトとオブジェクトエンコードが正しくないことを示す説明が含まれています。

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

Throws
ReferenceError — NetConnection インスタンスが接続されているときに、objectEncoding プロパティの値を設定しようとしました。
 
ArgumentError — このプロパティに、ObjectEncoding.AMF0 または ObjectEncoding.AMF3 以外の値が設定されました。

関連項目

proxyTypeプロパティ 
proxyType:String  [read-write]

ネイティブ SSL が HTTPS ではなく RTMPS に使用されるかどうか、トンネリングの CONNECT メソッドがプロキシサーバーを介して接続するために使用されるかどうかを調べます。指定できる値は、"none"、"HTTP"、"CONNECT"、および "best" です。このプロパティは、Flex アプリケーションおよび Flash Media Server 2 アプリケーションで使用されます。

Flash Player 9 では、このプロパティは RTMP、RTMPS、または RTMPTを使用している場合にのみ適用できます。CONNECT メソッドは、プロキシサーバー経由でネットワークに接続しているユーザーにのみ適用できます。

proxyType プロパティは、最初の接続の試行が失敗したときに試行されるフォールバックメソッドを指定します。NetConnection.connect() メソッドを呼び出す前に、proxyType プロパティを設定する必要があります。このプロパティは、接続試行時に、ネイティブ TLS (Transport Layer Security) を使用するかどうか、および、アプリケーションで認識されるプロキシサーバーの操作方法を決定します。

Flash Player 9 では、このプロパティのデフォルト値は "none" です。この値を変更しない場合、Flash Player は RTMPS に HTTPS トンネリングを使用します。プロパティが "best" に設定されている場合は、接続に最適な方法が確立され、この最適な方法がまず試行されます。失敗した場合は別のメソッドにフォールバックされます。RTMPS 接続では、デフォルトでネイティブ SSL ソケットが使用されます。別のメソッドへのフォールバックは、必要に応じて使用されます。プロパティが "HTTP" に設定されており、直接接続に失敗した場合は、HTTP トンネリングの古いメソッドが使用されます。プロパティが "CONNECT" に設定されており、直接接続に失敗した場合は、HTTP トンネリングの CONNECT メソッドが使用されます。これに失敗すると、接続は HTTP トンネリングにフォールバックされなくなります。

実装
    public function get proxyType():String
    public function set proxyType(value:String):void
uriプロパティ 
uri:String  [read-only]

connect がサーバーへの接続に使用された場合、NetConnection.connect() に渡されたアプリケーションサーバーの URIです。NetConnection.connect() がまだ呼び出されていない場合、または URI が渡されていない場合、このプロパティは undefined になります。

実装
    public function get uri():String
usingTLSプロパティ 
usingTLS:Boolean  [read-only]

HTTPS ではなく、ネイティブ TLS を使用してセキュア接続が確立されたかどうかを示します。このプロパティは、NetConnection オブジェクトが接続されている場合にのみ有効です。

実装
    public function get usingTLS():Boolean

Throws
ArgumentError — NetConnection インスタンスが接続されていないときに、このプロパティにアクセスしようとしました。
コンストラクタの詳細
NetConnection()コンストラクタ
public 関数 NetConnection()

リモートアプリケーションサーバーでコマンドを起動したり、ローカルで、またはサーバーからストリーミングビデオファイル (FLV) を再生するために、NetStream オブジェクトと組み合わせて使用することが可能な NetConnection オブジェクトを生成します。NetConnection オブジェクトを生成した後に、connect() を使用して実際の接続を確立します。

Flash ドキュメント内にビデオを埋め込むよりも、外部の FLV ファイルを再生した方が、パフォーマンスとメモリ管理の効率がよくなる、ビデオと Flash のフレームレートを独立化できるなどのメリットがあります。

ActionScript 3.0 SWF ファイルで Flash Player 9 以前にリリースされたサーバーと通信する必要がある場合、NetConnection オブジェクトの objectEncoding プロパティを調整する必要があることがあります。

関連項目

メソッドの詳細
addHeader()メソッド
public function addHeader(operation:String, mustUnderstand:Boolean = false, param:Object = null):void

コンテキストヘッダを AMF パケット構造に追加します。このヘッダは、将来のすべての AMF パケットとともに送信されます。同じ名前を使用して NetConnection.addHeader() を呼び出すと、既存のヘッダが新しいヘッダに置き換えられます。新しいヘッダは、NetConnection オブジェクトのある間存在し続けます。ヘッダの名前を使用して NetConnection.addHeader() を呼び出し、未定義のオブジェクトを削除して、ヘッダを削除できます。この方法は、Flex または Flash Media Server などのサーバーで使用している場合に有効です。

パラメータ
operation:String — ヘッダとヘッダに関連付けられている ActionScript オブジェクトデータを指定します。
 
mustUnderstand:Boolean (default = false)true 値は、サーバーがこのヘッダに対応しており、次のヘッダまたはメッセージを処理する前に、サーバーでヘッダを処理する必要があることを示します。
 
param:Object (default = null) — 任意の ActionScript オブジェクトです。
call()メソッド 
public function call(command:String, responder:Responder, ... arguments):void

アプリケーションインスタンスに接続する Flash Media Server を実行しているサーバーまたはアプリケーションサーバーで、コマンドまたはメソッドを起動します。このメソッドに渡すには、サーバーサイド関数を作成する必要があります。

パラメータ
command:String[objectPath/]method という形式で指定されたメソッドです。たとえば someObject/doSomething コマンドは、省略可能なすべての ... arguments パラメータとともに clientObject.someObject.doSomething() メソッドを呼び出すように、リモートサーバーに対して指定します。オブジェクトのパスが見つからない場合は、リモートサーバーで clientObject.doSomething() が呼び出されます。
 
responder:Responder — サーバーからの戻り値を処理するために使用される、省略可能なオブジェクトです。Responder オブジェクトには、返される結果を処理するためのメソッドが 2 つ定義されています。result および status です。結果としてエラーが返された場合は status が呼び出され、それ以外の場合は result が呼び出されます。
 
... arguments — 省略可能なパラメータです。別の ActionScript オブジェクトへの参照を含む、ActionScript の任意の型を取ることができます。メソッドがリモートアプリケーションサーバーで実行されると、これらのパラメータは command パラメータで指定されたメソッドに渡されます。

イベント
securityError:SecurityErrorEvent — 呼び出し元のセキュリティサンドボックスの外部にあるサーバーとの通信を試行する呼び出しです。サーバーでポリシーファイルを使用することにより、この問題を回避できます。
close()メソッド 
public function close():void

ローカルまたはサーバーで開始した接続を閉じ、NetConnection.Connect.Closecode プロパティで、netStatus イベントを送出します。

このメソッドは、この接続上で実行されているすべての NetStream オブジェクトを切断します。送信されていないキュー内のデータはすべて破棄されます。接続を閉じずにローカルまたはサーバーストリームを終了するには、NetStream.close() を使用します。このメソッドを呼び出した後で再接続する場合は、NetStream オブジェクトを再作成する必要があります。

このメソッドは、この接続上で実行されているすべてのリモート共有オブジェクトも切断します。ただし、再接続するために共有オブジェクトを再作成する必要はありません。SharedObject.connect() を呼び出すだけで、共有オブジェクトへの接続を再確立できます。また、共有オブジェクトへの接続が再確立されると、NetConnection.close() を発行したときにキュー内にあった共有オブジェクトのデータがすべて送信されます。

関連項目

connect()メソッド 
public function connect(command:String, ... arguments):void

サーバーへの接続を開きます。この接続を介して、HTTP アドレスまたはローカルファイルシステムからオーディオまたはビデオ (FLV) ファイルを再生したり、リモートサーバーでコマンドを呼び出したりすることができます。

このメソッドを使用する場合は、Flash Player セキュリティモデルおよび次のセキュリティについての考慮事項を検討してください。

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

パラメータ
command:String — サーバーなしでビデオに接続している場合、つまり SWF ファイルを実行しているローカルコンピュータにあるビデオに接続している場合は、このパラメータに null を設定します。

サーバーに接続している場合は、このパラメータに URI を設定します。この URI は、接続の確立時に実行している、サーバー上のアプリケーションの URI です。次の形式を使用します。角かっこ内のアイテムは省略できます。

protocol:[//host][:port]/appname/[instanceName]

サーバーのインストールされているホストから SWF ファイルが提供されている場合は、host パラメータを省略できます。instanceName パラメータを省略すると、Flash Player はアプリケーションのデフォルトインスタンス (_definst_) に接続します。

 
... argumentscommand で指定されたアプリケーションに渡される、任意の型のパラメータです。このパラメータはオプションです。アプリケーションで受信した順序でパラメータを処理できない場合は、code プロパティが NetConnection.Connect.Rejected に設定された netStatusEvent が送出されます。

スロー
ArgumentError command パラメータに渡された URI は適切にフォーマットされていません。
 
IOError — 接続に失敗しました。これは、許可されていない netStatus イベントハンドラ内から connect() を呼び出す場合に起こります。
 
SecurityError — 信頼されていないローカル SWF ファイルはインターネットへの接続を許可されません。この問題は、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類することで回避できます。

関連項目

イベントの詳細
asyncErrorevent 
イベントオブジェクトの型: flash.events.AsyncErrorEvent
AsyncErrorEvent.type property = flash.events.AsyncErrorEvent.ASYNC_ERROR

非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。

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

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

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetネットワーク操作エラーが発生したオブジェクトです。
errorイベントをトリガしたエラーです。
ioErrorevent  
イベントオブジェクトの型: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

入出力エラーが発生してネットワーク処理が失敗したときに送出されます。

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

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

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

NetConnection オブジェクトが、そのステータスまたはエラーの状況をレポートするときに送出されます。netStatus イベントには info プロパティが含まれます。このプロパティは、接続試行が成功したかどうかなど、イベントに関する特定の情報を含む情報オブジェクトです。

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

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

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
infoオブジェクトのステータスまたはエラー状態を記述するプロパティを持つオブジェクトです。
targetそのステータスをレポートする NetConnection または NetStream オブジェクトです。

関連項目

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

NetConnection.call() の呼び出しによって呼び出し元のセキュリティサンドボックスの外部にあるサーバーに接続しようとすると送出されます。

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

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

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

関連項目


次の例では、Video オブジェクトを、FLV ファイルをロードして再生する NetConnection クラスと NetStream クラスと一緒に使用して、FLV ファイルをロードおよび再生します。この例を実行するには、 videoURL に渡される変数と、ファイル名および場所が一致する FLV ファイルが必要です。 この場合は、SWF ファイルと同じディレクトリにある Video.flv という名前の FLV ファイルです。

この例では、Video オブジェクトと NetStream オブジェクトを作成し、 Video.attachNetStream() メソッドと NetStream.play() メソッドを呼び出すコードが ハンドラ関数に配置されます。ハンドラは、 NetConnection オブジェクトとの接続が成功した場合にのみ呼び出されます。つまり、 netStatus イベントが、成功したことを示す code プロパティとともに info オブジェクトを返す 場合です。 接続に成功するまで待ってから、次のコードを呼び出すことをお勧めします。 NetStream.play().


package {
    import flash.display.Sprite;
    import flash.events.NetStatusEvent;
    import flash.events.SecurityErrorEvent;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.events.Event;

    public class NetConnectionExample extends Sprite {
        private var videoURL:String = "Video.flv";
        private var connection:NetConnection;
        private var stream:NetStream;

        public function NetConnectionExample() {
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
        }

        private function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Stream not found: " + videoURL);
                    break;
            }
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function connectStream():void {
            var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.client = new CustomClient();
            var video:Video = new Video();
            video.attachNetStream(stream);
            stream.play(videoURL);
            addChild(video);
        }
    }
}

class CustomClient {
    public function onMetaData(info:Object):void {
        trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
    }
    public function onCuePoint(info:Object):void {
        trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
    }
}