window.runtime property | window.runtime.flash.net.URLLoader |
Inheritance | URLLoader EventDispatcher Object |
Runtime Versions: | AIR 1.0, |
A URLLoader object downloads all of the data from a URL before
making it available to code in the applications. It sends out
notifications about the progress of the download, which you can monitor
through the bytesLoaded
and bytesTotal
properties,
as well as through dispatched events.
When loading very large video files, such as FLV's, out-of-memory errors may occur.
When you use this class in AIR application content in security sandboxes other than then application security sandbox, consider the following security model:
- A SWF file in the local-with-filesystem sandbox may not load data from, or provide data to, a resource that is in the network sandbox.
- By default, the calling SWF file and the URL you load must be in exactly the same domain. For example, a SWF file at www.adobe.com can load data only from sources that are also at www.adobe.com. To load data from a different domain, place a URL policy file on the server hosting the data.
For more information related to security, see the Flash Player Developer Center Topic: Security.
See also
Property | Defined By | ||
---|---|---|---|
bytesLoaded : uint = 0
Indicates the number of bytes that have been loaded thus far
during the load operation. | URLLoader | ||
bytesTotal : uint = 0
Indicates the total number of bytes in the downloaded data. | URLLoader | ||
constructor : Object
A reference to the class object or constructor function for a given object instance. | Object | ||
data : *
The data received from the load operation. | URLLoader | ||
dataFormat : String = "text"
Controls whether the downloaded data is received as
text (URLLoaderDataFormat.TEXT), raw binary data
(URLLoaderDataFormat.BINARY), or URL-encoded variables
(URLLoaderDataFormat.VARIABLES). | URLLoader | ||
prototype : Object [static]
A reference to the prototype object of a class or function object. | Object |
Method | Defined By | ||
---|---|---|---|
URLLoader(request:URLRequest = null)
Creates a URLLoader object. | URLLoader | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void [override]
Registers an event listener object with an EventDispatcher object so that the listener
receives notification of an event. | URLLoader | ||
close():void
Closes the load operation in progress. | URLLoader | ||
dispatchEvent(event:Event):Boolean
Dispatches an event into the event flow. | EventDispatcher | ||
hasEventListener(type:String):Boolean
Checks whether the EventDispatcher object has any listeners registered for a specific type
of event. | EventDispatcher | ||
hasOwnProperty(name:String):Boolean
Indicates whether an object has a specified property defined. | Object | ||
isPrototypeOf(theClass:Object):Boolean
Indicates whether an instance of the Object class is in the prototype chain of the object specified
as the parameter. | Object | ||
load(request:URLRequest):void
Sends and loads data from the specified URL. | URLLoader | ||
propertyIsEnumerable(name:String):Boolean
Indicates whether the specified property exists and is enumerable. | Object | ||
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object. | EventDispatcher | ||
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
Sets the availability of a dynamic property for loop operations. | Object | ||
toLocaleString():String
Returns the string representation of this object, formatted according to locale-specific conventions. | Object | ||
toString():String
Returns the string representation of the specified object. | Object | ||
valueOf():Object
Returns the primitive value of the specified object. | Object | ||
willTrigger(type:String):Boolean
Checks whether an event listener is registered with this EventDispatcher object or any of
its ancestors for the specified event type. | EventDispatcher |
Event | Summary | Defined By | ||
---|---|---|---|---|
[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active. | EventDispatcher | |||
Dispatched after all the received data is decoded and placed in the data property of the URLLoader object. | URLLoader | |||
[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive. | EventDispatcher | |||
Dispatched if a call to the load() method attempts to access data over HTTP, and Adobe AIR is able to detect and return the status code for the request. | URLLoader | |||
Dispatched if a call to URLLoader.load() attempts to access data over HTTP. | URLLoader | |||
Dispatched if a call to URLLoader.load() results in a fatal error that terminates the download. | URLLoader | |||
Dispatched when the download operation commences following a call to the URLLoader.load() method. | URLLoader | |||
Dispatched when data is received as the download operation progresses. | URLLoader | |||
Dispatched if a call to URLLoader.load() attempts to load data from a server outside the security sandbox. | URLLoader |
bytesLoaded | property |
public var bytesLoaded:uint = 0
Runtime Versions: | AIR 1.0, |
Indicates the number of bytes that have been loaded thus far during the load operation.
bytesTotal | property |
public var bytesTotal:uint = 0
Runtime Versions: | AIR 1.0, |
Indicates the total number of bytes in the downloaded data. This property contains 0 while the load operation is in progress and is populated when the operation is complete. Also, a missing Content-Length header will result in bytesTotal being indeterminate.
data | property |
public var data:*
Runtime Versions: | AIR 1.0, |
The data received from the load operation. This property
is populated only when the load operation is complete.
The format of the data depends on the setting of the
dataFormat
property:
If the dataFormat
property is URLLoaderDataFormat.TEXT
,
the received data is a string containing the text of the loaded file.
If the dataFormat
property is URLLoaderDataFormat.BINARY
,
the received data is a ByteArray object containing the raw binary data.
If the dataFormat
property is URLLoaderDataFormat.VARIABLES
,
the received data is a URLVariables object containing the URL-encoded variables.
See also
dataFormat | property |
public var dataFormat:String = "text"
Runtime Versions: | AIR 1.0, |
Controls whether the downloaded data is received as
text (URLLoaderDataFormat.TEXT
), raw binary data
(URLLoaderDataFormat.BINARY
), or URL-encoded variables
(URLLoaderDataFormat.VARIABLES
).
If the value of the dataFormat
property is URLLoaderDataFormat.TEXT
,
the received data is a string containing the text of the loaded file.
If the value of the dataFormat
property is URLLoaderDataFormat.BINARY
,
the received data is a ByteArray object containing the raw binary data.
If the value of the dataFormat
property is URLLoaderDataFormat.VARIABLES
,
the received data is a URLVariables object containing the URL-encoded variables.
The default value is URLLoaderDataFormat.TEXT.
See also
URLLoader | () | Constructor |
public function URLLoader(request:URLRequest = null)
Runtime Versions: | AIR 1.0, |
Creates a URLLoader object.
Parametersrequest:URLRequest (default = null ) — A URLRequest object specifying
the URL to download. If this parameter is omitted,
no load operation begins. If
specified, the load operation begins
immediately (see the load entry for more information).
|
See also
addEventListener | () | method |
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Runtime Versions: | AIR 1.0, |
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
JavaScript code in the AIR runtime uses this method to register
event listeners for events defined by the AIR APIs. For other JavaScript events (such as the onload
event of the DOM body
object), you can use standard event handling techniques, as you would
for content running in the browser.
After you successfully register an event listener, you cannot change its priority
through additional calls to addEventListener()
. To change a listener's
priority, you must first call removeListener()
. Then you can register the
listener again with the new priority level.
Keep in mind that after the listener is registered, subsequent calls to
addEventListener()
with a different type
or
useCapture
value result in the creation of a separate listener registration.
If you no longer need an event listener, remove it by calling
removeEventListener()
, or memory problems could result. Event listeners are not automatically
removed from memory because the garbage
collector does not remove the listener as long as the dispatching object exists (unless the useWeakReference
parameter is set to true
).
Copying an EventDispatcher instance does not copy the event listeners attached to it. (If your newly created node needs an event listener, you must attach the listener after creating the node.) However, if you move an EventDispatcher instance, the event listeners attached to it move along with it.
Parameters
type:String — The type of event.
| |
listener:Function — The listener function that processes the event. This function must accept
an Event object as its only parameter and must return nothing
.
The function can have any name. | |
useCapture:Boolean (default = false ) — This parameter applies to display objects in the
ActionScript 3.0 display list architecture, used by SWF content.
| |
priority:int (default = 0 ) — The priority level of the event listener. The priority is designated by
a signed 32-bit integer. The higher the number, the higher the priority. All listeners
with priority n are processed before listeners of priority n-1. If two
or more listeners share the same priority, they are processed in the order in which they
were added. The default priority is 0.
| |
useWeakReference:Boolean (default = false ) — Determines whether the reference to the listener is strong or
weak. A strong reference (the default) prevents your listener from being garbage-collected.
A weak reference does not. Class-level member functions are not subject to garbage
collection, so you can set |
close | () | method |
public function close():void
Runtime Versions: | AIR 1.0, |
Closes the load operation in progress. Any load operation in progress is immediately terminated. If no URL is currently being streamed, an invalid stream error is thrown.
load | () | method |
public function load(request:URLRequest):void
Runtime Versions: | AIR 1.0, |
Sends and loads data from the specified URL. The data can be received as
text, raw binary data, or URL-encoded variables, depending on the
value you set for the dataFormat
property. Note that
the default value of the dataFormat
property is text.
If you want to send data to the specified URL, you can set the data
property in the URLRequest object.
Note: If a file being loaded contains non-ASCII characters (as found in many non-English languages), it is recommended that you save the file with UTF-8 or UTF-16 encoding as opposed to a non-Unicode format like ASCII.
A SWF file in the local-with-filesystem sandbox may not load data from, or provide data to, a resource that is in the network sandbox.
By default, the calling SWF file and the URL you load must be in exactly the same domain. For example, a SWF file at www.adobe.com can load data only from sources that are also at www.adobe.com. To load data from a different domain, place a URL policy file on the server hosting the data.
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.
In Flash Player 10 and later, if you use a multipart Content-Type (for example "multipart/form-data") that contains an upload (indicated by a "filename" parameter in a "content-disposition" header within the POST body), the POST operation is subject to the security rules applied to uploads:
- The POST operation must be performed in response to a user-initiated action, such as a mouse click or key press.
- If the POST operation is cross-domain (the POST target is not on the same server as the SWF file that is sending the POST request), the target server must provide a URL policy file that permits cross-domain access.
Also, for any multipart Content-Type, the syntax must be valid (according to the RFC2046 standards). If the syntax appears to be invalid, the POST operation is subject to the security rules applied to uploads.
For more information related to security, see the Flash Player Developer Center Topic: Security.
Parameters
request:URLRequest — A URLRequest object specifying the URL to download.
|
Events
complete: — Dispatched after data has loaded successfully. | |
httpStatus: — If access is over HTTP, and the current
Flash Player environment supports obtaining status codes, you may
receive these events in addition to any complete
or error event. | |
ioError: — The load operation could not be
completed. | |
progress: — Dispatched when data is received as the download
operation progresses. | |
securityError: — A load operation attempted
to retrieve data from a server outside the caller's security sandbox.
This may be worked around using a policy file on the server. | |
securityError: — A load operation attempted
to load a SWZ file (a Adobe platform component), but the certificate is invalid
or the digest does not match the component. | |
open: — Dispatched when a load operation commences. | |
httpResponseStatus: — Dispatched if a call to the load()
method attempts to access data over HTTP and Adobe AIR is able to detect and return the
status code for the request. |
Throws
ArgumentError — URLRequest.requestHeader objects may not
contain certain prohibited HTTP request headers. For more information,
see the URLRequestHeader class description.
| |
MemoryError — This error can occur for the following reasons:
1) AIR cannot
convert the URLRequest.data
parameter from UTF8 to MBCS. This error is applicable if the URLRequest object
passed to load() is set to perform a GET operation and
if System.useCodePage is set to true .
2) AIR cannot
allocate memory for the POST data. This error is
applicable if the URLRequest object passed to load is set
to perform a POST operation.
| |
SecurityError — Local untrusted files may not communicate with
the Internet. This may be worked around by reclassifying this file
as local-with-networking or trusted.
| |
SecurityError — You are trying to connect to a commonly reserved port.
For a complete list of blocked ports, see "Restricting Networking APIs" in the
ActionScript 3.0 Developer's Guide.
| |
TypeError — The value of the request parameter
or the URLRequest.url property of the URLRequest object passed are
null .
|
See also
complete | Event |
flash.events.Event
property Event.type =
flash.events.Event.COMPLETE
Runtime Versions: | AIR 1.0, |
Dispatched after all the received data is decoded and placed in the data property of the URLLoader object. The received data may be accessed once this event has been dispatched.
TheEvent.COMPLETE
constant defines the value of the type
property of a complete
event object.
This event has the following properties:
Property | Value |
---|---|
bubbles | false |
cancelable | false ; there is no default behavior to cancel. |
currentTarget | The object that is actively processing the Event object with an event listener. |
target | The network object that has completed loading. |
See also
httpResponseStatus | Event |
flash.events.HTTPStatusEvent
property HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS
Runtime Versions: | 1.0 1.0 |
Dispatched if a call to the load() method attempts to access data over HTTP, and Adobe AIR is able to detect and return the status code for the request.
Unlike thehttpStatus
event, the httpResponseStatus
event is
delivered before any response data. Also, the httpResponseStatus
event includes
values for the responseHeaders
and responseURL
properties (which are
undefined for an httpStatus
event. Note that the httpResponseStatus
event
(if any) will be sent before (and in addition to) any complete
or error
event.
The HTTPStatusEvent.HTTP_RESPONSE_STATUS
constant defines the value of the
type
property of a httpResponseStatus
event object.
This event has the following properties:
Property | Value |
---|---|
bubbles | false |
cancelable | false ; there is no default behavior to cancel. |
currentTarget | The object that is actively processing the Event object with an event listener. |
responseURL | The URL from which the response was returned. |
responseHeaders | The response headers that the response returned, as an array of URLRequestHeader objects. |
status | The HTTP status code returned by the server. |
target | The network object receiving an HTTP status code. |
See also
httpStatus | Event |
flash.events.HTTPStatusEvent
property HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_STATUS
Runtime Versions: | AIR 1.0, |
Dispatched if a call to URLLoader.load()
attempts to access data over HTTP. Note that the httpStatus
event
(if any) is sent before (and in addition to) any complete
or error
event.
HTTPStatusEvent.HTTP_STATUS
constant defines the value of the
type
property of a httpStatus
event object.
This event has the following properties:
Property | Value |
---|---|
bubbles | false |
cancelable | false ; there is no default behavior to cancel. |
currentTarget | The object that is actively processing the Event object with an event listener. |
status | The HTTP status code returned by the server. |
target | The network object receiving an HTTP status code. |
See also
ioError | Event |
flash.events.IOErrorEvent
property IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Runtime Versions: | AIR 1.0, |
Dispatched if a call to URLLoader.load() results in a fatal error that terminates the download.
Defines the value of thetype
property of an ioError
event object.
This event has the following properties:
Property | Value |
---|---|
bubbles | false |
cancelable | false ; there is no default behavior to cancel. |
currentTarget | The object that is actively processing the Event object with an event listener. |
errorID | A reference number associated with the specific error (AIR only). |
target | The network object experiencing the input/output error. |
text | Text to be displayed as an error message. |
See also
open | Event |
flash.events.Event
property Event.type =
flash.events.Event.OPEN
Runtime Versions: | AIR 1.0, |
Dispatched when the download operation commences following
a call to the URLLoader.load()
method.
Event.OPEN
constant defines the value of the type
property of an open
event object.
This event has the following properties:
Property | Value |
---|---|
bubbles | false |
cancelable | false ; there is no default behavior to cancel. |
currentTarget | The object that is actively processing the Event object with an event listener. |
target | The network object that has opened a connection. |
See also
progress | Event |
flash.events.ProgressEvent
property ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS
Runtime Versions: | AIR 1.0, |
Dispatched when data is received as the download operation progresses.
Note that with a URLLoader object, it is not possible to access the data until it has been received completely. So, the progress event only serves as a notification of how far the download has progressed. To access the data before it's entirely downloaded, use a URLStream object.
Defines the value of thetype
property of a progress
event object.
This event has the following properties:
Property | Value |
---|---|
bubbles | false |
bytesLoaded | The number of items or bytes loaded at the time the listener processes the event. |
bytesTotal | The total number of items or bytes that ultimately will be loaded if the loading process succeeds. |
cancelable | false ; there is no default behavior to cancel. |
currentTarget | The object that is actively processing the Event object with an event listener. |
target | The object reporting progress. |
See also
securityError | Event |
flash.events.SecurityErrorEvent
property SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Runtime Versions: | AIR 1.0, |
Dispatched if a call to URLLoader.load()
attempts to load data from a server outside the security sandbox.
Also dispatched if a call to URLLoader.load()
attempts
to load a SWZ file and the certificate is invalid or the digest string
does not match the component.
SecurityErrorEvent.SECURITY_ERROR
constant defines the value of the type
property of a securityError
event object.
This event has the following properties:
Property | Value |
---|---|
bubbles | false |
cancelable | false ; there is no default behavior to cancel. |
currentTarget | The object that is actively processing the Event object with an event listener. |
target | The network object reporting the security error. |
text | Text to be displayed as an error message. |
See also
Note: To test this example:
- Add the AIRAliases.js file to the project directory.
- Put a file named urlLoaderExample.txt on your localhost HTTP server. That file should only
contain the following line of text:
answer=42&question=unknown
- Create an application descriptor file for the project, and test the project using ADL.
The example code does the following:
- The
init()
function creates a URLLoader instance namedloader
and a URLRequest instance namedrequest
, which contains the location and name of the file to be loaded. - The
loader
object is passed to theconfigureListeners()
method, which adds listeners for each of the supported URLLoader events. - The
request
object is then passed toloader.load()
, which loads the text file. - When the URLLoader has finished loading the text file the
Event.COMPLETE event
fires, triggering thecompleteHandler()
method. ThecompleteHandler()
method creates a URLVariables object from the text loaded from the file. The URLVariables object converts URL-encoded name/value pairs into properties to make it easier to manipulate the loaded data.
<html> <head> <script src="AIRAliases.js" /> <script> function init() { var loader = new air.URLLoader(); configureListeners(loader); var request = new air.URLRequest("urlLoaderExample.txt"); try { loader.load(request); } catch (error) { air.trace("Unable to load requested document."); } } function configureListeners(dispatcher) { dispatcher.addEventListener(air.Event.COMPLETE, completeHandler); dispatcher.addEventListener(air.Event.OPEN, openHandler); dispatcher.addEventListener(air.ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(air.SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); dispatcher.addEventListener(air.HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(air.IOErrorEvent.IO_ERROR, ioErrorHandler); } function completeHandler(event) { var loader = air.URLLoader(event.target); air.trace("completeHandler: " + loader.data); var vars = new air.URLVariables(loader.data); air.trace("The answer is " + vars.answer); } function openHandler(event) { air.trace("openHandler: " + event); } function progressHandler(event) { air.trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal); } function securityErrorHandler(event) { air.trace("securityErrorHandler: " + event); } function httpStatusHandler(event) { air.trace("httpStatusHandler: " + event); } function ioErrorHandler(event) { air.trace("ioErrorHandler: " + event); } </script> </head> <body onload='init()'> </body> </html>
Thu Sep 29 2011, 02:34 AM -07:00