API Documentation | All Packages | All Classes | Index | Frames No Frames |
Class XMLLoaderVars

Package | com.greensock.loading.data
Class | public class XMLLoaderVars

Can be used instead of a generic Object to define the `vars` parameter of a XMLLoader's constructor.
There are 2 primary benefits of using a XMLLoaderVars instance to define your XMLLoader variables:

1. In most code editors, code hinting will be activated which helps remind you which special properties are available in XMLLoader
2. It enables strict data typing for improved debugging (ensuring, for example, that you don't define a Boolean value for `onComplete` where a Function is expected).

The down side, of course, is that the code is more verbose and the XMLLoaderVars class adds slightly more kb to your swf. USAGE:
Note that each method returns the XMLLoaderVars instance, so you can reduce the lines of code by method chaining (see example below).
Without XMLLoaderVars:
`new XMLLoader("data.xml", {name:"css", estimatedBytes:1500, onComplete:completeHandler, onProgress:progressHandler})`
With XMLLoaderVars
`new XMLLoader("data.xml", new XMLLoaderVars().name("data").estimatedBytes(1500).onComplete(completeHandler).onProgress(progressHandler))`
NOTES:

- To get the generic vars object that XMLLoaderVars builds internally, simply access its "vars" property. In fact, if you want maximum backwards compatibility, you can tack ".vars" onto the end of your chain like this:
  `new XMLLoader("data.xml", new XMLLoaderVars().name("data").estimatedBytes(1500).onComplete(completeHandler).vars)`
- Using XMLLoaderVars is completely optional. If you prefer the shorter synatax with the generic Object, feel free to use it. The purpose of this class is simply to enable code hinting and to allow for strict data typing.

Copyright 2011, GreenSock. All rights reserved. This work is subject to the terms in http://www.greensock.com/terms_of_use.html or for corporate Club GreenSock members, the software agreement that was issued with the corporate membership.

Public Properties

| Property | Defined by
--- | --- | ---
|  | vars : Object [read-only] The generic Object populated by all of the method calls in the XMLLoaderVars instance. | XMLLoaderVars

Public Methods

| Method | Defined by
--- | --- | ---
|  | XMLLoaderVars(vars:Object = null) Constructor | XMLLoaderVars
|  | allowMalformedURL(value:Boolean):XMLLoaderVars Normally, the URL will be parsed and any variables in the query string (like "?name=test&state=il&gender=m") will be placed into a URLVariables object which is added to the URLRequest. | XMLLoaderVars
|  | alternateURL(value:String):XMLLoaderVars If you define an `alternateURL`, the loader will initially try to load from its original `url` and if it fails, it will automatically (and permanently) change the loader's `url` to the `alternateURL` and try again. | XMLLoaderVars
|  | autoDispose(value:Boolean):XMLLoaderVars When `autoDispose` is `true`, the loader will be disposed immediately after it completes (it calls the `dispose()` method internally after dispatching its `COMPLETE` event). | XMLLoaderVars
|  | estimatedBytes(value:uint):XMLLoaderVars Initially, the loader's `bytesTotal` is set to the `estimatedBytes` value (or `LoaderMax.defaultEstimatedBytes` if one isn't defined). | XMLLoaderVars
|  | integrateProgress(value:Boolean):XMLLoaderVars By default, the XMLLoader will automatically look for LoaderMax-related nodes like `<LoaderMax>, <ImageLoader>, <SWFLoader>, <XMLLoader>, <MP3Loader>, <DataLoader>`, and `<XMLLoader>` inside the XML when it inits. | XMLLoaderVars
|  | maxConnections(value:uint):XMLLoaderVars Maximum number of simultaneous connections that should be used while loading child loaders that were parsed from the XML and had their "load" attribute set to "true" (like <ImageLoader url="1.jpg" load="true" />). | XMLLoaderVars
|  | name(value:String):XMLLoaderVars A name that is used to identify the loader instance. | XMLLoaderVars
|  | noCache(value:Boolean):XMLLoaderVars If `true`, a "gsCacheBusterID" parameter will be appended to the url with a random set of numbers to prevent caching (don't worry, this info is ignored when you `LoaderMax.getLoader()` or `LoaderMax.getContent()` by `url` or when you're running locally). | XMLLoaderVars
|  | onCancel(value:Function):XMLLoaderVars A handler function for `LoaderEvent.CANCEL` events which are dispatched when loading is aborted due to either a failure or because another loader was prioritized or `cancel()` was manually called. | XMLLoaderVars
|  | onChildCancel(value:Function):XMLLoaderVars A handler function for `LoaderEvent.CHILD_CANCEL` events which are dispatched each time loading is aborted on any nested LoaderMax-related loaders that were defined in the XML due to either an error or because another loader was prioritized in the queue or because `cancel()` was manually called on the child loader. | XMLLoaderVars
|  | onChildComplete(value:Function):XMLLoaderVars A handler function for `LoaderEvent.CHILD_COMPLETE` events which are dispatched each time any nested LoaderMax-related loaders that were defined in the XML finishes loading successfully. | XMLLoaderVars
|  | onChildFail(value:Function):XMLLoaderVars A handler function for `LoaderEvent.CHILD_FAIL` events which are dispatched each time any nested LoaderMax-related loaders that were defined in the XML fails (and its `status` chances to `LoaderStatus.FAILED`). | XMLLoaderVars
|  | onChildOpen(value:Function):XMLLoaderVars A handler function for `LoaderEvent.CHILD_OPEN` events which are dispatched each time any nested LoaderMax-related loaders that were defined in the XML begins loading. | XMLLoaderVars
|  | onChildProgress(value:Function):XMLLoaderVars A handler function for `LoaderEvent.CHILD_PROGRESS` events which are dispatched each time any nested LoaderMax-related loaders that were defined in the XML dispatches a `PROGRESS` event. | XMLLoaderVars
|  | onComplete(value:Function):XMLLoaderVars A handler function for `LoaderEvent.COMPLETE` events which are dispatched when the loader has finished loading successfully. | XMLLoaderVars
|  | onError(value:Function):XMLLoaderVars A handler function for `LoaderEvent.ERROR` events which are dispatched whenever the loader experiences an error (typically an IO_ERROR or SECURITY_ERROR). | XMLLoaderVars
|  | onFail(value:Function):XMLLoaderVars A handler function for `LoaderEvent.FAIL` events which are dispatched whenever the loader fails and its `status` changes to `LoaderStatus.FAILED`. | XMLLoaderVars
|  | onHTTPStatus(value:Function):XMLLoaderVars A handler function for `LoaderEvent.HTTP_STATUS` events. | XMLLoaderVars
|  | onInit(value:Function):XMLLoaderVars A handler function for `LoaderEvent.INIT` events which are dispatched when the XML finishes loading and its contents are parsed (creating any dynamic XML-driven loader instances necessary). | XMLLoaderVars
|  | onIOError(value:Function):XMLLoaderVars A handler function for `LoaderEvent.IO_ERROR` events which will also call the onError handler, so you can use that as more of a catch-all whereas `onIOError` is specifically for LoaderEvent.IO_ERROR events. | XMLLoaderVars
|  | onOpen(value:Function):XMLLoaderVars A handler function for `LoaderEvent.OPEN` events which are dispatched when the loader begins loading. | XMLLoaderVars
|  | onProgress(value:Function):XMLLoaderVars A handler function for `LoaderEvent.PROGRESS` events which are dispatched whenever the `bytesLoaded` changes. | XMLLoaderVars
|  | onRawLoad(value:Function):XMLLoaderVars A handler function for `XMLLoader.RAW_LOAD` events which are dispatched when the loader finishes loading the XML but has NOT parsed the XML yet. | XMLLoaderVars
|  | prependURLs(value:String):XMLLoaderVars A String that should be prepended to all parsed LoaderMax-related loader URLs (from nodes like <ImageLoader>, <XMLLoader>, etc.) as soon as the XML has been parsed. | XMLLoaderVars
|  | prop(property:String, value:*):XMLLoaderVars Adds a dynamic property to the vars object containing any value you want. | XMLLoaderVars
|  | recursivePrependURLs(value:String):XMLLoaderVars A String that should be recursively prepended to all parsed LoaderMax-related loader URLs (from nodes like <ImageLoader>, <XMLLoader>, etc.). | XMLLoaderVars
|  | requireWithRoot(value:DisplayObject):XMLLoaderVars LoaderMax supports subloading, where an object can be factored into a parent's loading progress. | XMLLoaderVars

