AS3 preloader - code overload
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:
Similar Messages
-
AS3 preoloader - code overload
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.I saw this first over in the AS1-2 forum. You'll find my
answer there. -
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 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 -
I am using the AS3 Copy Code as Motion. All works good but I need to listen when the motion is Ended or Complete. I looked through the help docs under AnimatorFactory and MotionBase but unable to find any Events on these two. What I want to do is listen for the Notion to be completed then do something. Any ideas?
Thanksthe animatorbase class has a motionend event.
-
Dynamically creating a AS3.0 code based on animations made at runtime
Hello everyone,
I am new to AS3.0 and always getting tasks that is very very challenging. Here is the challenge.
Need to create a flash application where the user can create animations using images(upload) and text dynamically and export to a swf file. This was my previous post and the answers from the forum members was "impossible - 95%" and "Possible - 5%" (my average calcu).
http://forums.adobe.com/thread/678202?tstart=0
Now i got an idea from the "Possible - 5%". That is
as per the discussion in the above link there are compliers that can create swf files from the command prompt using haxe, swfmill, neko etc etc. these requires a AS3.0 class file to get the output.
now my question is can we generate the AS3.0 code from the swf file where the animations using images, text are done on the runtime stage. after the user is done with his animations he can click publish btn were we need to create the AS3.0 code and send to the command promt for getting the swf file as output.
i think this task is quite hard. but any help regarding this will let me in a right direction.
thanks in adv for any helpsAssuming that WYSIWYG concept is valid, you are better off with Flex. Flex offers xml structure that you can use as template and just write values. Then this XML can be used by compiler as it is used in Flex.
In any case, this is a very tedious and advanced task you are embarking on. If you are talking about couple of objects and simple animations - it is not that bad. But if there is more - it is difficult mainly because of the multitude of use cases and exponential growth in objects relationships from both display list and user interaction standpoint.
I was a part of such project about 2 years ago and I see that one has to be an excellent UX engineer, very good architect and an advanced AS developer in order to make this kind of application worth pursuing. -
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. -
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! -
Website preloader code ?
Code help please !
Would anyone be kind enough to share AS3 code for a preloder.
I need my custom made progress wheel in frame 1 to act as a
preloader and navigate to frame 2 when the file fully loads.
Thanks,
Fred...My website is totally finished but the buttons don't work properly
on frame 1 unless the entire file is loaded. So I wanted to move everything
over a frame and put the custom made "progress wheel" movie clip
I created into frame 1 so it spins until the movie fully loads, then it
should
navigate to frame 2 which would now be the main page with the buttons.
Thank you for taking your time to try and help me.
Fred Hughes... -
Preloader Code: Error 1061
I bought a preloader on Flashden.com and it didn't come with much instruction.
Here is what I have done:
My index file has my timeline with actions, preloader, and then my movie clips for my opening page. I have placed my preloader movieclip in frame 1 and it ends on frame 2. In frame one on the actions layer I have stop();
I then have all of my movie clips on frame 3 with my actions for my movieclips on frame three. I added a name to frame 3 named index
My preloader movieclip has this code:
stop();
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(evt:Event):void
var percentageLoaded:Number = Math.round(this.stage.loaderInfo.bytesLoaded/ this.stage.loaderInfo.bytesTotal*100);
this.loaderInformation.loadingtxt.text = "Loading "+percentageLoaded+"%";
if(percentageLoaded>=100)
this.removeEventListener(Event.ENTER_FRAME, loading);
this.parent.gotoAndPlay("index");
When I test the file I get a 1061 Error saying Call to a possibly undefined method gotoAndPlay through a refernece with static type flash.disply:DisplayObjectContainer.
Any ideas on what I can do to correct this? I contacted the person I purchased it from but have not heard back yet.
Thank you!
Mariah DanielsenTry casting the parent as a MovieClip...
MovieClip(this.parent).gotoAndPlay("index"); -
Global vars in as3 and code run order
two questions:
1)how can i declare a global variable in as3, like in as2 i
could write for example :
_global.variableName = "variableValue"
and then access the var from anywhere.
2)how can i tell a part of the code from the root to run only
after the code ran in all the other movieclips when the swf loads?
thxAs far as the first irem goes... AS3 does not support the
_global reference. Just Google "AS3 _global" and you can probably
find a few options. Here's one result:
http://www.websitemediaplayers.com/blog/global-variables-as3/ -
I'm using the code from this tutorial for a preloader. Though I am not using a dynamic text field like the tutorial says.
I took the line referring to the dynamic text field out of the code, but it's still not working?
The animation has 2 frames with movie clips in each. One for the preloader and one for the main content.
Do I need to put somekind of stop or non-looping code in here so it doesn't go back to frame 1(preloader)??
http://schoolofflash.com/blog/2008/04/flash-cs3-tutorial-actionscript-3-preloader/
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
this.loaderInfo.addEventListener(Event.COMPLETE, onComplete);
function onProgress(e:ProgressEvent):void
var loaded:Number = e.target.bytesLoaded;
var total:Number = e.target.bytesTotal;
var pct:Number = loaded/total;
loader_mc.scaleX = pct;
function onComplete(e:Event):void
nextFrame();You would do well to have stop(); commands in both frames, though I believe nextFrame() includes a stop action in its landing procedure.
You might want to consider an alternative approach for a preloader design. Here's a link to another tutorial...
http://www.gotoandlearn.com/play?id=85 -
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.
-
Hello, I'm able to find AS2.0 code for a tooltip, but can't seem to find a simple one for AS3.0.
When the pointer hovers over a point on the map, a tooltip appears with the name of the city. I need to be able to change the city name depending on the point.
I appreciate anyone's help!// create one buttonObj for all your buttons
var buttonObj:Object={};
//////////////////////////////////////change nothing above ////////////////////////////////////
//the next 3 lines need to be done for all your buttons
buttonObj[yourbutton.name] = ["hello",2,2];
yourbutton.addEventListener(MouseEvent.MOUSE_OVER,addToolTipF) ;
yourbutton.addEventListener(MouseEvent.MOUSE_OUT, removeToolTipF);
////////////////////////////////////change nothing below/////////////////////////
function addToolTipF(e:MouseEvent):void{
var a:Array = buttonObj[e.currentTarget.name];
var tf:TextField=new TextField();
buttonObj[e.currentTarget.name].push(tf);
tf.text=a[0];
tf.multiline=false;
tf.autoSize="left";
tf.border=true;
addChild(tf);
tf.x=a[1]+e.currentTarget.x;
tf.y=a[2]+e.currentTarget.y;
function removeToolTipF(e:MouseEvent):void{
removeChild(buttonObj[e.currentTarget.name][3]);
buttonObj[e.currentTarget.name].splice(3,1);
Maybe you are looking for
-
OS 4.1 Tethering with windows "network cable unplugged"
wow, this just happened to me. Tethering was working for me yesterday. After my update to 4.1 (not sure if this has anything to do with it) it no longer works. The tethering network connection is there in my network connections, but it shows as disco
-
I use a mac ios and shoot raw in a cannon 5d mark ii and shortly upon import of my images lightroom darkens and changes my images. This has happened before but not every time. The strange part is my last shoot had the same camera setting but this did
-
THE REPORT SERVER INSTALLATION IS NOT INITIALIZED (rsReportServer NOT ACTIVATED)
HI ,i had my report server on SQL SERVER 2005,and for reporting service i am using the sql server reporting services 2008R2,i created a report which i am supposed to display in Website ,i created the rdl using the BIDS 2008 and , its throwing me an e
-
How to repost the file while getting an error
Hi Friends , this is shalini shah. Iam facing one problem from sender side(i.e file ) iam already send two files to IDOC, now one more file is sending to XI, here i faced problem.the third file got an error, it will be not posted to XI, so
-
Function Module ISU_TAX_CALC_ACTIVE_GET
Hi, While doing MIRO with respect to a PO, we are getting error "Function Module ISU_TAX_CALC_ACTIVE_GET does not exist" It is araising only when we use a particular Tax code and not with all. We are in 6.0. Please advise. Regards, Pavan.