|
Creating preloaders
Large movies take a long time to load, especially for users who are not blessed
with a high speed broadband connection. Therefore just giving them a screen which
says loaded or just giving them nothing at all can leave them a little dazed and
wondering what to do. The solution - give them some feedback on what is being
loaded.
Movie modifications
The first thing you need to do is have an empty frame at the top. You don't
need anything else - just an empty frame before you content. If it's easier
you could even create a separate scene to house this frame. Make sure it's a
key frame and the next frame where you content begins is a key frame too.
Next create a text box which says loading, or the name of the movie or something
similar. This will be our loading object. It should only exist in that first
fame. Now with the object selected go to Insert > Convert to Symbol and save
it as a movie clip. I recommend the name 'preloader' but it has no affect what
so ever. It just makes it easier for you to identify it in the library.
The scripting
Now double click on your newly created movie clip and watch it zoom into editing
mode. There should currently only be one frame in the timeline now - extend
this to three by inserting two new frames. Call this layer text or graphic or
something similar. This layer will just remain the normal static text. The scripting
will go in a different layer - create a new one for the scripting and make each
of the three frames, key frames.
Now we have three key frames in the script layer which we can insert code to.
This is expert field so we need expert view on. If you're not working in expert
code view then open the actions panel and click the options view icon. It looks
like a little square with an arrow pointing to the top right hand corner. Then
click the line which says expert view rather than normal view. This will turn
the action scripts window into more of a text editor style window to allow us
to insert code.
The first thing we want to do here is to stop the main movie from going any
further before it's loaded. So click on the first frame in the script layer
and put the following code in:
_parent.stop();
This tells the main movie to stop. Generally commands like this use the model:
object.command. In this example the object is the main movie or _parent as its
known and the command is to stop it.
Now click on frame two of the script layer. He we are going to set some variables
so we can give the user feedback on how far the movie has loaded so far. We
do this by using a few functions built into ActionScript which allow us to get
certain values.
kBytesLoaded = getBytesLoaded()/1024;
kBytesTotal = getBytesTotal()/1024;
kBytesRemaining = kBytesTotal - kBytesLoaded;
percentLoaded = 100 * kBytesLoaded / kBytesTotal;
progress = Math.floor(percentLoaded) add "%";
This script works out what has been loaded and how much is to load and then
works out the percentage. It's a great script although I can't claim responsibility
for it. Insert this script into the second frame and that will give us plenty
of variables to work with.
Finally click on the third frame in the scripts layer. In here we check to
see if the movie has loaded and if it has we send them on their way. If not
we continue to loop and give them feedback on what has been loaded so far.
if (percentLoaded < 99){
gotoAndPlay(2);
} else {
_parent.play();
stop();
}
Here you can see if that if less the 99% has loaded then the movie is not fully
loaded then the movie clip is sent back to recalculated the variables. If 99%
or more has loaded then the movie clip is stopped and the main movie starts
again. I use 9% rather than 100% as if there is a little data left which cannot
be loaded it will never reach 100% and therefore loop for ever.
Giving feedback
Finally we need to tell the user what is going on. So create a new layer, call
it something like feedback. Then insert a text box. This will display the percentage
that has been loaded so far. This box needs to be set to dynamic. In Flash MX
you can change this in the properties box - look for the drop down menu saying
static text and change it to dynamic text.
Also look for the input text box which says var next to it. This stands for
variable and will let us make the text box fill with a variable we set. So in
the box write:
Progress
This will fill the box with the process variable telling the user what percentage
of the movie has loaded. You're done - hit Control + E to return to editing
the main movie. You can now export your movie save in the knowledge that users
will see how much percentage of the movie has been loaded.
|