Property detail

vars | property

`vars:Object` [read-only]

The generic Object populated by all of the method calls in the XMLLoaderVars instance. This is the raw data that gets passed to the loader.

Implementation
`public function get vars():Object`
Constructor detail

XMLLoaderVars | () | constructor

`public function XMLLoaderVars(vars:Object = null)`

Constructor

Parameters

| `vars:Object` (default = `null`)`` — A generic Object containing properties that you'd like to add to this XMLLoaderVars instance.

Method detail

allowMalformedURL | () | method

`public function allowMalformedURL(value:Boolean):XMLLoaderVars`

Normally, the URL will be parsed and any variables in the query string (like "?name=test&state=il&gender=m") will be placed into a URLVariables object which is added to the URLRequest. This avoids a few bugs in Flash, but if you need to keep the entire URL intact (no parsing into URLVariables), set `allowMalformedURL:true`. For example, if your URL has duplicate variables in the query string like `http://www.greensock.com/?c=S&c=SE&c=SW`, it is technically considered a malformed URL and a URLVariables object can't properly contain all the duplicates, so in this case you'd want to set `allowMalformedURL` to `true`.

Parameters

| `value:Boolean`

Returns

| `XMLLoaderVars`

alternateURL | () | method |

`public function alternateURL(value:String):XMLLoaderVars`

