Packageflash.net
Classpublic class NetConnection
InheritanceNetConnection Inheritance EventDispatcher Inheritance Object

Language version: ActionScript 3.0
Runtime version: 

The NetConnection class creates a two-way connection between a client and a server. The client can be a Flash Player or AIR an AIR application. The server can be a web server, Flash Media Server, an application server running Flash Remoting, or the Adobe Stratus service. Call NetConnection.connect() to establish the connection. Use the NetStream class to send streams of media and data over the connection.

For security information about loading content and data into Flash Player and AIR, see the following:

To write callback methods for this class, extend the class and define the callback methods in the subclass, or assign the client property to an object and define the callback methods on that object.

View the examples.

See also

client
NetStream
connect()
flash.net.Responder


Public Properties
 PropertyDefined by
  client : Object
Indicates the object on which callback methods are invoked.
NetConnection
  connected : Boolean
[read-only] Indicates whether the application is connected to a server through a persistent RTMP connection (true) or not (false).
NetConnection
  connectedProxyType : String
[read-only] The proxy type used to make a successful connection to Flash Media Server.
NetConnection
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  defaultObjectEncoding : uint
[static] The default object encoding for NetConnection objects.
NetConnection
  farID : String
[read-only] The identifier of the Flash Media Server instance to which this Flash Player or Adobe AIR instance is connected.
NetConnection
  farNonce : String
[read-only] A value chosen substantially by Flash Media Server, unique to this connection.
NetConnection
  httpIdleTimeout : Number
The time, in milliseconds, to wait for an HTTP response.
NetConnection
  maxPeerConnections : uint
The total number of inbound and outbound peer connections that this instance of Flash Player or Adobe AIR allows.
NetConnection
  nearID : String
[read-only] The identifier of this Flash Player or Adobe AIR instance for this NetConnection instance.
NetConnection
  nearNonce : String
[read-only] A value chosen substantially by this Flash Player or Adobe AIR instance, unique to this connection.
NetConnection
  objectEncoding : uint
The object encoding for this NetConnection instance.
NetConnection
  protocol : String
[read-only] The protocol used to establish the connection.
NetConnection
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
  proxyType : String
Determines which fallback methods are tried if an initial connection attempt to Flash Media Server fails.
NetConnection
  unconnectedPeerStreams : Array
[read-only] An object that holds all of the peer subscriber NetStream objects that are not associated with publishing NetStream objects.
NetConnection
  uri : String
[read-only] The URI passed to the NetConnection.connect() method.
NetConnection
  usingTLS : Boolean
[read-only] Indicates whether a secure connection was made using native Transport Layer Security (TLS) rather than HTTPS.
NetConnection
Public Methods
 MethodDefined by
  
Creates a NetConnection object.
NetConnection
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
  
addHeader(operation:String, mustUnderstand:Boolean = false, param:Object = null):void
Adds a context header to the Action Message Format (AMF) packet structure.
NetConnection
  
call(command:String, responder:Responder, ... arguments):void
Calls a command or method on Flash Media Server or on an application server running Flash Remoting.
NetConnection
  
Closes the connection that was opened locally or to the server and dispatches a netStatus event with a code property of NetConnection.Connect.Closed.
NetConnection
  
connect(command:String, ... arguments):void
Creates a two-way connection to an application on Flash Media Server or to Flash Remoting, or creates a two-way network endpoint for RTMFP peer-to-peer group communication.
NetConnection
 Inherited
