Scene 1 is just to check if the bytes are loaded. This is only to check. IF the bytes ARE loaded already (as in you have already visited the site before and it is stored in your cache) you instrcut your movie to go straight to Scene 3, where you have the content of your movie.
IF the bytes AREN’T loaded, you instruct your movie to go to Scene 2, where a preloader will give you the progress of the bytes loaded. Flash plays the movie as it is loading, that’s why you have to create a looping sequence for your preloader. Because the content of Scene 1 is just some script (it will be less than 1kB) it doesn’t take long to load, so short in fact that the viewer won’t even realise that the movie is playing a blank frame. In the 2 milliseconds that the Flashplayer takes to load Scene 1, it will have read the script and executed it.
Here is my suggestion again:
SCENE 1 a script that says:
if(bytesLoaded = totalBytes){
gotoAndPlay(“Scene 3”, 1);
}else{
gotandPlay(“Scene 2”, 1);
}
where you include above that script either an action that gets the totalBytes (getBytesTotal) or you assign totalBytes a value (totalBytes = 76511516;)
SCENE 2 this has the preloader. Because Scene 1 is so small, it won’t take long before the player is ready to play Scene 2, where there is a looping sequence that stops the movie from continuing until all the bytes are loaded.
SCENE 3 this is your movie. At the end of Scene 2, your movie will go straight to Scene 3. The other way you got here was if the bytes were loaded in Scene 1 and it exectued the top part of the if condition.
In short, the preloader only plays if you visit Scene 2. But if the bytes are already loaded, it won’t visit Scene 2 because you told it not to in Scene 1.
Effectively, you have two preloaders, one that shows progress and one that just checks if the movie is loaded.
Savvy?