If you define an `alternateURL`, the loader will initially try to load from its original `url` and if it fails, it will automatically (and permanently) change the loader's `url` to the `alternateURL` and try again. Think of it as a fallback or backup `url`. It is perfectly acceptable to use the same `alternateURL` for multiple loaders (maybe a default image for various ImageLoaders for example).

Parameters

| `value:String`

Returns

| `XMLLoaderVars`

autoDispose | () | method |

`public function autoDispose(value:Boolean):XMLLoaderVars`

When `autoDispose` is `true`, the loader will be disposed immediately after it completes (it calls the `dispose()` method internally after dispatching its `COMPLETE` event). This will remove any listeners that were defined in the vars object (like onComplete, onProgress, onError, onInit). Once a loader is disposed, it can no longer be found with `LoaderMax.getLoader()` or `LoaderMax.getContent()` - it is essentially destroyed but its content is not unloaded (you must call `unload()` or `dispose(true)` to unload its content). The default `autoDispose` value is `false`.

Parameters

| `value:Boolean`

Returns

| `XMLLoaderVars`

estimatedBytes | () | method |

`public function estimatedBytes(value:uint):XMLLoaderVars`

Initially, the loader's `bytesTotal` is set to the `estimatedBytes` value (or `LoaderMax.defaultEstimatedBytes` if one isn't defined). Then, when the loader begins loading and it can accurately determine the bytesTotal, it will do so. Setting `estimatedBytes` is optional, but the more accurate the value, the more accurate your loaders' overall progress will be initially. If the loader is inserted into a LoaderMax instance (for queue management), its `auditSize` feature can attempt to automatically determine the `bytesTotal` at runtime (there is a slight performance penalty for this, however - see LoaderMax's documentation for details).

Parameters

| `value:uint`

Returns

| `XMLLoaderVars`

integrateProgress | () | method |

`public function integrateProgress(value:Boolean):XMLLoaderVars`

By default, the XMLLoader will automatically look for LoaderMax-related nodes like `<LoaderMax>, <ImageLoader>, <SWFLoader>, <XMLLoader>, <MP3Loader>, <DataLoader>`, and `<XMLLoader>` inside the XML when it inits. If it finds any that have a `load="true"` attribute, it will begin loading them and integrate their progress into the XMLLoader's overall progress. Its `COMPLETE` event won't fire until all of these loaders have completed as well. If you prefer NOT to integrate the dynamically-created loader instances into the XMLLoader's overall `progress`, set `integrateProgress` to `false`.

Parameters

| `value:Boolean`

Returns

| `XMLLoaderVars`

maxConnections | () | method |

`public function maxConnections(value:uint):XMLLoaderVars`

