openfl
Version:
A fast, productive library for 2D cross-platform development.
267 lines (246 loc) • 12.9 kB
TypeScript
import EventDispatcher from "./../events/EventDispatcher";
import URLLoaderDataFormat from "./URLLoaderDataFormat";
import URLRequest from "./URLRequest";
declare namespace openfl.net {
/**
* The URLLoader class downloads data from a URL as text, binary data, or
* URL-encoded variables. It is useful for downloading text files, XML, or
* other information to be used in a dynamic, data-driven application.
*
* 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 Flash Player and 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](http://www.adobe.com/go/devnet_security_en).
*
* @:event complete 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.
* @:event 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.
* @:event httpStatus Dispatched if a call to URLLoader.load() attempts
* to access data over HTTP. For content running in
* Flash Player, this event is only dispatched if
* the current Flash Player environment is able to
* detect and return the status code for the
* request.(Some browser environments may not be
* able to provide this information.) Note that the
* `httpStatus` event(if any) is sent
* before(and in addition to) any
* `complete` or `error`
* event.
* @:event ioError Dispatched if a call to URLLoader.load() results
* in a fatal error that terminates the download.
* @:event open Dispatched when the download operation commences
* following a call to the
* `URLLoader.load()` method.
* @:event progress 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.
* @:event securityError 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.
*/
export class URLLoader extends EventDispatcher {
/**
* Indicates the number of bytes that have been loaded thus far during the
* load operation.
*/
bytesLoaded:number;
/**
* 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.
*/
bytesTotal:number;
/**
* 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.
*/
data:object;
/**
* 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.
*
* @default URLLoaderDataFormat.TEXT
*/
dataFormat:URLLoaderDataFormat;
/**
* Creates a URLLoader object.
*
* @param request 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).
*/
constructor (request?:URLRequest);
/**
* 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.
*
*/
close ():void;
/**
* 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](http://www.adobe.com/go/devnet_security_en).
*
* @param request A URLRequest object specifying the URL to download.
* @throws ArgumentError `URLRequest.requestHeader` objects may
* not contain certain prohibited HTTP request headers.
* For more information, see the URLRequestHeader class
* description.
* @throws MemoryError This error can occur for the following reasons: 1)
* Flash Player or 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) Flash Player or 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.
* @throws 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.
* @throws 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_.
* @throws TypeError The value of the request parameter or the
* `URLRequest.url` property of the
* URLRequest object passed are `null`.
* @:event complete Dispatched after data has loaded successfully.
* @:event 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.
* @:event 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.
* @:event ioError The load operation could not be completed.
* @:event open Dispatched when a load operation commences.
* @:event progress Dispatched when data is received as the download
* operation progresses.
* @:event 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.
* @:event 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.
*/
load (request:URLRequest):void;
}
}
export default openfl.net.URLLoader;