A Flash Developer Resource Site

Results 1 to 6 of 6

Thread: [RESOLVED] Preloader percentage increments [AS3]

  1. #1
    Member
    Join Date
    Apr 2008
    Posts
    65

    resolved [RESOLVED] Preloader percentage increments [AS3]

    Hi all,

    I am playing around with preloaders and I am wondering if the ActionScript can do one of the following.

    1. My Preloader has a text field that displays the percentage status. Is there a way to code the ActionScript where it will update the percentage number in increments of time by showing the percentage status every 2 seconds?

    2. Can the code be written to force the pre-loader to only show 10%, 20%, 30%, 40% and so on and not the inbetweens?

    If anyone knows how either of these could work, please share. thanks

    Here is my code:
    PHP Code:
    preloader_mc.stop();
    preloader_mc.visible=false;

    var 
    swf:String='test.swf';
    var 
    Request:URLRequest=new URLRequest(swf);
    var 
    loader:Loader=new Loader();

    loader.contentLoaderInfo.addEventListener(Event.OPEN,Preloader);
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,Progress);
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,Complete);
    loader.load(Request);

    function 
    Preloader(e:Event):void
    {
        
    preloader_mc.visible=true;
        
    preloader_mc.play();
    }

    function 
    Progress(e:ProgressEvent):void
    {
        var 
    percentage:uint=(e.bytesLoaded/e.bytesTotal)*100;
        
    preloader_mc.percentage1.loader_txt.text=percentage.toString()+' ';
    }

    function 
    Complete(e:Event):void
    {
        
    preloader_mc.stop();
        
    preloader_mc.visible=false;
        
    addChild(loader);


  2. #2
    Member
    Join Date
    Jan 2009
    Location
    Norway
    Posts
    37
    just replace the code with this:

    Code:
    preloader_mc.stop(); 
    preloader_mc.visible=false; 
    
    var swf:String='test.swf'; 
    var Request:URLRequest=new URLRequest(swf); 
    var loader:Loader=new Loader(); 
    
    loader.contentLoaderInfo.addEventListener(Event.OPEN,Preloader); 
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,Progress); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,Complete); 
    loader.load(Request); 
    
    function Preloader(e:Event):void 
    { 
        preloader_mc.visible=true; 
        preloader_mc.play(); 
    } 
    
    function Progress(e:ProgressEvent):void 
    { 
        var percentage:uint=(e.bytesLoaded/e.bytesTotal)*100;
    	if ((percentage % 10) == 0){
    	          preloader_mc.percentage1.loader_txt.text=percentage.toString()+' '; 
    	}
        preloader_mc.percentage1.loader_txt.text=percentage.toString()+' '; 
    } 
    
    function Complete(e:Event):void 
    { 
        preloader_mc.stop(); 
        preloader_mc.visible=false; 
        addChild(loader); 
    }

  3. #3
    Member
    Join Date
    Apr 2008
    Posts
    65
    Thanks for the reply. Which is this code supposed to do, 1 or 2? I see the change that you made but it still operates the same as it did before. Am I supposed to alter a numerical value in your code?

    thanks

  4. #4
    Señor Member Mavrisa's Avatar
    Join Date
    Oct 2005
    Location
    Canada
    Posts
    506
    set up the updating event in a timer:

    Code:
    preloader_mc.stop(); 
    preloader_mc.visible=false; 
    
    var swf:String='test.swf'; 
    var Request:URLRequest=new URLRequest(swf); 
    var loader:Loader=new Loader();
    var timer:Timer = new Timer(2000) // 2000 milliseconds is 2 seconds
    
    loader.contentLoaderInfo.addEventListener(Event.OPEN,Preloader); 
    timer.addEventListener(TimerEvent.TIMER, tick)
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,Complete); 
    loader.load(Request); 
    
    function Preloader(e:Event):void 
    { 
        preloader_mc.visible=true; 
        preloader_mc.play(); 
    } 
    
    function tick(e:TimerEvent):void 
    { 
        var percentage:uint=(loader.contentLoaderInfo.bytesLoaded/loader.contentLoaderInfo.bytesTotal)*100;
        percentage = Math.floor(percentage/10)*10 // divides the value by ten and floors it, then multiply by 10 to get a value rounded down to the nearest 10
        preloader_mc.percentage1.loader_txt.text=percentage.toString()+' '; 
    } 
    
    function Complete(e:Event):void 
    { 
        preloader_mc.stop(); 
        preloader_mc.visible=false; 
        addChild(loader); 
    }
    Hope that helps,

    Mavrisa
    Haikus are easy
    But sometimes they don't make sense
    Refrigerator

  5. #5
    Member
    Join Date
    Jan 2009
    Location
    Norway
    Posts
    37
    sorry, my bad.. it's number 2. and I forgot to remove one line of the code:P it should be:

    Code:
    preloader_mc.stop(); 
    preloader_mc.visible=false; 
    
    var swf:String='test.swf'; 
    var Request:URLRequest=new URLRequest(swf); 
    var loader:Loader=new Loader(); 
    
    loader.contentLoaderInfo.addEventListener(Event.OPEN,Preloader); 
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,Progress); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,Complete); 
    loader.load(Request); 
    
    function Preloader(e:Event):void 
    { 
        preloader_mc.visible=true; 
        preloader_mc.play(); 
    } 
    
    function Progress(e:ProgressEvent):void 
    { 
        var percentage:uint=(e.bytesLoaded/e.bytesTotal)*100;
    	if ((percentage % 10) == 0){
    	          preloader_mc.percentage1.loader_txt.text=percentage.toString()+' '; 
    	}
    } 
    
    function Complete(e:Event):void 
    { 
        preloader_mc.stop(); 
        preloader_mc.visible=false; 
        addChild(loader); 
    }

  6. #6
    Member
    Join Date
    Apr 2008
    Posts
    65
    thx all.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center