Maximum number of simultaneous connections that should be used while loading child loaders that were parsed from the XML and had their "load" attribute set to "true" (like <ImageLoader url="1.jpg" load="true" />). A higher number will generally result in faster overall load times for the group. The default is 2. Sometimes there are limits imposed by the Flash Player itself or the browser or the user's system, but LoaderMax will do its best to honor the `maxConnections` you define.

Parameters

| `value:uint`

Returns

| `XMLLoaderVars`

name | () | method |

`public function name(value:String):XMLLoaderVars`

A name that is used to identify the loader instance. This name can be fed to the `LoaderMax.getLoader()` or `LoaderMax.getContent()` methods or traced at any time. Each loader's name should be unique. If you don't define one, a unique name will be created automatically, like "loader21".

Parameters

| `value:String`

Returns

| `XMLLoaderVars`

noCache | () | method |

`public function noCache(value:Boolean):XMLLoaderVars`

If `true`, a "gsCacheBusterID" parameter will be appended to the url with a random set of numbers to prevent caching (don't worry, this info is ignored when you `LoaderMax.getLoader()` or `LoaderMax.getContent()` by `url` or when you're running locally).

Parameters

| `value:Boolean`

Returns

| `XMLLoaderVars`

onCancel | () | method |

`public function onCancel(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.CANCEL` events which are dispatched when loading is aborted due to either a failure or because another loader was prioritized or `cancel()` was manually called. Make sure your onCancel function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onChildCancel | () | method |

`public function onChildCancel(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.CHILD_CANCEL` events which are dispatched each time loading is aborted on any nested LoaderMax-related loaders that were defined in the XML due to either an error or because another loader was prioritized in the queue or because `cancel()` was manually called on the child loader. Make sure your onChildCancel function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onChildComplete | () | method |

`public function onChildComplete(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.CHILD_COMPLETE` events which are dispatched each time any nested LoaderMax-related loaders that were defined in the XML finishes loading successfully. Make sure your onChildComplete function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onChildFail | () | method |

`public function onChildFail(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.CHILD_FAIL` events which are dispatched each time any nested LoaderMax-related loaders that were defined in the XML fails (and its `status` chances to `LoaderStatus.FAILED`). Make sure your onChildFail function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onChildOpen | () | method |

`public function onChildOpen(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.CHILD_OPEN` events which are dispatched each time any nested LoaderMax-related loaders that were defined in the XML begins loading. Make sure your onChildOpen function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onChildProgress | () | method |

`public function onChildProgress(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.CHILD_PROGRESS` events which are dispatched each time any nested LoaderMax-related loaders that were defined in the XML dispatches a `PROGRESS` event. To listen for changes in the XMLLoader's overall progress, use the `onProgress` special property instead. You can use the LoaderEvent's `target.progress` to get the child loader's progress value or use its `target.bytesLoaded` and `target.bytesTotal`. The LoaderEvent's `currentTarget` refers to the XMLLoader, so you can check its overall progress with the LoaderEvent's `currentTarget.progress`. Make sure your onChildProgress function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onComplete | () | method |

`public function onComplete(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.COMPLETE` events which are dispatched when the loader has finished loading successfully. Make sure your onComplete function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onError | () | method |

`public function onError(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.ERROR` events which are dispatched whenever the loader experiences an error (typically an IO_ERROR or SECURITY_ERROR). An error doesn't necessarily mean the loader failed, however - to listen for when a loader fails, use the `onFail` special property. Make sure your onError function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onFail | () | method |

`public function onFail(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.FAIL` events which are dispatched whenever the loader fails and its `status` changes to `LoaderStatus.FAILED`. Make sure your onFail function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onHTTPStatus | () | method |