Dispatches an event into the event flow.
EventDispatcher
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Events
 EventSummaryDefined by
 Inherited [broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
   Dispatched when an exception is thrown asynchronously — that is, from native asynchronous code.NetConnection
 Inherited [broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
   Dispatched when an input or output error occurs that causes a network operation to fail.NetConnection
   Dispatched when a NetConnection object is reporting its status or error condition.NetConnection
   Dispatched if a call to NetConnection.call() attempts to connect to a server outside the caller's security sandbox.NetConnection
Property detail
clientproperty
client:Object  [read-write]

Language version: ActionScript 3.0
Runtime version: 

Indicates the object on which callback methods are invoked. The default is this NetConnection instance. If you set the client property to another object, callback methods will be invoked on that object.

Implementation
    public function get client():Object
    public function set client(value:Object):void

Throws
TypeError — The client property must be set to a non-null object.
connectedproperty 
connected:Boolean  [read-only]

Language version: ActionScript 3.0
Runtime version: 

Indicates whether the application is connected to a server through a persistent RTMP connection (true) or not (false). When connected through HTTP, this property is false, except when connected to Flash Remoting services on an application server, in which case it is true.

Implementation
    public function get connected():Boolean
connectedProxyTypeproperty 
connectedProxyType:String  [read-only]

Language version: ActionScript 3.0
Runtime version: 

The proxy type used to make a successful connection to Flash Media Server. Possible values are: "none", "HTTP", "HTTPS", or "CONNECT".

The value is "none" if the connection is not tunneled or is a native SSL connection.

The value is "HTTP" if the connection is tunneled over HTTP.

The value is "HTTPS" if the connection is tunneled over HTTPS,

The value is "CONNECT" if the connection is tunneled using the CONNECT method through a proxy server.

Implementation
    public function get connectedProxyType():String

Throws
ArgumentError — An attempt was made to access this property when the NetConnection instance was not connected.
defaultObjectEncodingproperty 
defaultObjectEncoding:uint  [read-write]

Language version: ActionScript 3.0
Runtime version: 

The default object encoding for NetConnection objects. When an object is written to or read from binary data, the defaultObjectEncoding property indicates which Action Message Format (AMF) version is used to serialize the data: the ActionScript 3.0 format (ObjectEncoding.AMF3) or the ActionScript 1.0 and ActionScript 2.0 format (ObjectEncoding.AMF0).

The default value is ObjectEncoding.AMF3. Changing NetConnection.defaultObjectEncoding does not affect existing NetConnection instances; it affects only instances that are created subsequently.

To set an object's encoding separately (rather than setting object encoding for the entire application), set the objectEncoding property of the NetConnection object instead.

For more detailed information, see the description of the objectEncoding property.

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

See also

farIDproperty 
farID:String  [read-only]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

The identifier of the Flash Media Server instance to which this Flash Player or Adobe AIR instance is connected. This property is meaningful only for RTMFP connections. The value of this property is available only after an RTMFP connection is established.

Implementation
    public function get farID():String

See also

farNonceproperty 
farNonce:String  [read-only]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

A value chosen substantially by Flash Media Server, unique to this connection. This value appears to the server as its client.nearNonce value. This value is defined only for RTMFP, RTMPE, and RTMPTE connections.

Implementation
    public function get farNonce():String
httpIdleTimeoutproperty 
httpIdleTimeout:Number  [read-write]

Language version: ActionScript 3.0
Runtime version: AIR 2.6

The time, in milliseconds, to wait for an HTTP response. The default value is zero.

	//Set the timeout to 5 seconds
	connection = new NetConnection();
	connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
	connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
	connection.httpIdleTimeout = 5000;
	
In Linux-based systems, the NetConnection may take more seconds to timeout than what is specified using the httpIdleTimeout value.

Implementation
    public function get httpIdleTimeout():Number
    public function set httpIdleTimeout(value:Number):void
maxPeerConnectionsproperty 
maxPeerConnections:uint  [read-write]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

The total number of inbound and outbound peer connections that this instance of Flash Player or Adobe AIR allows. The default value is 8.

This value does not distinguish between publisher and subscriber connections. If this value is reduced while peer connections are present, the new value affects new incoming connections only. Existing connections are not dropped.

Implementation
    public function get maxPeerConnections():uint
    public function set maxPeerConnections(value:uint):void
nearIDproperty 
nearID:String  [read-only]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

The identifier of this Flash Player or Adobe AIR instance for this NetConnection instance. This property is meaningful only for RTMFP connections.

Every NetConnection instance has a unique nearID property. No Flash Player or Adobe AIR instance or NetConnection instance has the same identifier.

Other Flash Player or Adobe AIR instances use this identifier as the peerID for new NetStream connections to this client. Subsequently, this identifier is the farID in any peer NetStream that connects to this instance.

Implementation
    public function get nearID():String

See also

nearNonceproperty 
nearNonce:String  [read-only]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

A value chosen substantially by this Flash Player or Adobe AIR instance, unique to this connection. This value appears to the server as its client.farNonce value. This value is defined only for RTMFP, RTMPE, and RTMPTE connections.

Implementation
    public function get nearNonce():String
objectEncodingproperty 
objectEncoding:uint  [read-write]

Language version: ActionScript 3.0
Runtime version: 

The object encoding for this NetConnection instance.

When an object is written to or read from binary data, the defaultObjectEncoding property indicates which Action Message Format (AMF) version is used to serialize the data: the ActionScript 3.0 format (ObjectEncoding.AMF3) or the ActionScript 1.0 and ActionScript 2.0 format (ObjectEncoding.AMF0). Set the objectEncoding property to set an AMF version for a NetConnection instance.

It's important to understand this property if your application needs to communicate with servers released prior to Flash Player 9. The following three scenarios are possible:

Once a NetConnection instance is connected, its objectEncoding property is read-only.

If you use the wrong encoding to connect to a server, the NetConnection object dispatches the netStatus event. The NetStatusEvent.info property contains an information object with a code property value of NetConnection.Connect.Failed, and a description explaining that the object encoding is incorrect.

Implementation
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

Throws
ReferenceError — An attempt was made to set the value of the objectEncoding property while the NetConnection instance was connected.
 
ArgumentError — This property was set to a value other than ObjectEncoding.AMF0 or ObjectEncoding.AMF3.

See also

protocolproperty 
protocol:String  [read-only]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

The protocol used to establish the connection. This property is relevant when using Flash Media Server. Possible values are as follows:

Implementation
    public function get protocol():String

Throws
ArgumentError — An attempt was made to access this property when the NetConnection instance was not connected.
proxyTypeproperty 
proxyType:String  [read-write]

Language version: ActionScript 3.0
Runtime version: 

Determines which fallback methods are tried if an initial connection attempt to Flash Media Server fails. Set the proxyType property before calling the NetConnection.connect() method.

Acceptable values are "none", "HTTP", "CONNECTOnly", "CONNECT", and "best".The default value is "none".

To use native SSL, set the property to "best". If the player cannot make a direct connection to the server (over the default port of 443 or over another port that you specify) and a proxy server is in place, the player tries to use the CONNECT method. If that attempt fails, the player tunnels over HTTPS.

If the property is set to "CONNECTOnly", the player tries to use the CONNECT method first. If that fails, there is no fallback.

If the property is set to "HTTP" and a direct connection fails, HTTP tunneling is used. If the property is set to "CONNECT" and a direct connection fails, the CONNECT method of tunneling is used. If that fails, the connection does not fall back to HTTP tunneling.

This property is applicable only when using RTMP, RTMPS, or RTMPT. The CONNECT and CONNECTOnly methods are applicable only to users who are connected to the network by a proxy server.

Implementation
    public function get proxyType():String
    public function set proxyType(value:String):void
unconnectedPeerStreamsproperty 
unconnectedPeerStreams:Array  [read-only]

Language version: ActionScript 3.0
Runtime version: AIR 1.5

An object that holds all of the peer subscriber NetStream objects that are not associated with publishing NetStream objects. Subscriber NetStream objects that are associated with publishing NetStream objects are in the NetStream.peerStreams array.

Implementation
    public function get unconnectedPeerStreams():Array

See also

uriproperty 
uri:String  [read-only]

Language version: ActionScript 3.0
Runtime version: 

The URI passed to the NetConnection.connect() method. If NetConnection.connect() hasn't been called or if no URI was passed, this property is undefined.

Implementation
    public function get uri():String
usingTLSproperty 
usingTLS:Boolean  [read-only]

Language version: ActionScript 3.0
Runtime version: 

Indicates whether a secure connection was made using native Transport Layer Security (TLS) rather than HTTPS. This property is valid only when a NetConnection object is connected.

Implementation
    public function get usingTLS():Boolean

Throws
ArgumentError — An attempt was made to access this property when the NetConnection instance was not connected.
Constructor detail
NetConnection()constructor
public function NetConnection()

Language version: ActionScript 3.0
Runtime version: 

Creates a NetConnection object. Call the connect() method to make a connection.

If an application needs to communicate with servers released prior to Flash Player 9, set the NetConnection object's objectEncoding property.

The following code creates a NetConnection object:

     var nc:NetConnection = new NetConnection();
     

See also

Method detail
addHeader()method
public function addHeader(operation:String, mustUnderstand:Boolean = false, param:Object = null):void

Language version: ActionScript 3.0
Runtime version: 

Adds a context header to the Action Message Format (AMF) packet structure. This header is sent with every future AMF packet. If you call NetConnection.addHeader() using the same name, the new header replaces the existing header, and the new header persists for the duration of the NetConnection object. You can remove a header by calling NetConnection.addHeader() with the name of the header to remove an undefined object.

Parameters
operation:String — Identifies the header and the ActionScript object data associated with it.
 
mustUnderstand:Boolean (default = false) — A value of true indicates that the server must understand and process this header before it handles any of the following headers or messages.
 
param:Object (default = null) — Any ActionScript object.
call()method 
public function call(command:String, responder:Responder, ... arguments):void

Language version: ActionScript 3.0
Runtime version: 

Calls a command or method on Flash Media Server or on an application server running Flash Remoting. Before calling NetConnection.call() you must call NetConnection.connect() to connect to the server. You must create a server-side function to pass to this method.

You cannot connect to commonly reserved ports. For a complete list of blocked ports, see "Restricting Networking APIs" in the ActionScript 3.0 Developer's Guide.

Parameters
command:String — A method specified in the form [objectPath/]method. For example, the someObject/doSomething command tells the remote server to call the clientObject.someObject.doSomething() method, with all the optional ... arguments parameters. If the object path is missing, clientObject.doSomething() is invoked on the remote server.

With Flash Media Server, command is the name of a function defined in an application's server-side script. You do not need to use an object path before command if the server-side script is placed at the root level of the application directory.

 
responder:Responder — An optional object that is used to handle return values from the server. The Responder object can have two defined methods to handle the returned result: result and status. If an error is returned as the result, status is invoked; otherwise, result is invoked. The Responder object can process errors related to specific operations, while the NetConnection object responds to errors related to the connection status.
 
... arguments — Optional arguments that can be of any ActionScript type, including a reference to another ActionScript object. These arguments are passed to the method specified in the command parameter when the method is executed on the remote application server.

Events
securityError:SecurityErrorEvent — A call attempted to communicate with a server outside the caller's security sandbox. You can avoid this problem by using a policy file on the server.

See also

close()method 
public function close():void

Language version: ActionScript 3.0
Runtime version: 

Closes the connection that was opened locally or to the server and dispatches a netStatus event with a code property of NetConnection.Connect.Closed.

This method disconnects all NetStream objects running over the connection. Any queued data that has not been sent is discarded. (To terminate local or server streams without closing the connection, use NetStream.close().) If you close the connection and then want to create a new one, you must create a new NetConnection object and call the connect() method again.

The close() method also disconnects all remote shared objects running over this connection. However, you don't need to recreate the shared object to reconnect. Instead, you can just call SharedObject.connect() to reestablish the connection to the shared object. Also, any data in the shared object that was queued when you issued NetConnection.close() is sent after you reestablish a connection to the shared object.

With Flash Media Server, the best development practice is to call close() when the client no longer needs the connection to the server. Calling close() is the fastest way to clean up unused connections. You can configure the server to close idle connections automatically as a back-up measure. For more information, see the Flash Media Server Configuration and Administration Guide.

See also

connect()method 
public function connect(command:String, ... arguments):void

Language version: ActionScript 3.0
Runtime version: 

Creates a two-way connection to an application on Flash Media Server or to Flash Remoting, or creates a two-way network endpoint for RTMFP peer-to-peer group communication. To report its status or an error condition, a call to NetConnection.connect() dispatches a netStatus event.

Call NetConnection.connect() to do the following:

Consider the following security model:

However, in Adobe AIR, content in the application security sandbox (content installed with the AIR application) are not restricted by these security limitations.

For more information about security, see the Adobe Flash Player Developer Center: Security.

Parameters
command:String — Use one of the following values for the command parameter:
  • To play video and mp3 files from a local file system or from a web server, pass null.
  • To connect to an application server running Flash Remoting, pass a URL that uses the http protocol.
  • (Flash Player 10.1 or AIR 2 or later) To create a serverless network endpoint for RTMFP IP multicast communication, pass the string "rtmfp:". Use this connection type to receive an IP multicast stream from a publisher without using a server. You can also use this connection type to use IP multicast to discover peers on the same local area network (LAN).
  • This connection type has the following limitations:

    Only peers on the same LAN can discover each other.

    Using IP multicast, Flash Player can receive streams, it cannot send them.

    Flash Player and AIR can send and receive streams in a peer-to-peer group, but the peers must be discovered on the same LAN using IP multicast.

    This technique cannot be used for one-to-one communication.

  • To connect to Flash Media Server, pass the URI of the application on the server. Use the following syntax (items in brackets are optional):

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

    Use one of the following protocols: rtmp, rtmpe, rtmps, rtmpt, rtmpte, or rtmfp. If the connection is successful, a netStatus event with a code property of NetConnection.Connect.Success is returned. See the NetStatusEvent.info property for a list of all event codes returned in response to calling connect().

    If the file is served from the same host where the server is installed, you can omit the //host parameter. If you omit the /instanceName parameter, Flash Player or AIR connects to the application's default instance.

    (Flash Player 10.1 or AIR 2 or later)To create peer-to-peer applications, use the rtmfp protocol.

 
... arguments — Optional parameters of any type passed to the application specified in command. With Flash Media Server, the additional arguments are passed to the application.onConnect() event handler in the application's server-side code. You must define and handle the arguments in onConnect().

Throws
ArgumentError — The URI passed to the command parameter is improperly formatted.
 
Error — The connection failed. This can happen if you call connect() from within a netStatus event handler, which is not allowed.
 
SecurityError — Local-with-filesystem SWF files cannot communicate with the Internet. You can avoid this problem by reclassifying the SWF file as local-with-networking or trusted.
 
SecurityError — You cannot connect to commonly reserved ports. For a complete list of blocked ports, see "Restricting Networking APIs" in the ActionScript 3.0 Developer's Guide.

See also

Event detail
asyncErrorevent 
Event object type: flash.events.AsyncErrorEvent
AsyncErrorEvent.type property = flash.events.AsyncErrorEvent.ASYNC_ERROR

Language version: ActionScript 3.0
Runtime version: 

Dispatched when an exception is thrown asynchronously — that is, from native asynchronous code.

The AsyncErrorEvent.ASYNC_ERROR constant defines the value of the type property of an asyncError event object.

This event has the following properties:

PropertyValue
bubblesfalse This property applies to ActionScript 3.0 display objects (in SWF files).
cancelablefalse; there is no default behavior to cancel. This property applies to display objects in SWF content, which use the ActionScript 3.0 display architecture.
currentTargetThe object that is actively processing the Event object with an event listener. This property applies to display objects in SWF content, which use the ActionScript 3.0 display architecture.
target The object dispatching the event.
errorThe error that triggered the event.
ioErrorevent  
Event object type: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

Language version: ActionScript 3.0
Runtime version: 

Dispatched when an input or output error occurs that causes a network operation to fail.

Defines the value of the type property of an ioError event object.

This event has the following properties:

PropertyValue
bubblesfalse
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the Event object with an event listener.
errorIDA reference number associated with the specific error (AIR only).
targetThe network object experiencing the input/output error.
textText to be displayed as an error message.
netStatusevent  
Event object type: flash.events.NetStatusEvent
NetStatusEvent.type property = flash.events.NetStatusEvent.NET_STATUS

Language version: ActionScript 3.0
Runtime version: 

Dispatched when a NetConnection object is reporting its status or error condition. The netStatus event contains an info property, which is an information object that contains specific information about the event, such as whether a connection attempt succeeded or failed.

Defines the value of the type property of a netStatus event object.

This event has the following properties:

PropertyValue
bubblesfalse
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the Event object with an event listener.
infoAn object with properties that describe the object's status or error condition.
targetThe NetConnection or NetStream object reporting its status.

See also

securityErrorevent  
Event object type: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

Language version: ActionScript 3.0
Runtime version: 

Dispatched if a call to NetConnection.call() attempts to connect to a server outside the caller's security sandbox.

The SecurityErrorEvent.SECURITY_ERROR constant defines the value of the type property of a securityError event object.

This event has the following properties:

PropertyValue
bubblesfalse
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the Event object with an event listener.
targetThe network object reporting the security error.
textText to be displayed as an error message.

See also

Examples
examples\NetConnectionExample
The following example uses a Video object with the NetConnection and NetStream classes to load and play an FLV file.

In this example, the code that creates the Video and NetStream objects and calls the Video.attachNetStream() and NetStream.play() methods is placed in a handler function. The handler is called only if the attempt to connect to the NetConnection object is successful; that is, when the netStatus event returns an info object with a code property that indicates success. It is recommended that you wait for a successful connection before you call 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 = "http://www.helpexamples.com/flash/video/cuepoints.flv";
        private var connection:NetConnection;
        private var stream:NetStream;
        private var video:Video = new Video();    	

        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 {
            addChild(video);
            var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.client = new CustomClient();
            video.attachNetStream(stream);
            stream.play(videoURL);
        }
    }
}

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