| Package | com.pcthomatos.ultraloader |
| Class | public class UltraLoader |
| Inheritance | UltraLoader flash.display.Sprite |
load method for more details.
<ul id="introcontent">
<li data-type="htmlfield" id="sometext" data-width="400">
<span class="foo">Welcome Folks<br />Welcome to UltraLoader</span>
<br /><img src="img/testimage0.jpg" width="359" height="316" alt="" id="testimage"/> <br />
<br /><img src="img/testimage0.jpg" width="359" height="316" alt="" id="testimage2"/> <br />
</li>
</ul>
<ul id="musicphoto">
<li data-type="image"><img src="img/testimage0.jpg" width="359" height="316" alt="" id="testimage3"/></li>
<li data-type="string" id="sometext2">someText here for now</li>
<li data-type="xml" id="somexml" data-src="xml/test.xml?teste=foo&bar=test"></li>
<li data-type="policy" data-src="http://www.website.com/folder/policy.xml"></li>
<li data-type="sound" id="testsound" data-src="snd/test.mp3"></li>
<li data-type="sound" id="testsound2" data-src="snd/test2.mp3" data-policy="true"></li>
</ul>
<ul id="videos">
<li data-type="video" id="testvid" data-src="vid/test.flv" data-width="320" data-height="240"></li>
<li data-type="video" id="testvid2" data-src="http://video.ak.facebook.com/31552_33358.flv" data-width="320" data-height="240"></li>
</ul>
<ul id="animationswfs">
<li data-type="policy" data-src="http://www.adifferent-website.com/subfolder/policy.xml"></li>
<li data-type="flash" id="testswf" data-src="swf/AnimationTest2.swf"></li>
<li data-type="flash" id="testswf2" data-src="swf/AnimationTest.swf?foo=bar"></li>
</ul>
<li data-type="file" id="{file id: case sensitive, no spaces}" data-src="{path to file}"></li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="file" id="somefilename" data-src="folder/file.xxx"></li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access somefilename in one of 3 ways:
var somefilename:= ulObj.page3.anythingyouwant.somefilename; // or
//var somefilename:= ulObj.page3.$file.somefilename; // or
//var somefilename:= ulObj.$file.somefilename;
...
for each(var fileObj:in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var fileObj:in ulObj.page3.$file){...
// contains all file assets in ulObj.page3
for each(var fileObj:in ulObj.$file){...
// contains all file assets in ulObj
flash.display.MovieClip
<li data-type="flash" id="{flash id: case sensitive, no spaces}" data-src="{path to swf file}"></li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="flash" id="smoothflash" data-src="swf/smooth.swf"></li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access smoothflash in one of 3 ways:
var smoothFlash:MovieClip = ulObj.page3.anythingyouwant.smoothflash; // or
//var smoothFlash:MovieClip = ulObj.page3.$flash.smoothflash; // or
//var smoothFlash:MovieClip = ulObj.$flash.smoothflash;
...
for each(var flashMC:MovieClip in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var flashMC:MovieClip in ulObj.page3.$flash){...
// contains all flash assets in ulObj.page3
for each(var flashMC:MovieClip in ulObj.$flash){...
// contains all flash assets in ulObj
flash.display.MovieClipFont.registerFont
in the first frame or in the contructor of the document class.
<li data-type="fontswf" id="{fontswf id: case sensitive, no spaces}" data-src="{path to font swf file}"></li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="fontswf" id="fonts" data-src="swf/fonts.swf"></li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
...flash.text.TextField
<li data-type="htmlfield" id="{htmlfield id: case sensitive, no spaces}" [data-width="{number: default is 100}"] [data-align="{NONE|CENTER|LEFT|RIGHT: default is LEFT}"]>[{html text and or <img /> tags}]</li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="htmlfield" id="longhtml" data-width="100" data-align="LEFT">
Long Text Copy ™®
<img src="img/spacer.gif" width="1" height="1" alt="This is a Spacer Image" id="spacingImg" />
And More Text Copy
</li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access longhtml in one of 3 ways:
var longHtml:TextField = ulObj.page3.anythingyouwant.longhtml; // or
//var longHtml:TextField = ulObj.page3.$htmlfield.longhtml; // or
//var longHtml:TextField = ulObj.$htmlfield.longhtml;
...
for each(var htmlTF:TextField in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var htmlTF:TextField in ulObj.page3.$htmlfield){...
// contains all htmlfield assets in ulObj.page3
for each(var htmlTF:TextField in ulObj.$htmlfield){...
// contains all htmlfield assets in ulObj
flash.display.Bitmap
<li data-type="image" [data-policy="{true|false}"]><img src="{path to image file}" [width="{number}"] [height="{number}"] [alt="{text}"] id="{image id: case sensitive, no spaces}" /></li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="image" data-policy="true"><img src="img/spacer.gif" width="1" height="1" alt="This is a Spacer Image" id="spacingimg" /></li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access spacingimg in one of 3 ways:
var spacingImg:Bitmap = ulObj.page3.anythingyouwant.spacingimg; // or
//var spacingImg:Bitmap = ulObj.page3.$image.spacingimg; // or
//var spacingImg:Bitmap = ulObj.$image.spacingimg;
...
for each(var img:Bitmap in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var img:Bitmap in ulObj.page3.$image){...
// contains all image assets in ulObj.page3
for each(var img:Bitmap in ulObj.$image){...
// contains all image assets in ulObj
flash.system.security#loadPolicyFile()
<li data-type="policy" data-src="{path to policy file}"></li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="policy" data-src="http://www.remotewebsite.com/folder/policy.xml"></li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
...XMLList
<li data-type="postload" id="{postload id: case sensitive, no spaces}" ></li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="postload" id="postloaddata">
<ul id="introcontent">
<li data-type="htmlfield" id="sometext" data-width="400">
<span class="foo">Welcome Folks<br />Welcome to UltraLoader</span>
<br /><img src="img/testimage0.jpg" width="359" height="316" alt="" id="testimage"/> <br />
<br /><img src="img/testimage0.jpg" width="359" height="316" alt="" id="testimage2"/> <br />
</li>
</ul>
<ul id="musicphoto">
<li data-type="image"><img src="img/testimage0.jpg" width="359" height="316" alt="" id="testimage3"/></li>
<li data-type="string" id="sometext2">someText here for now</li>
<li data-type="xml" id="somexml" data-src="xml/test.xml?teste=foo&bar=test"></li>
<li data-type="policy" data-src="http://www.website.com/folder/policy.xml"></li>
<li data-type="sound" id="testsound" data-src="snd/test.mp3"></li>
<li data-type="sound" id="testsound2" data-src="snd/test2.mp3" data-policy="true"></li>
</ul>
<ul id="videos">
<li data-type="video" id="testvid" data-src="vid/test.flv" data-width="320" data-height="240"></li>
<li data-type="video" id="testvid2" data-src="http://video.ak.facebook.com/31552_33358.flv" data-width="320" data-height="240"></li>
</ul>
<ul id="animationswfs">
<li data-type="policy" data-src="http://www.adifferent-website.com/subfolder/policy.xml"></li>
<li data-type="flash" id="testswf" data-src="swf/AnimationTest2.swf"></li>
<li data-type="flash" id="testswf2" data-src="swf/AnimationTest.swf?foo=bar"></li>
</ul>
</li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access postloaddata in one of 3 ways:
var postLoadData:XMLList = ulObj.page3.anythingyouwant.postloaddata; // or
//var postLoadData:XMLList = ulObj.page3.$postload.postloaddata; // or
//var postLoadData:XMLList = ulObj.$postload.postloaddata;
...
for each(var postLoadDataItem:XMLList in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var postLoadDataItem:XMLList in ulObj.page3.$postload){...
// contains all postload assets in ulObj.page3
for each(var postLoadDataItem:XMLList in ulObj.$postload){...
// contains all postload assets in ulObj
com.pcthomatos.ultraloader.types.ULSound
<li data-type="sound" id="{sound id: case sensitive, no spaces}" data-src="{path to sound file}" [data-policy="{true|false}"]></li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="sound" id="dingsound" data-src="snd/ding.mp3" data-policy="true"></li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access dingsound in one of 3 ways:
var dingSound:ULSound = ulObj.page3.anythingyouwant.dingsound; // or
//var dingSound:ULSound = ulObj.page3.$sound.dingsound; // or
//var dingSound:ULSound = ulObj.$sound.dingsound;
...
for each(var snd:ULSound in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var snd:ULSound in ulObj.page3.$sound){...
// contains all sound assets in ulObj.page3
for each(var snd:ULSound in ulObj.$sound){...
// contains all sound assets in ulObj
String
<li data-type="string" id="{string id: case sensitive, no spaces}">[{text}]</li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="string" id="longstring">
Lots of Copy
</li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access longstring in one of 3 ways:
var longString:String = ulObj.page3.anythingyouwant.longstring; // or
//var longString:String = ulObj.page3.$string.longstring; // or
//var longString:String = ulObj.$string.longstring;
...
for each(var str:String in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var str:String in ulObj.page3.$string){...
// contains all string assets in ulObj.page3
for each(var str:String in ulObj.$string){...
// contains all string assets in ulObj
flash.text.TextField
<li data-type="textfield" id="{textfield id: case sensitive, no spaces}" [data-width="{number: default is 100}"] [data-align="{NONE|CENTER|LEFT|RIGHT: default is LEFT}"]>[{text}]</li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="textfield" id="longtext" data-width="100" data-align="LEFT">
Long Text Copy
</li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access longtext in one of 3 ways:
var longText:TextField = ulObj.page3.anythingyouwant.longtext; // or
//var longText:TextField = ulObj.page3.$textfield.longtext; // or
//var longText:TextField = ulObj.$textfield.longtext;
...
for each(var tf:TextField in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var tf:TextField in ulObj.page3.$textfield){...
// contains all textfield assets in ulObj.page3
for each(var tf:TextField in ulObj.$textfield){...
// contains all textfield assets in ulObj
Usage:
Example:
com.pcthomatos.ultraloader.types.ULVideo$video.netConnection and $video.onNetStatus$video.netConnection
Usage:
<li data-type="video" id="{video id: case sensitive, no spaces}" data-src="{path to video file}" [data-width="{number: default is 320}"] [data-height="{number: default is 240}"] [data-policy="{true|false}"]></li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="video" id="wowvideo" data-src="vid/wow.flv" data-width="320" data-height="240" data-policy="true"></li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access wowvideo in one of 3 ways:
var wowVideo:ULVideo = ulObj.page3.anythingyouwant.wowvideo; // or
//var wowVideo:ULVideo = ulObj.page3.$video.wowvideo; // or
//var wowVideo:ULVideo = ulObj.$video.wowvideo;
...
for each(var videoItem:ULVideo in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var videoItem:ULVideo in ulObj.page3.$video){...
// contains all video assets in ulObj.page3
for each(var videoItem:ULVideo in ulObj.$video){...
// contains all video assets in ulObj
XMLList
<li data-type="xml" id="{xml id: case sensitive, no spaces}" data-src="{path to xml file}"></li>
[]: optional
{}: user defined
var ulObj:Object = { init:true };
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
var ULNode:XMLList = XMLList(
<ul id="anythingyouwant">
<li data-type="xml" id="anxmlfile" data-src="xml/test.xml"></li>
</ul>
);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoadAndRender_Listener);
ultraLoader.load("page3", ULNode);
function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
//You can access anxmlfile in one of 3 ways:
var anXMLFile:XMLList = ulObj.page3.anythingyouwant.anxmlfile; // or
//var anXMLFile:XMLList = ulObj.page3.$xml.anxmlfile; // or
//var anXMLFile:XMLList = ulObj.$xml.anxmlfile;
...
for each(var xmlItem:XMLList in ulObj.page3.anythingyouwant){...
// contains all assets in the ulObj.page3.anythingyouwant block
for each(var xmlItem:XMLList in ulObj.page3.$xml){...
// contains all xml assets in ulObj.page3
for each(var xmlItem:XMLList in ulObj.$xml){...
// contains all xml assets in ulObj
| Method | Defined by | ||
|---|---|---|---|
|
UltraLoader(ul:Object, onlyLoadBuffer:Boolean = false, dispObjP:DisplayObjectContainer = null, preloaderClassP:Class = null, loaderTextColorP:uint = 0xFFFFFF, loaderBytesColorP:uint = 0xFF6666, loaderBarColorP:uint = 0x66FF66, loaderBarBorderColorP:uint = 0x666666)
Defines the
UltraLoader Object (parameter: ul) that will contain all the loaded assets and the loader screen's color settings. | UltraLoader | ||
|
load(pageIdP:String, ulNodesP:XMLList, finalLoadP:Boolean = true):void
Loads in UL XML data into UltraLoader
| UltraLoader | ||
| Constant | Defined by | ||
|---|---|---|---|
| LOAD_REQUEST_COMPLETE : String = "ultraLoaderComplete" [static]
The
UltraLoader.LOAD_REQUEST_COMPLETE constant defines the value of the type property of the event object for a ultraLoaderComplete event.Once this event is triggered you can set your ultraloader instance to null. | UltraLoader | ||
| UltraLoader | () | constructor |
public function UltraLoader(ul:Object, onlyLoadBuffer:Boolean = false, dispObjP:DisplayObjectContainer = null, preloaderClassP:Class = null, loaderTextColorP:uint = 0xFFFFFF, loaderBytesColorP:uint = 0xFF6666, loaderBarColorP:uint = 0x66FF66, loaderBarBorderColorP:uint = 0x666666) Defines the UltraLoader Object (parameter: ul) that will contain all the loaded assets and the loader screen's color settings.
ul:Object — ul A non null storage object.For example: public static var ul:Object = { init:true }; This Object will contain all of the assets loaded in with UltraLoader. |
|
onlyLoadBuffer:Boolean (default = false) — onlyLoadBuffer Enables or disables the preloading of a sound's buffer (8 seconds) or the entire sound.If set to true, UltraLoader loads faster. UltraLoader waits until enough sound is buffered and dispatches an UltraLoader.LOAD_REQUEST_COMPLETE Event, while the rest loads in the background.If set to false, UltraLoader will not complete until sounds are fully loaded. Best used on unreliable servers. |
|
dispObjP:DisplayObjectContainer (default = null) — An instance of DisplayObjectContainer (Sprite, MovieClip, Stage).*Note: If DisplayObjectContainer is not passed the preloader will not display. |
|
preloaderClassP:Class (default = null) — preloaderClassP Sets a preloader Custom Class so you can design your own. But it must implment ULPreloaderInterface. Other preloader parameters are ignored when a custom class is used. |
|
loaderTextColorP:uint (default = 0xFFFFFF) — loaderTextColorP Sets the preloader text color for the preloader status text ("Initializing Loader", "Loading..."). |
|
loaderBytesColorP:uint (default = 0xFF6666) — loaderBytesColorP Sets the preloader text color for the bytes loaded / bytes total text. |
|
loaderBarColorP:uint (default = 0x66FF66) — loaderBarColorP Sets the preloader loader bar color. |
|
loaderBarBorderColorP:uint (default = 0x666666) — loaderBarBorderColorP Sets the preloader loader bar border color. |
See also
| load | () | method |
public function load(pageIdP:String, ulNodesP:XMLList, finalLoadP:Boolean = true):voidLoads in UL XML data into UltraLoader
ParameterspageIdP:String — pageIdP A superNode identifier. This helps classify UL XML data from different source files. |
|
ulNodesP:XMLList — ulNodesP A UL XML List containing asset information. |
|
finalLoadP:Boolean (default = true) — finalLoadP A flag to determine when actual loading should commence.If set to true, the default, UltraLoader will commence loading.If set to false, UltraLoader will only append data to the queue. *Note: Loading will not commence until a load call has the finalLoadP parameter set to true. |
UltraLoader load call:
...
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
ultraLoader.load("index", ulXMLData);
}
private function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
...UltraLoader load calls:
...
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
ultraLoader.load("page1", ulXMLData1, false);
ultraLoader.load("page2", ulXMLData2, false);
ultraLoader.load("page3", ulXMLData3); // or explicitly ultraLoader.load("page3", ulXMLData3, true);
}
private function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
...| LOAD_REQUEST_COMPLETE | constant |
public static const LOAD_REQUEST_COMPLETE:String = "ultraLoaderComplete"
The UltraLoader.LOAD_REQUEST_COMPLETE constant defines the value of the type property of the event object for a ultraLoaderComplete event.
Once this event is triggered you can set your ultraloader instance to null.
...
var ultraLoader:UltraLoader = new UltraLoader(ulObj);
ultraLoader.addEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
}
private function killLoader_Listener(e:Event):void {
e.currentTarget.removeEventListener(UltraLoader.LOAD_REQUEST_COMPLETE, killLoader_Listener);
...