`public function onHTTPStatus(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.HTTP_STATUS` events. Make sure your onHTTPStatus function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`). You can determine the httpStatus code using the LoaderEvent's `target.httpStatus` (LoaderItems keep track of their `httpStatus` when possible, although certain environments prevent Flash from getting httpStatus information).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onInit | () | method |

`public function onInit(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.INIT` events which are dispatched when the XML finishes loading and its contents are parsed (creating any dynamic XML-driven loader instances necessary). If any dynamic loaders are created and have a `load="true"` attribute, they will begin loading at this point and the XMLLoader's `COMPLETE` will not be dispatched until the loaders have completed as well.

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onIOError | () | method |

`public function onIOError(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.IO_ERROR` events which will also call the onError handler, so you can use that as more of a catch-all whereas `onIOError` is specifically for LoaderEvent.IO_ERROR events. Make sure your onIOError function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onOpen | () | method |

`public function onOpen(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.OPEN` events which are dispatched when the loader begins loading. Make sure your onOpen function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`).

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onProgress | () | method |

`public function onProgress(value:Function):XMLLoaderVars`

A handler function for `LoaderEvent.PROGRESS` events which are dispatched whenever the `bytesLoaded` changes. Make sure your onProgress function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`). You can use the LoaderEvent's `target.progress` to get the loader's progress value or use its `target.bytesLoaded` and `target.bytesTotal`.

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

onRawLoad | () | method |

`public function onRawLoad(value:Function):XMLLoaderVars`

A handler function for `XMLLoader.RAW_LOAD` events which are dispatched when the loader finishes loading the XML but has NOT parsed the XML yet. This can be useful in rare situations when you want to alter the XML before it is parsed by XMLLoader (for identifying LoaderMax-related nodes like `<ImageLoader>`, etc.). Make sure your onRawLoad function accepts a single parameter of type `LoaderEvent` (`com.greensock.events.LoaderEvent`)

Parameters

| `value:Function`

Returns

| `XMLLoaderVars`

prependURLs | () | method |

`public function prependURLs(value:String):XMLLoaderVars`

A String that should be prepended to all parsed LoaderMax-related loader URLs (from nodes like <ImageLoader>, <XMLLoader>, etc.) as soon as the XML has been parsed. For example, if your XML has the following node: `<ImageLoader url="1.jpg" />` and `prependURLs` is set to "../images/", then the ImageLoader's url will end up being "../images/1.jpg". `prependURLs` affects ALL parsed loaders in the XML. However, if you have an `<XMLLoader>` node inside your XML that also loads another XML doc and you'd like to recursively prepend all of the URLs in this loader's XML as well as the subloading one and all of its children, use `recursivePrependURLs` instead of `prependURLs`.

Parameters

| `value:String`

Returns

| `XMLLoaderVars`

prop | () | method |

`public function prop(property:String, value:*):XMLLoaderVars`

Adds a dynamic property to the vars object containing any value you want. This can be useful in situations where you need to associate certain data with a particular loader. Just make sure that the property name is a valid variable name (starts with a letter or underscore, no special characters, etc.) and that it doesn't use a reserved property name like "name" or "onComplete", etc. For example, to set an "index" property to 5, do: `prop("index", 5);`

Parameters

| `property:String` — Property name
| `value:*` — Value

Returns

| `XMLLoaderVars`

recursivePrependURLs | () | method |

`public function recursivePrependURLs(value:String):XMLLoaderVars`

A String that should be recursively prepended to all parsed LoaderMax-related loader URLs (from nodes like <ImageLoader>, <XMLLoader>, etc.). The functionality is identical to `prependURLs` except that it is recursive, affecting all parsed loaders in subloaded XMLLoaders (other XML files that this one loads too). For example, if your XML has the following node: `<XMLLoader url="doc2.xml" />` and `recursivePrependURLs` is set to "../xml/", then the nested XMLLoader's URL will end up being "../xml/doc2.xml". Since it is recursive, parsed loaders inside doc2.xml and any other XML files that it loads will all have their URLs prepended. So if you load doc1.xml which loads doc2.xml which loads doc3.xml (due to `<XMLLoader>` nodes discovered in each XML file), `recursivePrependURLs` will affect all of the parsed LoaderMax-related URLs in all 3 documents. If you'd prefer to only have the URLs affected that are in the XML file that this XMLLoader is loading, use `prependURLs` instead of `recursivePrependURLs`.

Parameters

| `value:String`

Returns

| `XMLLoaderVars`

requireWithRoot | () | method |

`public function requireWithRoot(value:DisplayObject):XMLLoaderVars`

LoaderMax supports subloading, where an object can be factored into a parent's loading progress. If you want LoaderMax to require this loader as part of its parent SWFLoader's progress, you must set the `requireWithRoot` property to your swf's `root`. For example, `vars.requireWithRoot = this.root;`.

Parameters

| `value:DisplayObject`

Returns

| `XMLLoaderVars`