AS3 Preloader
I have built a Pre-Loader for my RSS feed project. I have
tried the example of a remote loader from the gotoandlearn()
tutorials, but I need a ActionScript3 loader built in the same
timeline.
I have read and tried many tutorials on this but none work.
All my information loads in Frame1 no matter how I set the linkage
in my components or my global settings. Could someone have a look
at this FLA and tell me what I am doing wrong? Forrest.
OK, but when I use contentLoaderInfo I get;
TypeError: Error #1010: A term is undefined and has no
properties.
at TS_cwiki_330x420_fla::MainTimeline/frame1()
I should say that it "works" the way I had it, but it doesn't
preload anything. What I need it to do is show the loading
animation bar while the RSS to load and populate the text fields
and the UILoaders in frame 1 and then go to Frame 2.
I would really like to post this FLA for you to have a look
at.
Similar Messages
-
As3 preloader problem - Captivate5
Hello all,
Been searching around for this for a bit in a the forums and cant find anything on it here goes:
I have a project that i built with a ToC for my company. And i have a as3 preloader as well.
Problem:
Preloader is fine and centered in the middle of my project with out a ToC but when i add the Toc the preloader will not center in my project i have tried to alter it in the html file insterting <center> tags and such and also externalizing the skin or FMR SWF also removing and placing it back in and not getting a fix for it. I realize this maybe a simple fix but i cant find anything in the forums here discribing exactly this issue.
can anyone help
thanx
bobbyHi,
Going out on a stretch here but did you, by any chance, added external swf or widgets that would have set the values of either Stage.scaleMode or Stage.align. That could explain the effects you are seeing.
Whyves
www.flash-factor.com -
Hi,
Is there a surestarter preloader in AS3 with CS4? Meaning here, showing a progress bar or percentage value before loading the main swf, right away at the start of the loading.
I tried 3 different versions:
1- I used the code from a video (and accompanying files), and simply changed the content.swf to my own swf file (rename my swf content.swf), so that the original code would load my swf instead of the original content.swf. (original content.swf was too small to see anything before loading, because my loading speed is too fast).
Here is the code from the original preloader (loads a small swf which then loads the main swf file):
var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("content.swf"));
function loop(e:ProgressEvent):void
var perc:Number = e.bytesLoaded / e.bytesTotal;
percent.text = Math.ceil(perc*100).toString();
function done(e:Event):void
removeChildAt(0);
percent = null;
addChild(l);
and here is the link to the file:
http://www.raidcanada.com/preloader-org-test.html
2- used the code suggested, which does the preloading directly in the main swf file:
stop();
//Import the required assets
import flash.display.*;
//Stop the playhead while loading occurs
this.stop();
//Create a listener to call the loading function as the movie loads
this.loaderInfo.addEventListener (ProgressEvent.PROGRESS, PL_LOADING);
/*This is the main function, basically it grabs the total and loaded bytes,
calculates a percentage, and displays it by stretching the bar and adjusting
the textfield display. If your bar/textbox instancenames are NOT lbar/lpc,
you'll need to adjust this code to match your instance names*/
function PL_LOADING(event:ProgressEvent):void {
var pcent:Number=event.bytesLoaded/event.bytesTotal*100;
//Stretch the bar
lbar.scaleX=pcent/100;
//Display the % loaded in textfield
lpc.text=int(pcent)+"%";
//If the movie is fully loaded, kick to the next frame on the main timeline
//You may wish to change the gotoAndStop(2) to a gotoAndPlay(2)
if(pcent==100){
this.gotoAndPlay(2);
This one doesn't work either, and if you refresh the page, you get only the bar, instead of refreshing the main swf.
http://www.raidcanada.com/test/test-2.html
3- use the code suggested to replace the preceding version:
stop();
addEventListener(Event.ENTER_FRAME,checkLoad);
function checkLoad(e:Event):void {
var pcent:Number=this.loaderInfo.bytesLoaded /this.loaderInfo.bytesTotal*100;
lbar.scaleX=pcent/100;
lpc.text=int(pcent)+"%";
if (pcent==100) {
removeEventListener(Event.ENTER_FRAME,checkLoad);
this.gotoAndPlay(2);
This one loads correctly (without the percentage or progress bar) and the refresh is OK.
http://www.raidcanada.com/test/test-1.html
The idea is to have this page load correctly showing a percentage sign and a progress bar until the loading is complete for this page:
http://www.raidcanada.com/entete-multi-hiver-1-test.html
Every time I test the swf directly in Flash CS4 with the simulated download, I get the progress bar and percentage correctly.
I also tried with Firefox and get the same results.
FLAs are at:
http://www.raidcanada.com/test/test-1.fla
http://www.raidcanada.com/test/test-2.fla
and screenshots of FLASH (showing the progress bar in "test movie" with simulated download):
http://www.raidcanada.com/test/screenshot-test-1.jpg
http://www.raidcanada.com/test/screenshot-test-2.jpg
Am I missing something?
THank you in advanceHi,
I am using Internet Explorer 8, version 8.0.7600.16385 with Windows 7 Ultimate or Firefox 3 version 3.5.9
If I flush the cache and load the page:
http://www.raidcanada.com/entete-multi-hiver-1-test.html
It takes about 5 seconds with a blank screen before I get the main swf displayed.
If I load the page: http://www.raidcanada.com/test/test-1.html
It takes about 1 second with a blank screen before I get the main swf displayed. The main swf file is much smaller.
I also did a lot of tests, and still the same problem. Temporarely, on the production site, I ended up installing a static Image saying "Loading", without the code, which then loads the large swf. But some customers are seeing the "Loading" for 14 sec to 24 seconds, depending of the swf file.
I know the code suggested is probably working with CS3 and AS2, but I need to make it work with CS4 and AS3, because my other code is all in AS3, built with CS4. As I said before, if I make a simulation, the simulation is perfect.
Thanks -
Flash CS5 AS3 Preloader Issues
Hi.
I'm a complete novice with Flash and at risk at looking like 'Dumbest Poster of the Year', I'm requesting help/advic over a couple of issues.
My first concern is with a very simple preloader I've made for a movie. Here is the code (posted in first frame of movie; nothing else is in the frame except for the preloader itself):
import flash.events.Event;
stop();
addEventListener(Event.ENTER_FRAME, loaderF);
function loaderF(e:Event):void{
var toLoad:Number = loaderInfo.bytesTotal;
var loaded:Number = loaderInfo.bytesLoaded;
var total:Number = loaded/toLoad;
if(loaded == toLoad) {
removeEventListener(Event.ENTER_FRAME, loaderF);
gotoAndPlay(2);
} else {
PreLoader.PreLoaderFill.scaleX = total;
PreLoader.PercentLoaded.text = Math.floor(total*100) + "%";
When I simulate a download, the preloader works fine in all the settings except for 'T1'. On this setting, the movie loads to about 20% then the preloader stops, the movie begins and I receive the following error message in the output panel:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at FlashFront1_fla::MainTimeline/loaderF() .
The movie itself plays fine on all settings, including 'T1'. Debug doesn't report any issues on preloader or movie.
Can anybody give me any idea what the source of the issue is? Should I even be concerned about it givne that the movie plays without a problem?
My second question relates to the 'Simulate Download' pre-settings in Flash. I know their are people out there still on 56K dial-up, or with 'broadband' running at 500 KBS (in the UK at least), but nevertheless, the download simulation settings seem like they are all geared to internet as it was in 1997 and are hardly reflective of the capacity of modern connections. Why is this?
My movie is not large (about 320KB). Should I even be bothering with a preloader or am I wasting my time for a small minority audience (much like the web designers who still produce sites for the 12 people in the world still browsing in 800 x 600 res)?
Thanks for any help/advice.Flash movies stream down and finish "loading" when the first frame and content that loads on the first frame is available, though frame 1001 might not be downloaded yet. You would think you'd be kinda safe with frame 2 on a T1, but I think the issue is things aren't updating in the right order rather than things not really being downloaded. Heck, it could even just be the T1 simulation that's causing problems.
Debug Movie probably isn't showing issues because it slows the timing enough to make everything ok. You could try trace statements too to see how far the code gets.
Also, you might try a full scale AS3 loader like this one http://www.republicofcode.com/tutorials/flash/as3loader/
I've found the Event.COMPLETE listener for the loader like this:
my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoading);
to be pretty accurate so far in regards to content truly being loaded where as previous methods gave false positives for loading. -
HELP - Add a skip intro btn to AS3 preloader
Hello, I'm a bit of a newbie to AS3 and new some help!
I've created a preloader.swf that (when loaded) loads an external swf. I would also like to add a skip intro btn, but when I do, the preloader seems to loop over and over (blinking - I know, high tech).
This is the preloader code. I have it in the first frame of the preloader.swf:
stop();
var myRequest:URLRequest = new URLRequest("flash/index.swf");
var myLoader:Loader = new Loader();
myLoader.load(myRequest);
myLoader.contentLoaderInfo.addEventListener(Event.OPEN,showPreloader);
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,showProgress);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,showContent);
var myPreloader:Preloader = new Preloader();
function showPreloader(event:Event):void {
addChild(myPreloader);
myPreloader.x = stage.stageWidth/2;
myPreloader.y = stage.stageHeight/2;
function showProgress(event:ProgressEvent):void {
var percentLoaded:Number = event.bytesLoaded/event.bytesTotal;
myPreloader.loading_txt.text = "Loading - " + Math.round(percentLoaded * 100) + "%";
myPreloader.bar_mc.width = 198 * percentLoaded;
function showContent(event:Event):void {
removeChild(myPreloader);
addChild(myLoader);
On it's own, it works fine.
Then I added a MC with the instance name "skipIntro", and then added this script to the script above:
skipIntro.addEventListener(MouseEvent.CLICK, fl_ClickToGoToWebPage_2);
function fl_ClickToGoToWebPage_2(event:MouseEvent):void
navigateToURL(new URLRequest("/residences/residences.php"), "_blank");
Any help? Thanks.There doesn't appear to be anything wrong with the code. Does it start behaving correctly again if you comment out that code? Do you get any error messages? The behavior you describe (looping/blinking) is indicative of an unhappy processor.
-
AS3 Preloader matching stage.stageWidth (simple)
Hello,
Experimenting with Flash as usual.
Preloader's are always something that have caused me trouble.
Here's what I typically use for a timeline based preloader in AS3:
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(e:Event):void {
var total:Number = this.stage.loaderInfo.bytesTotal;
var loaded:Number = this.stage.loaderInfo.bytesLoaded;
loadBar.scaleX = loaded/total;
loaderText.text = Math.floor((loaded/total)*100)+ "%"; (if percentage text is wanted)
if (total == loaded) {
gotoAndPlay(3);
this.removeEventListener(Event.ENTER_FRAME, loading);
This works perfectly well, but isn't that pleasing aesthetically.
I'm really interested in a preloader that loads right across the stage however - regardless of if the stage is resized.
I should imagine it'll involve implementing = Math.round(stage.stageWidth); at some point?
If anybody knows how this is achieved, through actionscript, in the timeline, I'd really appreciate the support
Thanks a lot!I haven't been able to make this work straight away with this code:
var lbW:Number
var stageW:Number
var ratioNum:Number
resizeF(null);
stage.addEventListener(Event.RESIZE,resizeF);
function resizeF(e:Event){
lbW = loadBar.width
stageW = stage.stageWidth
ratioNum = stageW/lbW;
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(e:Event):void {
var total:Number = this.stage.loaderInfo.bytesTotal;
var loaded:Number = this.stage.loaderInfo.bytesLoaded;
loadBar.scaleX = ratioNum*loaded/total;
if (total == loaded) {
gotoAndPlay(2);
this.removeEventListener(Event.ENTER_FRAME, loading);
But I shall explore and try and fix it.
Thanks so much for your time and expertise!
Really do appreciate it! -
Is there an easier way to create a custom preloader animation
in AS3? The
only information I can find on the web tends to have about
two pages of code
with stuff like "packages" and "public/private functions"
which I've never
used and unfortunately do not understand. The idea seems
simple to me [(var
ratio = (bytesLoaded/bytesTotal)*100) then have a movie clip
(load_mc) one
hundred frames long displaying 00-99 respectively for each
frame. Then find
some way to call a function that says
[load_mc.gotoAndStop(ratio);]. I've
seen AS2 tutorials on this subject and they all kinda follow
this general
idea. Why then in AS3 do you need two pages of code for an
action that
required 5 or 6 lines of code in a previous version of
ActionScript (AS2)?
No..no...sorry that's not my question. **sighs** I just need
to know if
there is an easier-to-understand method to creating
prealoaders in AS3? I'm
making an intro movie for a new website and the final swiff
will probably be
close to 1 MB so I want to display a simple loading animation
instead of a
blank screen. Any help is greatly appreciated.Yes, AS3 can look very complex, and many times it is. You
don't need to create packages to use AS3. You can, but you don't
have to. Writing classes in packages allow you to create libraries
of reusable code. You can just write code that will work for you in
a frame script space in a layer of your movie. In many cases, and
for simple movies, this works just fine.
To create a preloader animation, you can use the UILoader and
ProgressBar classes. You can also use the Loader class. Here's an
example that uses the Loader class: -
AS3 Preloader (without Flex SDK or Flash CS)
I use FlashBuilder but not the Flex SDK, just pure Actionscript. I have a swf application that is too long to download, so I would like to display a progressbar while the swf is being downloaded from the host.
My main class is a Sprite. I tried to add a progressEvent.PROGRESS listener on root.loaderInfo in the constructor of my main Sprite, but then a PROGRESS event is fired only when all the swf is downloaded. Useless.
On a Flex project, you have a Preloader included in the main Application, that displays a progressBar while the application swf is being downloaded from the server and initializing.
That's what I want.
Does someone understand how the Flex Preloader works ?
Do you know how to do that without Flex SDK ?Here is the Preloader class :
public class Preloader extends MovieClip
public function Preloader()
super();
stop();
if (root && root.loaderInfo)
root.loaderInfo.addEventListener(Event.INIT, initHandler, false, 0, true);
private function initHandler(e:Event):void
root.loaderInfo.removeEventListener(Event.INIT, initHandler);
displayProgressBar();
root.loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler, false, 0, true);
root.loaderInfo.addEventListener(Event.COMPLETE, completeHandler, false, 0, true);
private function progressHandler(e:ProgressEvent):void
displayProgressBar(e.bytesLoaded, e.bytesTotal);
private function completeHandler(e:Event):void
root.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
root.loaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
removeProgressBar();
nextFrame();
var mainClass:Class = Class(getDefinitionByName("MainApplication"));
if(mainClass)
var app:Sprite = new mainClass();
stage.addChild(app);
stage.removeChild(this);
private function displayProgressBar(bytesLoaded:int = -1, bytesTotal:int = -1):void
// add a progressBar and display the progress
private function removeProgressBar(bytesLoaded:int = -1, bytesTotal:int = -1):void
// remove the progressBar -
Clarification on as3 preloader
If I am loading an external .swf to my main movie, is the preloader in the main movie, or the first frame of the loading swf?
it can be either, but it's usually best to put the preloader in the swf that contains the loading code.
-
Can someone kindly show me/point me into the right direction on as to how to make a custom preloader. But the thing is i want it inside of a URL function.. Which is where im struggling. Can someone help? Many thanks.
I don't see anything in there that resembles an attempt to build a preloader and still cannot determine what you are referring to as a URL function. One thing I will suggest is that you break up your loader code a bit so that you assign the event listeners to it before you start loading as shown below. Cramming a series of operations into one line is not always the best way to go...
var urlReq:URLRequest = new URLRequest("https://api.twitter.com/1/statuses/user_timeline.json?screen_name=Scot tMitchell");
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loadComplete);
loader.addEventListener(ProgressEvent.PROGRESS, progressHandler);
loader.load(urlReq);
If you look in the Flash help documentation in the URLLoader class section, at the very end of that section it shows a variety of events being coded, including the PROGRESS event that I added above. That may help you get a better start on what you want to do. -
I have been trying to make my simple animated preloader work and am just about ready to throw in the towell.
import flash.events.ProgressEvent;
import flash.events.Event;
import flash.net.URLRequest;
myLoader.addEventListener(Event.COMPLETE, onComplete);
myLoader.addEventListener(ProgressEvent.PROGRESS , onProgress);
function onProgress(e:ProgressEvent):void
var pct:Number = e.bytesLoaded / e.bytesTotal;
function onComplete(e:Event):void
preloader_mc.X = -1000;
myLoader.load(new URLRequest("D.swf"));
PLEASE HELP!!!!!use:
import flash.events.ProgressEvent;
import flash.events.Event;
import flash.net.URLRequest;
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS , onProgress);
function onProgress(e:ProgressEvent):void
var pct:Number = e.bytesLoaded / e.bytesTotal;
function onComplete(e:Event):void
preloader_mc.X = -1000;
myLoader.load(new URLRequest("D.swf")); -
I've been searching for guides/tutorials, basically any sort of help in making a preloader for a game. Also looked through previous posts on this forum.
Whenever I have a preloader made without any errors and I click test movie (ctrl-enter), it skips the preloader and goes straight to my game's menuscreen. Fair enough, so I click simulate download, the window turns white, after that it turns grey with 3 or 4 dots blinking, as if it were a preloader, except not mine, after a while it goes into my games menuscreen again, completely bypassing the preloader.
A walkthrough for a simple preloader (just a percentage going from 0 to 100), some code I can copy-paste, anything to make it work, I've tried all I can think of.
/beg for help.that code's in frame 1 of your main timeline, correct? if yes, copy the trace output using the following and paste it here:
stop();
trace(this.currentFrame,this);
import flash.events.ProgressEvent;
import flash.events.Event;
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoading);
this.loaderInfo.addEventListener(Event.COMPLETE, onComplete);
function onLoading(evt:ProgressEvent):void {
var loaded:Number = evt.bytesLoaded / evt.bytesTotal;
loadbarText.text = "LOADING: " + (loaded*100).toFixed(0) + "%";
trace(loadbarText.text);
function onComplete(event:Event):void {
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onLoading);
this.loaderInfo.removeEventListener(Event.COMPLETE, onComplete);
loadbarText.visible = false;
gotoAndPlay(2); -
Please help me with an as3 preloader
Hi All,
I'm a flash noob and really need some help. I spent two full days trying to figure this out and I'm completely stuck.
I'm using a common preloader technique which basically uses one swf file (preloader.swf) to open another swf file (content.swf) using the following flash object:
var request:URLRequest = new URLRequest("content.swf");
It almost works but the progress never quite makes it to 100% but it suddenly stops around 85% and launches the video early. It screws up the timing and the video becomes out of synch with the audio.
Any help would be GREATLY apprecaited.
You can see what I mean here:
http://redwoodsmedia.com/help/preloader.html
Also the source files are included in this thread.
Thanks in advance.
PaxtonIf you include the code that is in that file you may get more help as some people cannot and others will not open files that people attach.
For the moment I'll suggest taking a look at the tutorial linked below to see if it is different than what you've done...
http://www.gotoandlearn.com/play?id=85 -
My project originally had everything on the timeline, but I have since moved all the code to the document class, but some of my assets are still in the library and some of them are embedded. I'm trying to make a self-preloader that doesn't use any external files, but I can't seem to find a good tutorial that doesn't involve using the timeline. Can anyone point me to a pure AS3 self-preloader tutorial or tell me where I'm supposed to put everything?
If you mean by "self-preloader" a pure Standalone as3 preloader:
var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
//this line has to be adapted to the name of your document class
l.load(new URLRequest("main.swf"));
function loop(e:ProgressEvent):void
var kBytesLoaded:int = Math.round(e.bytesLoaded/1024);
var kBytesTotal:int = Math.round(e.bytesTotal/1024);
var perc:Number = kBytesLoaded / kBytesTotal;
trace("PERCENT:"+perc);
function done(e:Event):void
//this line for the stuff you might need to visually communicate the loading process and want to remove when loading is done
removeChildAt(0);
addChild(l); -
Preloading in the swf itself AS3
Hello guys ;]
I need some help in AS3.
My problem is that I can't preload the content in the swf
movie itself.. I mean movie clips and images that are inside the
swf not external and so on.
In AS2 All I needed to do is this :
this.onEnterFrame = function() {
loadingAmount =
this.getBytesLoaded()/this.getBytesTotal()*60;
if (loadingAmount == 60 and sVars.loaded == true and
this.bigPicWidthsScript_mc.wVars.loaded == true) {
this.gotoAndStop(3);
delete this.onEnterFrame;
This is juat an example what used to work.. I copied this
part from a code I wrote time ago in AS2.
So all u had to do is put this code on frame 1 along with
some preloading graphics (small size), move all your movie clips u
want loaded before they actually show up and start your animation
to frame 2 as keyframe, and Put the ones who show up at the start
in your movie at frame 3 where you actually go when preloading is
finished.
So I want to do the same thing in AS3.. I've found tutorials
about preloading swfs images and so on but I don't need that.. I
need this one here.. so does anyone have any idea how to do that ?
I will be very grateful !
Waiting for replies,
Filip Nedyalkov
Also u had to set Export frame for classes = 2 (in the
publish settings),The reason you need it is because you are using the .text
property on a member of the _root object. (I'm guessing but it
wouldn't surprise me).
About the import statement
This is a personal philosophy and I'm open to valid
suggestion here but the Flash Player looks at your code and builds
a list of all the different classes that will be required at
run-time and need to included in the compressed swf. If you an
import like this....
import flash.display.*;
you are in theory including all of the classes inside of the
flash display package. This is not actually the case. Even if you
include the entire package in your code, all you are actually doing
is telling Flash that this path/package is available for searching
for the classes you are using in your document. Flash is only going
to include a list of "necessary" classes when it runs its compile
for your swf so keep that it mind. It is actually better to include
the entire package set in my opinion thus playing it safe.
It is a known bug and issue with preloading code inside
IE6(7?) that prevents any kind of update being pulled from the
browser concerning a files download. I've only had this issue in
IE7 myself but this doesn't affect me or work since I typically
only use the top level of a swf as a container for individual swfs
which I load in using the Loader class. You can read more about the
problem here (leads off to Actionscript.org forums with related
post on topic)...
http://pixelfumes.blogspot.com/2007/07/ie6-as3-preloader-events-failing.html
Maybe you are looking for
-
How can I transfer all my photos on MAC book pro in iphoto to a pc for back up and storage
How can I transfer all my photos on mac book pro in iphoto to my PC.
-
Dear All, I want to change my invoicing party from Eur0004 to Eur0002. I have go to user exit program and change the vendor code inside the program (means minor change). I reaactivate it back as well. When i create the IDOC all phase until last phase
-
Problem with exporting PDF from Indesign CS6
Hi, I recently registered & installed CS6 on my computer (Last week!), and I seem to have problems with Indesign, which is the main reason for my buying the product. The problem is that whenever I try to save & export a file as PDF from Indesign I ge
-
Lightroom not detecting Photoshop cs5
Lightroom 4 only detects Photoshop cs2, not cs5, so I can't jump over to cs5 for further editting. Is there an easy way to correct this? I assume it is because cs2 was installed after cs5 (don't ask, it wasn't me!)
-
How can I remove the "Show more bookmarks" button in the Bookmarks Toolbar?
I am using the location bar (address bar) and the bookmarks toolbar side by side and it is good that they are flexible. When I add a bookmark to the bookmarks toolbar, the address bar shrinks. But I do not see all the bookmarks on the bookmarks toolb