Progress Bar---
I came up with some code last night to make a progress bar update as
an image is loaded in my appliction. I have a few photo galleries and
other things, so I want the user to know that something is loading
rather than seeing a blank spot on the page... heres my code, you
might be able to use it.
There is then a progress bar in the application called progress and
an image called image. Make sure the progress bar's mode is set to
manual.
<mx:ProgressBar id="progress" width="200" x="250" y="25"
mode="manual" source="image" visible="true" barColor="#FF8000"/>
<mx:Image id="image" x="246" y="19" width="479" height="100%"
showEffect="{fadeIn}" scaleContent="true" autoLoad="false"/>
script----
import flash.events.Event;
import flash.net.URLLoader;
import flash.display.Loader;
import flash.net.URLRequest;
public var file:Loader = new Loader();;
public var fileURL:String = new String();
public var fileURLReq:URLRequest;
public function imageLoader():void{
image.visible=false;
progress.setProgress(0,100);
progress.visible=true;
progress.indeterminate=true;
fileURL=galSelTL.selectedItem.full;
fileURLReq = new URLRequest(fileURL);
file.load(fileURLReq);
file.contentLoaderInfo.addEventListener
(Event.OPEN, openHandler);
file.contentLoaderInfo.addEventListener
(ProgressEvent.PROGRESS, progressHandler);
file.contentLoaderInfo.addEventListener
(Event.COMPLETE, loadCompleteHandler);
}
private function openHandler(event:Event):void{
progress.indeterminate=false;
}
private function progressHandler
(event:ProgressEvent):void{
progress.setProgress
(event.bytesLoaded,event.bytesTotal);
}
private function loadCompleteHandler(event:Event):void
{
image.load(fileURL);
image.visible=true;
progress.visible=false;
}
good luck,
Jayson
--- In [email protected], "Giles Roadnight" <[EMAIL PROTECTED]>
wrote:
>
> I managed to do what I wanted in the by basing it on the examples
that you
> list and by looking at the examples on livedocs.
>
>
>
> This is what I ended up with:
>
>
>
> The only thing I couldn't get it to do was to make the progress bar
move as
> data is loaded but the file I am loading is very small so it loads
in a
> fraction of a second.
>
>
>
> package components
>
> {
>
> import mx.preloaders.*;
>
> import flash.events.ProgressEvent;
>
> import flash.events.Event;
>
> import flash.display.Sprite;
>
> import mx.events.FlexEvent;
>
> import mx.events.RSLEvent;
>
> import flash.net.URLRequest;
>
> import flash.net.URLLoader;
>
> import mx.core.Application;
>
>
>
> public class CustomPreloader extends DownloadProgressBar
>
> {
>
>
>
>
>
> public function CustomPreloader()
>
> {
>
> super();
>
> }
>
>
>
> // Override to return true so progress bar appears
>
> // during initialization.
>
> override protected function showDisplayForInit(
>
> elapsedTime:int, count:int):Boolean {
>
> return true;
>
> }
>
>
>
> // Override to return true so progress bar appears during
download.
>
>
> override protected function showDisplayForDownloading(
>
> elapsedTime:int, event:ProgressEvent):Boolean {
>
> return true;
>
> }
>
>
>
> private var _preloader:Sprite;
>
>
>
>
>
> override public function set
> preloader(value:Sprite):void
>
> {
>
> _preloader = value;
>
>
>
>
> value.addEventListener(ProgressEvent.PROGRESS,
progressHandler);
>
> value.addEventListener
(Event.COMPLETE,
> completeHandler);
>
>
>
>
> value.addEventListener(RSLEvent.RSL_PROGRESS, rslProgressHandler);
>
>
> value.addEventListener(RSLEvent.RSL_COMPLETE, rslCompleteHandler);
>
>
> value.addEventListener(RSLEvent.RSL_ERROR, rslErrorHandler);
>
>
>
>
> value.addEventListener(FlexEvent.INIT_PROGRESS,
initProgressHandler);
>
>
> value.addEventListener(FlexEvent.INIT_COMPLETE, FlexInitComplete);
>
> }
>
>
>
> private function FlexInitComplete
(event:Event):void
>
> {
>
>
>
> var configRequest:URLRequest =
new
> URLRequest("siteconfig.xml");
>
> var configLoader:URLLoader = new
> URLLoader(configRequest);
>
>
>
>
> configLoader.addEventListener("complete", configLoaded);
>
>
>
> //dispatchEvent(new
> Event(Event.COMPLETE));
>
>
>
> }
>
>
>
> private function configLoaded(e:Event):void
>
> {
>
> var appMain:Object =
> Application.application;
>
>
>
>
> appMain.appSettings.processConfig(e.currentTarget.data);
>
>
>
> dispatchEvent(new
> Event(Event.COMPLETE));
>
> }
>
>
>
> }
>
> }
>
>
>
> Giles Roadnight