This preloader is creating overlapping vertical not horizontal bars,
any ideas?
/* Custom Progress Bar */
package com.preloader {
// Imports
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.text.TextFormat
import mx.events.FlexEvent;
import flash.utils.Timer;
import mx.preloaders.IPreloaderDisplay;
import mx.preloaders.Preloader;
public class CustomProgress extends Sprite implements
IPreloaderDisplay {
private var _bgAlpha:Number;
private var _bgColor:uint;
private var _bgImage:Object;
private var _bgSize:String;
private var _stageHeight:Number;
private var _stageWidth:Number;
private var _downloadBar:Shape;
private var _initBar:Shape;
private var _initField:TextField;
private var _preloader:Preloader;
public function CustomProgress() {
_initField = new TextField();
_initField.defaultTextFormat = new TextFormat("Arial", 12,
0xFFFFFF, true);
_downloadBar = new Shape();
addChild(_downloadBar);
_initBar = new Shape();
addChild(_initBar);
}
// Initialize any properties upon display
public function initialize():void {
_downloadBar.x = (_stageWidth/2) - 20;
_initBar.x = _downloadBar.x -2;
_downloadBar.y = (_stageHeight/2) - 50;
_initBar.y = _downloadBar.y;
_initField.x = _initBar.x + 2;
_initField.y = _initBar.y + 100 -15;
}
// Define event handlers of the Preloader instance
public function set preloader(obj:Sprite):void {
_preloader = obj as Preloader;
_preloader.addEventListener(ProgressEvent.PROGRESS,
downloadProgressHandler);
_preloader.addEventListener(FlexEvent.INIT_PROGRESS,
initProgressHandler);
_preloader.addEventListener(FlexEvent.INIT_COMPLETE,
initCompleteHandler);
}
// Getters and Setters
public function get backgroundAlpha():Number { return _bgAlpha;
}
public function set backgroundAlpha(value:Number):void { _bgAlpha =
value; }
public function get backgroundColor():uint { return _bgColor; }
public function set backgroundColor(value:uint):void { _bgColor =
value; }
public function get backgroundImage():Object { return _bgImage;
}
public function set backgroundImage(value:Object):void { _bgImage =
value; }
public function get backgroundSize():String { return _bgSize; }
public function set backgroundSize(value:String):void { _bgSize =
value; }
public function get stageHeight():Number { return _stageHeight;
}
public function set stageHeight(value:Number):void { _stageHeight =
value; }
public function get stageWidth():Number { return _stageWidth; }
public function set stageWidth(value:Number):void { _stageWidth =
value; }
// Handle swf file download progress
private function
downloadProgressHandler(evt:ProgressEvent):void {
// Percent Loaded
var perc:Number = ((evt.bytesLoaded/evt.bytesTotal) *
100);
var top:Number = 100 - perc;
// Progress Bar
_downloadBar.graphics.clear();
_downloadBar.graphics.beginFill(0xFFFFFF, 1);
_downloadBar.graphics.moveTo(0, 0);
_downloadBar.graphics.lineTo(10, 0);
_downloadBar.graphics.lineTo(10, perc * 0.9);
_downloadBar.graphics.lineTo(0, perc * 0.9);
_downloadBar.graphics.lineTo(0, 0);
_downloadBar.graphics.endFill();
// Initializer Bar
_initBar.graphics.clear();
_initBar.graphics.beginFill(0xFFFFFF, 1);
_initBar.graphics.moveTo(0, 100);
_initBar.graphics.lineTo(2, 100);
_initBar.graphics.lineTo(2, top);
_initBar.graphics.lineTo(0, top);
_initBar.graphics.lineTo(0, 100);
_initBar.graphics.endFill();
_initBar.graphics
}
// Handle application initialization progress
private function initProgressHandler(evt:FlexEvent):void {
_initField.text = "INITIALIZING...";
addChild(_initField);
}
// Handle completion of download and initialization
private function initCompleteHandler(evt:FlexEvent):void {
var timer:Timer = new Timer(3000, 1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE,
notifyOfComplete);
timer.start();
}
// Notify of completion of download and initialization
private function notifyOfComplete(evt:TimerEvent):void {
dispatchEvent(new Event(Event.COMPLETE));
}
}
}