In AS3, Loader and URLLoader are two classes that are easy to confuse:
I. Application Scope
Loader: swf, image (jpg, png, gif)
URLLoader: Text File (xml, php, jsp ...)
Ii. Usage
Loader:
Loader. contentLoaderInfo. addEventListener (Event. COMPLETE, loadComplete );
Private function loadComplete (event: Event)
{
Trace ("done"); addChild (loader );
}
Urlloader:
XmlLoader. dataFormat = URLLoaderDataFormat. TEXT;
XmlLoader. addEventListener (Event. COMPLETE, xmlLoaded );
Private function xmlLoaded (event: Event)
{
Try
{
MyXML = XML(event.tar get. data); area. text = myXML;
}
Catch (e: TypeError)
{
Area. text = "Load faild:/n" + e. message;
}
}
Loader
When loading data using Loader and adding listening events, be sure to add events to the contentLoaderInfo attribute of Loader instead of adding events to the Loader object.
Var loader: Loader = new Loader ();
Loader. contentLoaderInfo. addEventListener (Event. COMPLETE, completeHandler );
Loader. contentLoaderInfo. addEventListener (SecurityErrorEvent. SECURITY_ERROR, securityErrorHandler );
Loader. contentLoaderInfo. addEventListener (IOErrorEvent. IO_ERROR, ioErrorHandler );
Iii. Data Types loaded by loader
We all know that Loader is used to replace the loadMovie function of MovieClip and load external image files and SWF files.
If an image file (jpg, gif, png, etc.) is loaded, the Data Type obtained by Loader. content is a Bitmap object;
If the SWF file (flash 9) is loaded, the Data Type obtained by Loader. content is MovieClip;
If the SWF file (earlier than flash 9) is loaded, the Data Type obtained by Loader. content is AVM1Movie;
4. Load process listening
When the loading operation has started or the socket has received the data, the ProgressEvent object is scheduled. These events are usually generated when a SWF file, image, or data is loaded into an application. There are two types of process events:ProgressEvent.PROGRESSAndProgressEvent.SOCKET_DATA.
ProgressEvent. PROGRESS 64 K triggers an event.
V. data submission and Acquisition/* @ Post data to server */
Private function postData (src: String, data: String, callBack: Function): void
{
Var header1: URLRequestHeader = new URLRequestHeader ("Content-Type", "application/json; charset = UTF-8 ");
Var header2: URLRequestHeader = new URLRequestHeader ("Accept", "application/json ");
Var request: URLRequest = new URLRequest (src );
Request. data = data;
Request. method = URLRequestMethod. POST;
Request. requestHeaders = [header1, header2];
VaR Loader: urlloader = new urlloader ();
Loader. dataformat = urlloaderdataformat. text;
Loader. addeventlistener (event. Complete,
Function (): void {
Callback (loader. data );
});
Loader. Load (request );
}
/* @ Get data from server */
Private function getdata (SRC: String, callback: function): void
{
VaR header1: urlrequestheader = new urlrequestheader ("Content-Type", "application/JSON; charset = UTF-8 ");
VaR header2: urlrequestheader = new urlrequestheader ("accept", "application/JSON"); var request: URLRequest = new URLRequest (SRC );
Request. method = urlrequestmethod. Get;
Request. requestheaders = [header1, header2];
VaR Loader: urlloader = new urlloader ();
Loader. dataformat = urlloaderdataformat. text;
Loader. addeventlistener (event. Complete,
Function (): void {
Callback (loader. data );
});
Loader. Load (request );
}