Hey
I have a litte problem with my preloader. I want my loaderbar to be removed from the stage when the load is completed. I’m trying to do that with removeChild(_loaderBar);
It works with the textfield, but not with the loaderBar. Can anyone tell me why?
package {
import flash.display.*;
import flash.net.URLRequest;
import flash.events.*;
import flash.text.TextField;
public class test extends Sprite {
private var _loaderStatus:TextField;
private var _loaderBar:Sprite;
public function test() {
var loader:Loader = new Loader()
addChild(loader);
loader.contentLoaderInfo.addEventListener(Event.OPEN, handleOpen);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, showLoad);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest("okay.swf"));
}
public function loadBar(n:int):void{
_loaderBar = new Sprite();
_loaderBar.graphics.lineStyle();
_loaderBar.graphics.beginFill(0x000000);
_loaderBar.graphics.lineTo(n, 0);
_loaderBar.graphics.lineTo(n, 10);
_loaderBar.graphics.lineTo(0, 10);
_loaderBar.graphics.lineTo(0, 0);
_loaderBar.graphics.endFill();
_loaderBar.y = 30
_loaderBar.x = 40
addChild(_loaderBar);
}
private function handleOpen(event:Event):void {
_loaderStatus = new TextField();
addChild(_loaderStatus);
_loaderStatus.text = "Loading: 0%";
trace("open");
}
private function showLoad(event:ProgressEvent):void {
var percent:Number = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
trace(percent)
_loaderStatus.text = "Loading: " + percent + "%";
loadBar(percent);
}
private function onComplete(event:Event):void {
loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, showLoad);
trace("swf is loaded");
removeChild(_loaderBar);
removeChild(_loaderStatus);
_loaderBar = null;
_loaderStatus = null;
}
}
}