* update: the MovieClipLoader class is now a bonafide part of flash player 7. for complete information on the new class, see: Help > ActionScript Dictionary > MovieClipLoader. the new class requires flash player 7.
* update: ralf bokelberg has posted a flash player 6 implementation based on the class proposed in this petition. [download LoaderClass | read docs]
--
anyone who has tried to create a generic preloader for .swf files or .jpgs will almost certainly have horror stories to tell. if you do have such a story, please tell it here. this log entry's comments will constitute an official petition to macromedia to improve the state of content preloading in flash. i propose that a new api be created to make preloading generic and easy to use (see below). anecdotal evidence is good, real code examples are even better. please post your experiences.
here are just a few of the problems i have encountered:
1) when loadMovie() appears in a script, it doesn't execute until the end of the frame. this means preloading code must either wait a frame before it starts or try to detect whether the loadMovie() call has actually executed. neither workarounds are pretty.
2) there's no support for http server responses such as 404 (not found) or 403 (forbidden).
3) empty movie clips created at authortime have a byte size of 4. empty clips created with createEmptyMovieClip() have a byte size of 0. empty levels are undefined, and have a getBytesLoaded() return of undefined. hence most preloaders have to guess at a magic number when checking for loaded content...usually something like (loaded > 4 && loaded == total). this is arcane knowledge that an average developer shouldn't be required to know just to do something as fundamental as preload some content.
4) _framesloaded, _totalframes, getBytesLoaded(), getBytesTotal(), onLoad()....which to use??? the current system seems confusing and random to new flash programmers. only experts know how to preload content properly.
5) the MovieClip.onLoad() handler is wiped out by a loadMovie() call. hence, there's no object-oriented way to handle movie loading. there's not even a callback to respond to movie loading.
6) getBytesLoaded()/getBytesTotal() return the uncompressed size of the movie, which is not actually what's downloading (the movie might be compressed). download indicators that display bytes or kilobytes are often inaccurate because they show uncompressed sizes.
7) internet explorer and netscape have different getBytesLoaded() return values, as follows:
after loadMovie() appears in a script, getBytesLoaded() in the Standalone Player and Netscape returns:
-first 0
-then the real bytes loaded or
-eventually -1 if the file is not found.
but in Internet Explorer, getBytesLoaded() returns:
-first 0
-then -1
-then the real bytes loaded or
-eventually -1 if the file is not found
8) no ability to cancel a load in progress (for loadMovie(), XML, Sound, and LoadVars)
i'd like the flash community to stop wasting so much time on preloading. it's an important part of every single project, yet it's one of the least refined aspects of actionscript. for a sense of the backflips required to create a generic preloader, see my copiously commented "image loader w/ pan and zoom" at the code depot.
here's just a quick idea for a preloading API. i'm not trying to dictate what the final API should actually be...i'm just trying to show that there's a better way.
MovieClipLoader.onLoadStart()
MovieClipLoader.onLoadComplete()
MovieClipLoader.onLoadProgress (bytesLoaded,
bytesTotal,
kbLoaded,
kbTotal,
percentLoaded)
MovieClipLoader.loadClip(target, url)
MovieClipLoader.addListener()
MovieClipLoader.removeListener()
macromedia, please relieve developers everywhere of having to hack together their own loading systems that very often only partly work. thanks!!
colin moock (and the undersigned...)
Posted by moock at April 16, 2003 11:19 AMmy sincere thanks to all who added their thoughts to this petition. i think it clearly shows the need for better preloading. i've now sent the petition off to macromedia, so i'm closing the call for signatures. let's hope this makes a difference!
Posted by: colin at May 21, 2003 10:15 AMMM keep up the good work
Posted by: Ross Barkley at May 20, 2003 09:21 AMListen Macromedia :
- No professionnal apps without modularity
- No modularity without professionnal preloading
It's not only a technical issue.
The market has still to recognize Flash as a "real player" and not only as a funny environment.
We love your product. Please help us to help you.
We run into many problems that work fine when running on T1 lines but fail miserably on 56K modems. We are then forced to put in preloading loops to ensure that the items needed have been loaded. I agree a better preloading system would be a great idea.
Posted by: Kathy Manfredi at May 14, 2003 11:28 AMI think a best-practices piece on the different ways to preload embedded fonts, dynamic sound objects, components and other "Export on First Frame" related issues would be very helpful to the community. I spent nearly two weeks on a project trying to find a way around this very issue. It's not very well documented and without sites like moock and chatty fig, I'd have been hosed.
Posted by: Steven White at May 13, 2003 10:57 AMThis would make life so much easier...
Posted by: Weefselkweekje at May 13, 2003 05:48 AMDefinitely a good idea!
Posted by: Eric Wahlforss at May 10, 2003 09:16 AMIt's always frusted me that if you leave a flash movie to it's own devices - it will calculate the amount of a movie to be preloaded (buffered) before playback begins, but there is no way to access the API that performs this task!
I think we need to include a buffering system, this is becoming more important with the wide variety of bandwiths out there and the larger file sizes for individual files (like video) now being deployed on a more regular basis.
The inablility to terminate a download has also become quite bothersome - at times locking things up on IE, or having a movie begin playing after you have moved to another section.
Buffering, preloading, and the ability to terminate are big on my list.
Posted by: Wheels at May 9, 2003 08:11 PMA very welcome campaign that you've got going here.
I was absolutely astonished the first time I realised that the onLoad and onData event handlers get deleted when you actually decide to load some content into a movie clip (surely that's when you need them?!), and have always found the workaround solutions I've come up with to be cumbersome and ugly.
Any feedback from Macromedia about this?
Stephen
Posted by: Stephen Lewis at May 9, 2003 12:50 PMAggreeing here!
Posted by: Binary Man at May 9, 2003 04:34 AMsort it out
Posted by: at May 8, 2003 05:39 AMAmen!
Posted by: Serge at May 8, 2003 05:15 AMI definitly agree, Colin!
I've used onCLip(data) events with Flash5 to construct multiple movie preloaders and it all worked fine. Every data that came arrived via loadMovie was traceable. I was happy to see that with FlashMX one could use these new event handlers from within an action layer, leaving all the buttons and movieclips alone.
With just one problem.
But with the exception of the new loadVars object, I've never could use onData event handler with external movieclips or JPEG images. After a thorough web search I came to conclude that the onData event handler is deleted after calling an external movieclip (or jpeg) !!!
So this will never work:
//.------------------------
this.createEmptyMovieClip("myMovie", 1);
myMovie.onData = function () {
trace ( "DATA LOADED" );
}
myMovie.loadMovie("externalmovieclip.swf");
//---------------------------------------
Instead i'll have to use the 'ugly' onEnterFrame function wich (surprisingly) still works after loadMovie is used.
Posted by: Tiago Simões at May 7, 2003 10:07 PMYes, I agree ...
Posted by: Gedi at May 7, 2003 01:48 PMmost definately, I am banging my head against a wall with this at the moment... not helped by the Mac player bugs that mean we NEED to implement dodgy work around loading queues that can never operate properly due to the various glitches already noted on this page....grrrr
Posted by: Adam at May 7, 2003 11:46 AMYes, I completely agree. It's absolutely essential to fix these problems.
Thanks.
Colin, you are very right about this!
Posted by: Gert at May 7, 2003 06:38 AMWhat a preloading nightmare! Macromedia, fix this please!
Posted by: ProF at May 6, 2003 05:44 PMthis should be sorted asap
Posted by: DaveB at May 6, 2003 08:04 AMi'm your man !
Posted by: carton thomas at May 6, 2003 06:49 AMGreat call Colin!
Posted by: Dominic H, at May 6, 2003 05:43 AMGreat call Collin!
Posted by: Dominic H, at May 6, 2003 05:42 AMThen we'd have to ask our viewers to download another Flash player, but I'm all for it I'd rather they get it right at some stage as opposed to never. They (macromedia) also need to spend time improving the many bugs in the authoring environment as well.
Posted by: Mr Dougal at May 5, 2003 07:08 AMkewl .............:)
Posted by: gary at May 5, 2003 04:56 AMdo we have enough votes yet?
for what its worth, im on board too now.
Posted by: sam cuttriss at May 4, 2003 10:47 PMAgreed!
Posted by: Aron at May 4, 2003 12:31 PMmmm
Posted by: Steve Nelson at May 3, 2003 09:41 PM383 comments later - yep, I'm adding my support for this initiative as well.
Posted by: Steve Nelson at May 3, 2003 09:40 PMOf course, this is good idea.
Posted by: Kejmol at May 2, 2003 05:23 PMvery good petition.
what i also really would appreciate, would be a way to dynamically load libraries, but not at or before the first frame, but by calling a function. Something like LoadLibrary(). The Elements in the Library should be accessable like the normal ones, which are marked for actionscript access. With that ability, i could load variable sets of movieclips or graphics, but only then, when i need them. it should also be possible to unload such libraries.
i hope this petition will be heard by the responsible persons.
i wholeheartedly agree ... it's ridiculous - I'm trying to get it to work just now - I'm trying to intelligently preload dynamic jpegs using an xml file as the source file containing structure and content.
it's a bloody nightmare! And now I discover that loadMovie doesn't fire til the end of the frame? ... AAAAARGH! My head is now officially minced... :(
sort them out Colin ... plea-hea-hease...
Posted by: Christi MacPherson at April 30, 2003 10:00 AMYes..!
Very good idea
I agree wholeheartedly to the statements made by Colin in this petition. I have experienced the same ill effects of preloading throughout my years as a flash developer and hope some day there will be a better way. Waiting with fingers crossed...
Posted by: Casey Corcoran at April 29, 2003 04:01 PMyes, as these functions are in use in each project, it could be nice having it working properly...
we've been waiting long enough now !!!
thanx colin for your attentions upon our community.
: )
Posted by: fletch at April 29, 2003 08:57 AMThank for your initiative Colin ...
Posted by: Erwan Bossennec at April 29, 2003 04:18 AMI agree with Colin. Preloaders have always been a concern.
Recently I was a little frustrated when I replaced a semi automatic preloader with an automatic generic one globally in my site. Now all the file sizes have swelled to their uncompressed size - not their actual size.
The bandwidth profiller seems to be able to read the compressed size -- maybe there should be a method like:
getCompressedBytesTotal();
this petition is it worth to sign. And please macromedia it should work on all different platforms and browser-plugins.
greetings curiosita
Wondering when this would happen!.
cheers Colin.
Sorry for the triple-post.
Posted by: Elor Ilan at April 28, 2003 06:38 AMYes.
Posted by: Elor Ilan at April 28, 2003 06:38 AMYes.
Posted by: Elor Ilan at April 28, 2003 06:37 AMYes.
Posted by: Elor Ilan at April 28, 2003 06:13 AMColin,
Thanks for giving an ongoing problem a single voice.
One thing, still unmentioned I think, is embedded text. It should be the simplest of things, but gets imported in the first frame as well and consequently creates the need for a work around...or a preloader bar that begins at about 30%. I understand workarounds if I'm trying to do something complicated or unorthodox, but not when I simply want to embed text.
i agree too! preloaders are among the most difficult things to implement for us noobs.
Posted by: db at April 27, 2003 05:46 PMIm on your side.
Develop up the loading of .swf files so it is as good and handy as LoadVars have become.
Posted by: masa at April 27, 2003 05:16 PMthat is exactly what we need, Colin! you can count on me.
Posted by: The Dude at April 27, 2003 05:04 PMWell, the main problem occured with preloader was instability of calculating of the size of .swf--file to be loaded.
On refresh rates higher than 20 frames per second it is easy to have a problem with getting value from this.getBytesTotal(). Actually it is not a bug, because responce information from server may be delayed for some reasons. While waiting responce from server movieClip stores it's default size --> this.getBytesTotal() == this.getBytesLoaded(). It is already impossible to write universal function to turn off (mean to freeze) the values during cheking this condition until the first data chains arrive.
I think Macromedia professionals have to think about 3 main tasks to do with preloading process.
1. Make onData() event available for all types of content to be load in .swf - it will make the process easier
2.Freeze the values of condition with this.getBytesTotal() == this.getBytesLoaded() while waiting data from server.
3. Make a method, that can allow check Timeout() for waiting the responce (although it can be made by standart flash methods) with possibility to declare original Timeout for each .swf.
regards,
sevast,
Russia
P.S.: thanx for the book.
Posted by: sevast at April 27, 2003 12:38 PMI agree with this petition and add one more suggestion: There should be the ability to cancel downloading data (in LoadVars.load, XML.load, MovieClip.loadMovie, Flash Remoting methods, etc.). This may be done using one of these approaches:
1) a new ActionScript method
2) when user clicks the Stop button in web browser, all downloads should be stopped, even the Flash Player's ones.
Signature
Posted by: Pedro Alpera at April 27, 2003 10:06 AMOK, but why have so much arguments in the onLoadProgress ? why bytes and kbytes (kbytes = bytes/1024) ? why the percent wich is loaded*100/total ?
But I totally agree with the APIs who have to be implmented !!!
See ya !
Posted by: LAlex at April 27, 2003 08:31 AMyes... it can resolve many our problems...
Posted by: Magnum at April 27, 2003 06:49 AMThat Internet Explorer -1 getBytesLoaded() bug has got my goat on several occasions. I hate it when people attack my animals for no reason.
Excellent petition Colin. Flash can yield such beautiful results but it remains a niggling pain in the butt to use properly - sort it out Micromedia!
Posted by: feisty at April 27, 2003 06:47 AMThat Internet Explorer -1 getBytesLoaded() bug has got my goat on several occasions. I hate it when people attack my animals for no reason.
Excellent petition Colin..
Posted by: feisty at April 27, 2003 06:35 AMgreat idea..
Posted by: elthing at April 27, 2003 06:09 AMYeeahhhhh, this is a must!!!!!!
Posted by: kenike at April 26, 2003 10:21 PMi agree with you Colin, its time to get rid of this once for all.
Posted by: tomaru at April 26, 2003 10:18 PMgreat idea
Posted by: poju at April 26, 2003 05:34 PMwhy HAS it taken this long to sort out?
Posted by: valleyKind at April 26, 2003 04:09 PMit wud be great if we can specify, we want to preload the movie before it shows up or the default way of streaming when we load a movie...
agree...
go do it...
add some events to like
onLoad, onError etc.
Me too
Posted by: summer at April 26, 2003 01:59 AMGreat idea! This needs to be done.
Posted by: David Genelid at April 25, 2003 04:09 PMsign me up.
Posted by: Daron Shupe at April 25, 2003 11:07 AMAgreed!
Posted by: GIRARD at April 25, 2003 09:45 AMThis has my vote also...
I been unable to find a way to preload external files (SWF) from CD-Rom or local file system.
ie. not via HTTP request
Since some files used in our project can be over 100Mb, there is a still a substantial loading time.
Any help greatly appreciated - since I've spent weeks trying to solve this problem..
Posted by: nick wong at April 25, 2003 09:29 AMMM, please, listen !
tks Colin for this very important petition !
Posted by: bPixel at April 25, 2003 07:43 AMthankyoup.
Posted by: matthew at April 24, 2003 04:38 PMgood idea!!!
Add my name to the list
Great idea...please implement MM!
Posted by: Gerry Creighton at April 24, 2003 02:04 PMI agree. At the very least the checkbox for export in first frame is all but useless since many library items will cause the movie to look as if it is not loading at all. I am still forced to go the safest way most of the time and use an old school tecnique of placing items under a "cover" as a progress tween moves with the loading of frames...atleast then I have a gaurantee.
Posted by: Shawn Makinson at April 24, 2003 01:06 PMEnough's been said by all the others... Hook it up!
I've always wondered why Shockwave had this built in but we were always expected to figure this out ourselves on a project by project basis. I have to think that if MM included this it would only provide consistency in the product and make the end users more comfortable as well. I see it as a win - win situation for everyone.
Way to take initiative Colin.
Posted by: Bill Evans at April 24, 2003 12:55 PMI concur with Colin's remarks on Macromedia incorporating a generic preloading API into Flash. Please include a robust progress bar component (with % loaded) while you're at it.
Thanks go to Colin for bringing up this important issue!
- Tom
Posted by: Tom Rydberg at April 24, 2003 12:32 PMCount me in! I wasted so much time with .jpg preloaders!
Posted by: Arthur at April 24, 2003 10:12 AMYou can find a possible actionscript implementation of the proposed interface at http://www.helpqlodhelp.com/blog/archives/000006.html
Posted by: bokel at April 24, 2003 10:11 AMYeah, me too.
Posted by: Michael Colgin at April 24, 2003 09:59 AMGet's my vote - hope they listen this time!
And how about an 'export in frame X' for the linkage property, rather than either frame 1 or nothing? That's what I'm waiting for at least......
Posted by: M at April 24, 2003 09:42 AMYou can put my name to this too!!
Posted by: Ben Milford at April 24, 2003 08:37 AMon (preloaders) {
gotoAndPull("hair out");
}
yesirree
Posted by: M.S. at April 24, 2003 06:23 AM100% Agree!
Posted by: gig at April 24, 2003 12:23 AMAmen, brother.
I can only agree with Colin's comments.
Another problem arises from the fact, that the player needs some initialization-time after loading the clip and before he enters the first frame of the clip. The onLoad-event fires directly after bytesLoaded == bytesTotal. Now, if you try to set _width, _height or _visible inside your onLoad-handler, they are overwritten by the initialization of the clip.
The current workaround is to wait until the properties are set, but it would be better if the onLoad would be fired after the initialization of the properties is done.
I can do nothing but agree.
Posted by: Michael Peo at April 23, 2003 05:20 PMyup!
Posted by: barnaby sheeran at April 23, 2003 01:55 PMMM: Please make Flash a viable platform for enterprise-level applications by fixing this problem.
Posted by: Mike Britton at April 23, 2003 01:16 PMloadMovie look me days to sort out when I first started developing. It's not one of those questions which comes up over and over and over again on the boards. A generic, solid loading API would be an excellent idea.
Posted by: Marc Tanenbaum at April 23, 2003 12:16 PMI agree... Moock's once again totally right!
Posted by: Dieter at April 23, 2003 12:15 PMI agree.
Macromedia should make a change with this problem...
I'm with you.
Posted by: Cristiano Rastelli at April 23, 2003 09:23 AMMacromedia, what are you waiting for?
Posted by: Roberto Scordino at April 23, 2003 09:16 AMYes, Very Usefull.. Please put it in consideration Macromedia..
thanks Colin, Thanks Macromedia
Posted by: Emad at April 23, 2003 09:14 AMI'll sign whatever form there needs to be signed in order to get this done =)
Posted by: Xavier Borderie at April 23, 2003 08:35 AMJust Do It!
Posted by: Breezy at April 23, 2003 07:24 AMYES YES YES we need something better! I created some stuff like this old bitty (http://flashcodehacks.com/kevin/ds/xmas/flash.htm) - and with the new Flash players, the code broke.
*John Henry* ( <-thats for the petition... )
Posted by: kevin at April 23, 2003 07:07 AMCouldn't agree more, Flash Preloading is totally useless unless you only want to do the most simple of loaders.
If you are trying to load multiple files intelligently(.swf, .jpg, .mp3, etc) you may as well write off a week for coding as the hoops you have to jump through are crazy
Posted by: Dan Carter at April 23, 2003 06:59 AMI agree. Really a big gap in flash. Hate to waste time in such silly things
cheers
Good idea! Some of this issues can be sorted out with a new component, but i think, it would be much better to enhance basic AS API. Anyway, there's no solution to fix "uncompressed size" problem with current API.
I had bad expirience with loading movies several times. Loading process just "hanging" and nothing changes after.. To solve this problem, user has to clear his cache. It looks like some broken movie has got to the cache and when it loading again, it's picked up from the cache and returns wrong getBytesTotal or getBytesLoaded size..
They must do something ! :)
I must agree. I'm very new to flash and have trouble enough with the action scripting. I spend hours on preloading, and sometimes to no avail, it would be nice to address these problems. I need all the help I can get.
Posted by: Chris Harston at April 22, 2003 10:23 PMsigned!
Posted by: godote at April 22, 2003 09:55 PMThank you Colin for spotlighting this MM oversight. Hope they pay heed to this need.
Posted by: Tony Hsieh at April 22, 2003 09:03 PMPreloading quirks (including non-rendering JPEGS) are hugely aggravating, so I heartily endorse Colin's proposal.
Cheers,
Minty www.nectarine.com.au
Yes please!
Posted by: John Johnston at April 22, 2003 08:31 PMAsap please
Posted by: Codemuppet at April 22, 2003 06:04 PMColin, here's my vote!
Posted by: Tom H. Lautenbacher at April 22, 2003 05:46 PMgo MM!!!
Posted by: zoomfreddy at April 22, 2003 05:33 PMAgreed!!!!!!
Posted by: Alan Musselman at April 22, 2003 05:29 PMYes, please fix this stuff asap!!
Posted by: G Meyer at April 22, 2003 04:28 PMAbsolutely!
Posted by: Thom Comstock at April 22, 2003 04:05 PMAgreed!!!
Posted by: chyxs at April 22, 2003 04:01 PMi agree with Colin. I suggest a free set of components, one for the whole site, one for audio, one for video, etc.
Also a pre-answer for 404 or 403, against which I really don't know what parameters should fit
Agreed!
Posted by: Steve Michaud at April 22, 2003 03:26 PMGood call. Many wasted hours on preloaders - especially for low-speed connections, we depend on preloaders to keep the attention of the viewer.
yes
Posted by: petr vostrel at April 22, 2003 02:30 PMfix it you fucks....please?
Posted by: Greg Pymm at April 22, 2003 01:31 PMThanks, Colin. Your email came right after I just spent two weeks writing code to check if a movie clip has loaded from inside of a loop statement that is loading sequential movie clips. (The present clip must finish loading before the next can be loaded) It would've been nice to be able to do this with less than 10 lines of code. It's annoying that LoadVars() has an onLoad() handler and LoadMovie() does not. That would have made life a lot easier. Macromedia, please help.
Posted by: Bill Tomiyasu at April 22, 2003 01:22 PMYes this would be a great improvement. I have spent many hours online trying to find the answers to preloading problems. I have a current issue with trying to preload 2 jpegs at once and am still searching for the answer to that one.
Posted by: Xty at April 22, 2003 01:18 PMFor what it's worth- it seems logical that this preloader should be able to handle audio/video buffering as well.
Posted by: Dan Rogers at April 22, 2003 01:05 PMAgreed. Give us a smooth, accurate preloader which can be customized + used for externals!
Cheers,
Posted by: Dan Rogers at April 22, 2003 01:03 PMWe go through preloader QA hell on every project.
Nothing works consistently, especially when testing over a 56K modem.
This is very important for client work and for our sanity!
Yes! The preloader is one of the most frustrating parts of the Flash-building process, especially if you're loading in lots of files.
Posted by: alykat at April 22, 2003 12:42 PMYou have no idea how tired I am on helping people on forums with preloader questions because they have all sorts of crazy issues with them. I myself dread when I have to create a dynamic preloader to load external .jpg images and such, because depending on the method and situation it can be a real pain.
I can't really add anything to your list because I haven't experienced any other issues than some of them, but you got my vote on this!
Posted by: Shane Waldeck at April 22, 2003 12:35 PMFinally, acknowledgement that this is a real issue and not just a random set of browser or plug-in support problems. MM should offer a consistent way to make a preloading easy (and reliable) for everyone.
Posted by: SRL at April 22, 2003 12:30 PMI think this is a interesting view, to get some feed back about waht macromedia think about that
count with my vote!
Posted by: nuno salvaterra at April 22, 2003 12:26 PMNice one, you've got my vote!
Posted by: Mulder at April 22, 2003 11:43 AMfinally! I STRONGLY agree!!!
Posted by: Matteo Nicoletti at April 22, 2003 11:25 AMAs a Flash developer, it took me a long time to learn all the quirks of preloading. And even after having gotten the hang of it, i still have to refer back to a template loader file to grab all the wacky code. A new implementation of the preloader would be a great relief.
Posted by: Zeke Sikelianos at April 22, 2003 11:08 AMCount me in Colin.
Posted by: Chris MacGregor at April 22, 2003 10:50 AMI agree. ;)
Posted by: Thorvald Neumann at April 22, 2003 10:42 AMi agree, please macromidia do my life easier.
Great Colin!
I vote yes for easier pre-loaders!
I love to use Flash to display my work, but none of my pre-loaders work very well. I can't keep it straignt in my head. Oh well, back to designing cool pictures that tell stories.
LLB
I have answered more questions on preloaders than I care to mention (on forums). This is a significant issue and I would love to see it resolved.
Posted by: Inigo Montoya at April 22, 2003 10:10 AMyep ,
bad control indeed
the eventbroadcaster from brandon also helped me
out to make something that works in about 95% of
all possible cases but it is not dze way it should be. also tell'em to fix the printing if you see 'em ... thnx.
Thanks Colin do you really think MM will listen this time?
Xak
Posted by: Xak at April 22, 2003 09:53 AMlet's all make big fat 80MB movies so if macromedia finally releases a flash version that addresses these points we can all do massive bughunting.. 8-)
good point though :)
Posted by: Owen van Dijk at April 22, 2003 09:29 AMI am in complete agreement. Something needs to be done about this.
Posted by: cxdi at April 22, 2003 09:27 AMYes,
Totally agree, more work needs to be done in this area.
everything has already been said... good luck with it
Posted by: AnOraK at April 22, 2003 08:31 AMI've been using Dreamweaver and Flash since around 2.0. Please fix this right away. None of our artists can code a decent preloader, and our programmers all hate Flash.
Posted by: Michael McClatchey at April 22, 2003 08:15 AMPreloader... I need to figure it out again every time I create one. Very frustrating. A smarter way is definitely needed.
Posted by: Onur Orhon at April 22, 2003 08:10 AMLooking at the new site of MM,
it seems to me like they are already working on preloaders =)
good luck,
bokel
Yea, fix the preloaders!!
Posted by: njs12345 at April 22, 2003 07:59 AMThis is one of those fundamental issues that seems to have been forgotten by MM.
My biggest concern is that they build it into the next release of AS and NOT release some kind of half-fix 'solution' as a Component or Component suite: my experience of components is that they can never be made to be universally adaptable - and this would just lead to even more tweaks and hacks.
Posted by: mani at April 22, 2003 07:54 AMThere are quirks in flash, but this one's too big to leave it there! Get rid of it!
Posted by: [m] at April 22, 2003 07:43 AMthat would be a big relief indeed... nice initiative, now lets hope they do something with it.
Posted by: Eric van Lit at April 22, 2003 07:42 AMI agree.
Posted by: Cesare at April 22, 2003 07:38 AM// Good thinking, my dear Coolin!
myVote = allVotes++;
Macromedia.onRecivedPetition = fixPreloader();
Haven't got any code samples at the moments, but all what's said above is true. A better preloading API is cruicial!
Posted by: Ahmed Abbas at April 22, 2003 07:12 AMAgreed
Posted by: liquidpixels.it at April 22, 2003 06:29 AMyou got my sig and support. sort it out MM!
Posted by: alan at April 22, 2003 06:29 AMAnd i thought it was just me! So much wasted time on something so trivial for Macromedia to sort out.
Gary Keogh
Posted by: Gary Keogh at April 22, 2003 06:07 AMLooks like all major issues's been raised.
My vote !
i strongly support this petition (thanks, colin!). it's about time to finally handle this long-term issue, so come on, mm, please!
Posted by: sascha brossmann at April 22, 2003 05:49 AMLack of decent preloading and foolproof checking for Flash are the two main obstructions to Flash dominating the web. Macromedia, stop trying to sell overpriced upgrades and tackle developers' concerns, you'll make a lot more money that way!
Posted by: Simon Thompson at April 22, 2003 05:49 AMI'm in.
Posted by: Andy at April 22, 2003 05:47 AMHere's to hassle-free preloaders in Flash MX 2...or is that Flash M...Y?
Come on Macromedia - you know it makes sense.
Posted by: Jason O'Hare at April 22, 2003 05:38 AMWaisted tomuch time cleaning up and clearing up preloading issues
Posted by: Gerard van den Elzen at April 22, 2003 05:28 AMVery good... the "science" of preloading is a fickle business.
Posted by: Dan Potter at April 22, 2003 05:21 AMAbsolute agreememnt with the API - come on macromedia.
Posted by: Graham at April 22, 2003 05:20 AMWasted unhappy hours on this.
Posted by: garry at April 22, 2003 05:19 AMYea, coding preloaders is a waste of valuable development time, please sort something out
Posted by: Jon Turner at April 22, 2003 05:13 AMAbsolutely - I hadn't yet discovered all of the problems Colin's enumerated above, but those I have encountered have been frustrating enough!
Posted by: BA Williams at April 22, 2003 05:10 AMyour api-proposal looks great.
i´d really be happy, to see mm implement this and some of the ideas in the comments above in their new flash-version.
mm please fix this!
Posted by: kaoli at April 22, 2003 05:00 AMi agree....
Posted by: manfred karrer at April 22, 2003 04:55 AMI am with it!
Posted by: cedric at April 22, 2003 04:51 AMYessssssssss
I do very agree with that
Yessssssssss
I do very afree with that
I'm in.
Anyone from MM signed this petition yet?
I agree!
Posted by: Marco at April 22, 2003 04:30 AMThis will save us all a lot of time and avoid much frustration. You've got my vote.
Posted by: Lauren at April 22, 2003 04:29 AMyeah, I tried a multitude of methods back in Flash 5 trying to build a system of preloading different fonts at runtime, but I had to use a preloader in a separate movie to avoid downtimes in unmanageable downloads. I have to add that it's not much better in MX, especially with the reliance on unicode now.
Posted by: Robin at April 22, 2003 04:28 AMRight on!
Posted by: Jonathan Clarke at April 22, 2003 04:26 AMthat would be really really nice and timesaving.
colin you definitly roXXX. :)
Master the preloader you must.
Like you more we will!
:)
Posted by: joetek at April 22, 2003 04:21 AMMX is great...but still has a bit of dinosaur DNA left with the preloader yayo...it has NOTHING BUT PROBLEMS! I have to have a shell swf load the 'master' swf because the preload doesn't factor in attached movie clips that get exported in the first frame. Which screws of the levels and paths to everything...so I have to build all these objects to store every single variable in. Ok...maybe that excessive and the preloader isn't the only reason here...just fix it.
Posted by: Morgan at April 22, 2003 04:21 AMCount me in!
Posted by: Jerry Young at April 22, 2003 04:07 AMBeen there... :(
Posted by: Jensa at April 22, 2003 03:59 AMwow cool !.! good call . i spent to much time on this poor preloading techs ;)
Posted by: Sebastian Diedrich at April 22, 2003 03:52 AMSigned.
pauseLoad()
resumeLoad()
stopLoad()
Maybe?
Posted by: Nathan Holloway at April 22, 2003 03:49 AMhere i am and agree, but think there are a lot of things to get better, like printing or editing html without opening notepad :)
Posted by: futre at April 22, 2003 03:46 AMThanks Colin for thinking to pursue this; thanks MM for an otherwise great product :)
Posted by: James Tarling at April 22, 2003 03:40 AMAgree.
Posted by: Jan Jursa at April 22, 2003 03:39 AMI also agree..... If Macromedia are as good as I think... they will listen.
Posted by: Oscar at April 22, 2003 03:39 AMWell done Colin for this great initiative, lets hope they will do something with this.
Posted by: Erwin Verdonk at April 22, 2003 03:11 AMGood Initiative Colin!
that's the way...
Posted by: liederjan at April 22, 2003 03:00 AMDefinitely much needed... We shouldn't have to deal with this all the time...
Posted by: Edwin Heijmen at April 22, 2003 02:59 AMGood Initiative Colin!
Count me in!
Posted by: Hsiyao Wang at April 22, 2003 02:51 AMGet your code together Macromedia !
Posted by: Vincent Koopmans at April 22, 2003 02:48 AMyes a preload API would be very nice...
Posted by: Dimas at April 22, 2003 02:46 AMbetter preload, please!!!
Posted by: Henning Pertiet at April 22, 2003 02:30 AMpreload me baby!!
Posted by: Andrew Muller at April 22, 2003 02:23 AMI hope MM does it asap. gr8 point moock...
Posted by: Neo at April 22, 2003 02:20 AMYes please.
Posted by: Mike Stern at April 22, 2003 01:45 AMI agree 100% - don't want to repeat all that has been stated.
Posted by: Christian at April 22, 2003 01:43 AMcount me in...
Posted by: brent wees at April 22, 2003 01:23 AMI totally agree, this needs fixing.
Posted by: Rose Cox at April 22, 2003 01:12 AMyup its true, even i faced such problem and even there is some problem when we link any movie clip as a not to load on first frame , it wont give me proper result and some time it wont work
Posted by: deepak at April 22, 2003 01:02 AMyes!!!!!!!!!!!!!!!! preloaders are hell. it's about time something was done.
Posted by: von at April 22, 2003 01:00 AMgood going Colin!!! we need these kind of initiatives. MM reaaly need to do something , swf shudn't preload all the linkage library item's. no matter how much tweak you do ... and make it somehow work. you van never be full sure that ur application will always work properly.
we need a clear solution. thnx again Colin for bringing it up.
P.S : - how abt classic "masked dynamic text prob.. " any MM guy listning , what u say cloin???
Oh Yeah!!!!
I don't want to even count the times that I have had to 'tweak' a preloader component - there just is no generic way to do it.
Something so crucial to embedding Flash files on the web, shouldn't be this difficult.
Posted by: Rob James at April 22, 2003 12:39 AMIt's about time for MM to fix it, I have problems with preloader on all my
flash project.
Especially when I deal with a large movie and a lot of clips.
Yes I agree..too much time on pre-loaders!
Posted by: Lee Corey at April 22, 2003 12:20 AMDoh! Now how do you like that? A brand new API for them preloaders. Bring it on bud!
Posted by: Homer at April 22, 2003 12:04 AMyes..I think this is a necessary step in the maturity of Flash and actionscript. Something that works predictably 100% of the time on all browsers and platforms would be one less headache in the development process.
Posted by: Tom Klepl at April 22, 2003 12:02 AMhere here.
Posted by: Brian Hoard at April 21, 2003 11:41 PMWell all I can say about making preloaders is... "!@#!@$%#$%@" And amen to a new api.
Posted by: johnny at April 21, 2003 11:35 PMColin, I agree.
One of the biggest, and ugliest, pre-loading headaches is with movies that have linked fonts being loaded on the first frame. In many cases more than 90% of the movie loads before thr pre-loader even shows up. I think pre-loading should take linked fonts or movie clips into account when displaying the load status of the movie.
Additionally, One of the most delicate coding projects in ActionScript is a streaming MP3 UI. I suspect that in the future it will be possible to load MP3's directly into SWF's without having to attach them to a timeline. But such functionality should come with built-in support
Pre-loading is challenging and tricky, any support from Macromedia would be valued and appriciated.
Posted by: Vladimir Kiperman at April 21, 2003 11:34 PMagreed.
Posted by: Andy at April 21, 2003 10:51 PMAs a beginning flasher who doesn't understand much of anything beyond the basics - yes, please help us with preloading. I never really got how to make this work no matter how many scripts I used from great flash code resources. Thanks Colin and the rest of you, Marcia
Posted by: marcia at April 21, 2003 10:41 PMRight on Colin! It's about time someone speaks up about this.
Posted by: george at April 21, 2003 10:16 PMAll for better preloading API.
While we are here I think we should push for better print support aswell.
Posted by: Ryan Matsikas at April 21, 2003 09:59 PMmy vote
Posted by: Alex "The Gatekeeper" Santos at April 21, 2003 09:02 PMThanks Colin!
Posted by: Jon at April 21, 2003 08:44 PMyes! please!!
Posted by: david at April 21, 2003 08:43 PMI agree, please give us a cleaner solution, Macromedia.
Posted by: Chris at April 21, 2003 08:42 PMGood call. The above have pretty much covered all my concerns, I hope Macromedia take notice.
Posted by: Paul at April 21, 2003 08:34 PMTotally!!!
MM made such a push with MX. Now it's time that their side will become as reliable and easy to use as your ASDG. I spent so many hours and because the preloading was not predictable, my swf size grew and grew. Please add a fantasic preloader triggered just by exporting the html. What about code that loads when the user just views (in the background so time is used wisely).
I'm all for it, Flash must let developers concentrate on building the application, without having to put up with too much hassle to properly ensure and handle the asynchronous asset management via the network.
Posted by: René at April 21, 2003 08:21 PMAbout time! MM, do You listen?
Posted by: Max Johnson at April 21, 2003 08:19 PMThank you Colin! Yes, totally, please do it! I and my partner have spent way too much time, that we don't have, on this preloader issue. We would also like a better detecter. AND, if you would like to start another petition about the next V with better font functionality, I will test if you like. I have MANY comments and suggestions. Otherwise we LOVE Flash and can't wait for them to listen and create this improvement!
Posted by: Elisa at April 21, 2003 08:13 PMYep, definitely, who wouldn't agree to that
Posted by: Stefan Vizzari at April 21, 2003 08:03 PMYes.
Posted by: Scott McIlquham at April 21, 2003 07:25 PMi spent many many hours working on a preloader for jpgs that loaded into a flash app im building, this was a real struggle (due to the movie clip propertries being emptied) and i spent most of my time looking for help online only to discover the many inconsistencies with preloading and the troubles many people had gone to to try to get it to work for them, and the endless blogs put up by those people to try to explain the finer points to people like me... phew what an ordeal! - finally i got it to work... but then i discovered getBytesLoaded() returns different values depending on browser/os configurations!! how annoying.
Posted by: paul malandain at April 21, 2003 07:22 PMI AGREE! Way too much time is wasted building/modifying preloaders. Come on Macromedia pull your finger out.
Posted by: Luke Faccini at April 21, 2003 07:18 PMI'm with you Colin, good call! It is dearly needed.
Posted by: richard at April 21, 2003 07:13 PMYou got it, Colin! Preloaders are a real pain, especially needed are those that will load sub-movies in whatever order you choose -- so as to begin after other sub-movies finish!!!
Posted by: Steve Maclin at April 21, 2003 07:04 PMI agree. I resort to building the majority of my animations on the stage so they will stream properly. Can be very messy.
Posted by: Brynn Neilson at April 21, 2003 07:03 PMYes. I agree. I've hacked a progressive timeline preloader - getBytesLoaded to levels that work s- but in such a retro hack way... I look forward to a more elegant solution...
Posted by: geoff seelinger at April 21, 2003 06:59 PMOh man - I hope this works! That would make the upgrade price of the next version worth it, in itself! Make sure it's customizable too!
Posted by: John Ur at April 21, 2003 06:56 PMyes, easier preloaders, better flash version check too would be nice.
Posted by: james at April 21, 2003 06:54 PMI agree. This would help enormously to alleviate the frustration of creating decent pre-laoders!
Thanks Colin for bringing this up and sending it to Macromedia.
Thanks Colin for getting the ball rolling on this important issue.
Posted by: Bruce McMillan at April 21, 2003 06:31 PMI'm all for simplicity. Please. Pretty Please.
Posted by: Marshall at April 21, 2003 06:25 PMthis is great colin! much needed.
Posted by: olivia warnecke at April 21, 2003 06:23 PMagree
Posted by: mike perkins at April 21, 2003 06:15 PMRight on Moock!
Posted by: xhanubis at April 21, 2003 06:06 PMYes, I totally agree!
Posted by: Ann-Marie Cheung at April 21, 2003 05:31 PMright on, its time for a change!!!
Posted by: Toon at April 21, 2003 05:18 PMI'm in ! maybe MM will take this one for real - colin is a flash_personality isn't he ?
Posted by: micky neuhaus at April 21, 2003 05:13 PMWay to go Colin! I'm in! Go kick some flash!
Posted by: Joseph Balderson | joeflash at April 21, 2003 05:11 PMI echo Colin's observations. We really do need a greater degree of efficiency with pre-loader related code.
Posted by: Michael Harris at April 21, 2003 05:10 PMYes, yes, yes.
Posted by: tyler young at April 21, 2003 05:08 PMWhile it's a good thing to have control of 'bytes loaded', and....etc., my suggestion is to:
1. Define the target page
2. Play a pre-loader while the target page is being loaded.
As a database developer who use Flash as a front end - indeed I have to use voodoo programming somtimes to get my app across.
Thanks for raising our voices,
Raymond
I agree one hundred percent!
Posted by: Zameer Rehmani at April 21, 2003 05:01 PMSign me up!
Posted by: Ken Wan at April 21, 2003 04:48 PMYes, I agree, please provide us with an easy way to preload swf files that have attached clips on frame 1, perhaps an alternative "preload frame" which resides before almost anything else in the movie could act one way if it was being loaded into another swf, and have its own simple preloader if it is being loaded into an html page. This would make work sooo much easier.
Posted by: Timothy Johnson at April 21, 2003 04:48 PMI am in agreement entirely. the MovieClip class requires decent callbacks such as startedLoading() and finishedLoading() . . .
A server response object should also be considered (or at least a method to trap http errors). Perhaps there is already one for flash remoting (not sure). However, I would like to be able to easily trap and distinguish between a number of scenarios when there is an error from the webserver.
Also, having all movieclips begin at 0 bytes (not 4 or 0) would be nice :) . . . then forgetful people such as myself can program actionscript as well.
Props to Colin for spearheading this initiative. Props to MacroMedia for being a pioneer in dynamic web content!!!!
Agree * oxo
Posted by: Ethan Chiang at April 21, 2003 04:18 PMI wholeheartedly agree. I've wasted more time than I'd like to admit debugging preloaders!
Posted by: Alan Josephson at April 21, 2003 04:17 PMyesx1000!! time to sort things out! lots of good ideas, m8.
;)
hi MM,
colins words sounds like the voices in my brain, when i have to preload some content.
greetinx from germany
yes - i agree.
Posted by: Wolf at April 21, 2003 04:02 PMAs stated above (Kotzenberg) this should not only be addressed in ActionScript - but also the authoring environment. Flash had no ActionScript - now it seems to have swung the other way - the only robust way to do anything is with scripting, components are too fat, the authoring environment has slowed its evolution, etc.
Posted by: Gus Bird at April 21, 2003 03:47 PMI agree wholeheartedly. With project budgets and timelines being tighter and tighter these days, it's really critical that preloader construction is able to be more standardized. Too much time is currently required to develop unique workarounds for individual projects. Thanks for spearheading this initiative!
Posted by: David Warczak at April 21, 2003 03:06 PMPreemptive pre-loader pandemonium and conundrums. Wow, an API for a function that every flash movie ever made needs. But still, I must give props to Macromedia, despite this one obvious over site. Thanks Colin.
Posted by: Dayvid Jones at April 21, 2003 03:02 PMtotally.
Posted by: Presley Thompson at April 21, 2003 03:00 PM
i agree colin...
Posted by: maxime at April 21, 2003 02:51 PMListen to the man.
Posted by: Chris Brooks at April 21, 2003 02:48 PMI agree!! =)
Posted by: Israel Cazares at April 21, 2003 02:42 PMJonas Galvez has created The greatest preloader class I've ever seen. I don't know the technical stuff behind it, I just know that it makes my life easier.
http://macrofun.pvpers.com/archives/000021.html
Posted by: Roger Adams at April 21, 2003 02:34 PM(D) YES to all of the above!
Posted by: Ron Husges at April 21, 2003 02:26 PMOur firm would spend the savings on more mm products, too.
Posted by: dave matthews at April 21, 2003 02:22 PMAs long as, in the above proposed API, percentloaded is type number and 100% is returned as 1, then I am in. Also, can we have a simple onLoad callback that simply returns success in case we don't want to have a continually looping conditional that checks for 100%. Just like the LoadVars callback.
imDone(success){
if (success == "404")
etc
}
YES! As much fun as it is to hack together stuff behind the curtains... There MUST be a better way!
Posted by: Steve Flowers at April 21, 2003 02:21 PMyes, please!
no more "checking if loading has started at all" an as long as you're an the subject please fix it so that we can pre-load library-items / components (sometimes I just HAVE to export some clip 'in first frame' because of the class-inheritence)
for real
Posted by: Patrick at April 21, 2003 02:20 PMfor real
Posted by: Patrick at April 21, 2003 02:20 PMAbsolutely! Preloading is a total pain right now.
Posted by: Marcus at April 21, 2003 02:15 PMIt would be immensely helpful if the issues Colin outlined were addressed and resolved.
Posted by: Kristin Henry at April 21, 2003 02:14 PMhm - I've been developing a new preloader with at least every new Flash Version. So there are at least 4 different kinds of preloaders in my Flash apps. I'd be glad to switch over to a final solution with MX 2.
Posted by: Philipp Cielen at April 21, 2003 02:12 PMI totally agree with this petition and would like to add that once Macromedia adds this API, there are several more we would like to recommend!!
Posted by: John Contarino at April 21, 2003 02:10 PMI agree. Far too much time has been spnt on this topic.
Macromedia.....please answer our call for help so our attention can be focused on RIA's and more.
Regards,
Sean Ford
Chief Technical Officer
The Factory Interactive, Inc.
I agree Colin. More time should spent on the project at hand, and not the preLoader at hand
Posted by: Craig Valadez at April 21, 2003 02:06 PMAgreed.
I'd also like to attach a rider that they actually do some beta testing on their OS X products before releasing the next MX suite. What a bug-ridden pile that collection of software is...
Posted by: Jason Muxlow at April 21, 2003 02:05 PMAn excellant request that makes good sense, save developers time and headache....the right thing to focus on
Posted by: at April 21, 2003 02:00 PMsecond most every comment added so far!
Posted by: Trond H. Bendiktsen at April 21, 2003 02:00 PMPLEASE help us with preloader ease and function. There have been clients that were unhappy due to the preloading that requested HTML sites instead!
Posted by: Scott Bratcher at April 21, 2003 01:55 PMgood call colin, i absolutely agree!!!
thx markus
Yes, Please.
Posted by: John-Paul Walton at April 21, 2003 01:53 PMDefinitly right !
Posted by: MikMac at April 21, 2003 01:53 PMI agree that this is an area that MM could provide better functionality for the flash community. I applaud your efforts.
Posted by: jh at April 21, 2003 01:51 PMI think that it's a grand idea.
Posted by: MIke Baggett at April 21, 2003 01:50 PMthough i've never had serious problems with preloading. it sure would be nice if there was an api to solve this problem.
it would be sweet if it had streaming capabilities for videos as well - just a thought.
Great initiative. Thanks again Colin. I have some code I *could* post, but frankly, it's too obfuscated. A few simple methods would greatly simplify things.
Lead Software Engineer Fallon Interactive
James Park (a.k.a. Jalcide - jalcide.com)
www.fallon.com
MM please address this issue so that we can remove one more item that those against Flash have in their arsenal!
Posted by: Don Schnell at April 21, 2003 01:49 PMOne of thhe reasons i jumped at the MX upgrade is there were rumors that MM had a fix for the preloading hassle. I still would have upgraded without a preloading fix, but I felt this was one of the most important issues.
Posted by: JP Myrtle at April 21, 2003 01:46 PMImproving standardization in this area would ultimately benefit developers, end users, and the provider Macromedia. Full circle. Thanks for taking the initiative here, Colin.
Posted by: Darius Shayegan at April 21, 2003 01:40 PMIn my latest project, working out the preloading took at least one tenth of my developement time, and it still doesn't work properly in slow modems.
It only adds fuel to flash detractors if the only way to enjoy flash is to view it with high bandwith access.
Thanks for the initiative!
Posted by: andrew hieronymi at April 21, 2003 01:39 PMAdd me
Posted by: Bernhard Kotzenberg at April 21, 2003 01:37 PMThis shouldn't only be addressed in ActionScript -- this should be a function of the Flash authoring environment, without question! In fact, why should you have to write script? You should be able to choose from a few default settings (beyond top>bottom) to get the movie to act appropriately. Then, if you want to customize, get into the script.
Posted by: Mat Chavez at April 21, 2003 01:36 PMagreed, whole heartedly, i am one of the inexperienced persons bungling through this painful process
Posted by: mike at April 21, 2003 01:34 PMI absolutely agree.
Posted by: Markus Wanjura at April 21, 2003 01:32 PMI agree!
Posted by: Cody Estes at April 21, 2003 01:29 PMI whole-heartedly agree.
Posted by: Ben Pritchard at April 21, 2003 01:21 PMAmen brother. I thought I was the only one taking crazy pills.
Posted by: Swami at April 21, 2003 01:12 PMCouldn't agree more! It's a project killer.
Posted by: Bill Krings at April 21, 2003 01:12 PMI wholeheartedly agree.
Posted by: Simon King at April 21, 2003 01:08 PMWe are mad as h*** and not going to take it anymore!
Posted by: don at April 21, 2003 01:06 PMWonderful!
Posted by: Rich Jones at April 21, 2003 01:06 PMIf they can tout 98% of all internet users, then they should be able to supply a preloader/ flash detect API for all authorised owners of Flash.
Posted by: Mikal Brotnov at April 21, 2003 01:06 PMHear Hear.
Posted by: Tony Hillerson at April 21, 2003 01:05 PMA loading API would be wonderful! Count me in!
Posted by: Christopher Wigginton at April 21, 2003 01:05 PMI can't agree stongly enough.
I would actual suggest that the preloader API be made a part of a broader remote request API that could be used to monitor *all* remote requests (for SWF,JPG,XML,AMF or whatever) with callbacks and request pointers for all.
Arise!
Posted by: Victor Allen at April 21, 2003 01:04 PMagree with the above. get on it macromedia. and how about faster player performance on the mac side too.
Posted by: benny blanco at April 21, 2003 01:04 PMit would be about time!!
Posted by: thom roberts at April 21, 2003 01:03 PMThanks for the initiative on this issue in flash.
Posted by: Ed Dyson at April 21, 2003 12:58 PM"Let the dial-upers eat cake!" OK, "let MM fix it!" The later sounds better. - jim
Posted by: Jim Preston at April 21, 2003 12:56 PMyep. right on, bruddah ...preloader hassles have caused me to abandon flash as a dev solution in many instances.
good thinkin'
Posted by: christian griffith at April 21, 2003 12:55 PMThat would be a fantastic API, the ammount of time I've wasted trying to make preloading work "properly" with various projects could have been spent as a nice two to three week vacation (slight exageration...but only slight)
Posted by: Cody Tolmasoff at April 21, 2003 12:53 PMBecause of the complexity (read: time involved) in constructing useful, reliable preloaders, I often do not offer clients functionality that would enhance their sites. The kind of preloading features Colin outlines would greatly improve the funcionality and quality of what I can offer clients.
Posted by: Marc Hoffman at April 21, 2003 12:53 PMIt seems to me that a preloader is one of the most essential elements to flash developers. People should still have the freedom to create their own, but it ought to be built in or something. I bet MM could put out a component to take care of this.
Posted by: Sean McKenzie at April 21, 2003 12:47 PMmy vote!
Posted by: Dylan at April 21, 2003 12:42 PMI hadn't realized how much time I spend testing and tweaking preloaders for different projects. Great suggestion, Colin, event broadcasting/handling is the way to go!!
-Sam
Posted by: Samuel Wan at April 21, 2003 12:39 PMNot to mention pre-loading a bunch of variables from an outside source and making sure that all the data gets in. . . way too many kloodges.
Posted by: Jason Parkin at April 21, 2003 12:37 PMi agree
Posted by: Kyle Roth at April 21, 2003 12:36 PMConsidering the effort Macromedia has expended on promoting Flash (and its avowed penetration), they should be humiliated that this remains a problem. WAY too much energy is expended on this by every developer.
Wake up, MM! There should be a standard, out-of-the-box solution, regularly updated for download.
Posted by: Jim Coughenour at April 21, 2003 12:35 PMCouldn't agree more. There have been countless tutorials, book chapters and discussion threads devoted to this common everyday project. It simply should not be this complicated.
Posted by: Jason Krogh at April 21, 2003 12:32 PMColin,
Thanks for giving an ongoing problem a single voice.
One thing, still unmentioned I think, is embedded text. It should be the simplest of things, but gets imported in the first frame as well and consequently creates the need for a work around...or a preloader bar that begins at about 30%. I understand workarounds if I'm trying to do something complicated or unorthodox, but not when I simply want to embed text.
This issue has kept me from getting deeper into Flash development. Please make better, Macromedia!
Posted by: Jeff Crerie at April 21, 2003 12:29 PMHere here!
Posted by: Ryan Potter at April 21, 2003 12:26 PMGreat point Colin! And thanks for all your contributions to the flash community.
Posted by: Joe Harbinson at April 21, 2003 12:26 PMIm with you Colin its time macromedia build things like this into Flash a little more efficiently. I cant tell you how many complaints Ive gotten from people whose preloaders dont function the way people want them to. Let alone the few people running IE 4.5 on the Mac.
I hope Macromedia listens cause Im screaming with you.
Posted by: omar yousif at April 21, 2003 12:25 PMPLEEEEEEEASE macromedia help us out...we are presently programming in preloader purgatory!!!
Posted by: christopher rampey at April 21, 2003 12:22 PMditto
Posted by: Dean DiSimone at April 21, 2003 12:21 PMi strongly agree. Sort it MM!
i cant deliver excuses for MM to my clients...
i cant waste time hunting ways around this problem.
seems MM have retired to allowing the users to debug MX too.
power to the moock!
Here Here.
The code behind the MediaPusher player was a nightmare because of all the hacks we had to put in.
If I were the AR type i'd be able to quote how many thousands of development $$ have gone done this particular hole whether directly or bug hunts due to preload issues. If i had those $$ back i'd be able to buy more MM products.
it's a _huge bottom line issue.
Posted by: Stephen Hueners at April 21, 2003 12:14 PMYes I want this on my wish list Thanks
Posted by: Carey at April 21, 2003 12:11 PMColin has nailed it.
Posted by: Derek Pell at April 21, 2003 12:10 PMyes please!
Posted by: Daryn at April 21, 2003 12:08 PMYou would think that with something as commonly used for just about everything, MM would sensibly make a download API...alas, common sense is not all that common.
Posted by: Rodrigo Rey at April 21, 2003 12:07 PMPLEASE end the nightmare of preloader dysfunction. I have had to convert beautiful Flash sites into poor HTML-based recreations, simply because my clients were unhappy with preloader failures on various browsers.
Posted by: Laura Hamilton at April 21, 2003 12:07 PMI know that since Flash 4.0, preloading has improved, but as you say, there certainly are holes. MacroMedia, please listen to this petition, these are your best marketers. Flash is suffering the duldrums right now, I can't keep pushing it if it's going to abandon me.
Posted by: Keith Rowell at April 21, 2003 12:06 PMWell done Colin for taking the initiative to do this
Posted by: Gloria Marti at April 21, 2003 12:03 PMThank you, Colin. I bought AssetMover, but I still tear my hair out over this issue.
Posted by: Jolayne ("Jo") Heinen at April 21, 2003 12:03 PMHere, here! An improved loadMovie() API is sorely needed. As of yet, I know of no foolproof preloader anyway I slice it.
I'd also like to echo another's request:
Also, I'd like to be able to request the size of a file without initiating a preload - preload.getFileBytes(). If I have 8 SWFs to load, I don't want the progress bar to represent 50% when 4 of them are loaded, but rather when 50% of the total file size of the 8 files are loaded.
I'd also like a preload queue and be able to both request the percentage of the whole queue or on the active file.
Thanks, Colin!
Agree!!!
Posted by: Israel Cazares at April 21, 2003 11:58 AMVery good proposal Colin, I strongly agree.
Its something similar to the pain we had rebuilding scrollbars prior to Flash MX, I'm pretty sure MM will do their very best to accomodate for this problem.
Posted by: Peter Elst at April 21, 2003 11:55 AMyes
Posted by: david at April 21, 2003 11:52 AMSigning the petition.
Posted by: Brajeshwar at April 21, 2003 11:51 AMMuch needed. Much appreciated, Colin.
And so we wait and hope...
Posted by: Joen Weidemann at April 21, 2003 11:47 AMVery True!
Posted by: Kevin Watson at April 21, 2003 11:46 AMThis should have been addressed long ago... thanx Colin for giving a voice to it.
Posted by: michael trezza at April 21, 2003 11:42 AMMM, please fix!
Posted by: Markham Butler at April 21, 2003 11:30 AMAgreed!
Posted by: Agnes Kussinger at April 21, 2003 11:28 AMSpeaking for the team at Nick.com, we can really use better preloading functions in Flash. In actionscript, once you initiate a pre-loading sequence, there's no way to know what the state of the connection is. As someone who spent years programming in Director before coming to Flash, I find Flash sorely lacking in this department. Lingo has better support for network downloads. Each download request returns a netID, which can be used to monitor the connection. Lingo's neterror() function returns various codes describing the state of the connection (file not found, invalid url, OK, etc). C'mon Macromedia!
Posted by: Thierry Sansaricq at April 21, 2003 11:23 AMI can second all problems and desires mentioned thus far. I hope this works.
Posted by: Joshua Hirsch at April 21, 2003 11:23 AMhere is my support too.
Posted by: karine at April 21, 2003 11:14 AMI would agree that something needs to be done. I use shared libraries a lot - the problem with a share library (for things such as grpahics, fonts, etc) is that you have to load the entire library into frame 1. I would like to break that up or set up a preloader that can be used on features that must be loaded into frame one (such as Components).
Matt
Posted by: Matthew David at April 21, 2003 11:12 AMMaybe a set of preloader components would be nice too. Free, not a paid component set. Running some common preload scenarios - main movie, second movie, audio/video, etc.
Almost everyone uses preloaders, and bad preloading just adds to problems with perceptions of Flash as a technology, and interferes with its adoption, so the suggestion for an API is great, but better yet for Flash if the implementation is simple enough for anyone to use.
MT
Without hesitation I submit my support! Bullet-proof Preloaders and Content loading (in general) is currently hellacious!
Posted by: Jayson K. Hanes (c/o www.chatbugs.com) at April 21, 2003 11:07 AMYES, I agree. It can come out to be usegul for external entity loading (just like jpg, sounds, videos and even datasource)...
...with a more precise control...we will be able to adjust events the better way...
I strongly feel support Colin's effort for a better preloader and please do make it free.
Regards
Melvyn
Posted by: MELVYN SONG at April 21, 2003 11:04 AMGood initiative Colin! I'm with you.
Montreal Flash MMUG Manager
Posted by: Martin Arvisais at April 21, 2003 10:46 AMAgreed.
Also, I'd like to be able to request the size of a file without initiating a preload - preload.getFileBytes(). If I have 8 SWFs to load, I don't want the progress bar to represent 50% when 4 of them are loaded, but rather when 50% of the total file size of the 8 files are loaded.
I'd also like a preload queue and be able to both request the percentage of the whole queue or on the active file.
Posted by: daniel kessler at April 21, 2003 10:06 AMHi,
I m in an elearning company, so have HUGE no. of external files to be loaded and have to indulge in cheap work arounds on making the 1st frame of all the files empty with a stop frame so that the movie is 1st loaded before playing.... moreover, the loadMovie sometimes do not work for sometime as pointed by Colin.
Sometimes, even XML.getBytesLoaded() does not work correctly.
I have to admit, a huge portion of my development time goes in making reliable preloaders for the files.
Its about time something is done to this issue.
PLEASE do have a Preloader API. Thanks,
AJ
yes, we need MovieClip.onLoadStart built-in listener to have preloader invoked automatically at any time by "movie's request", not "triggered manually"; we also need something like MovieClip.onLoadingHandler() implementation (question: MovieClip.onLoadingHandler or MovieClipLoader.onLoadingHandler?)
great mission, colin.
Posted by: F.Ripper at April 20, 2003 05:50 AMdefinitely needed.
Posted by: klaut at April 19, 2003 06:12 AMThis thread at ActionScript.org shows some onLoad frustrations and solutions.
http://www.actionscript.org/forums/showthread.php3?threadid=13830
Hopefully all these comments will persuade Macromedia to do something about the situation.
Posted by: PiXELWiT at April 19, 2003 02:17 AMOh God count me in!
Posted by: Ben at April 18, 2003 05:08 PMTo retrieve the correct bytes total when we load some swf in flash, we use a php script that read the swf binary format, it's cool and it works fine but it would be more simple to do that with Flash only...
Posted by: mama at April 18, 2003 03:59 PMIs this where I sign up for a free T-shirt?
Just kidding - add another vote for an improved loadMovie() API.
Posted by: Daniel Wabyick at April 18, 2003 01:21 PMi and very many people was try to make better a preloaders, but really MM have to fix up this problem
my last intend:
http://proto.layer51.com/d.aspx?f=683
excuse my english
Thank you Colin.
We're right there with you.
I have posted a feature wish to Macromedia when they were updating the Flash 6 player versions for that it develops the possibility of having one '0' in the getBytesTotal() result as long as the file had not been found or that the loadMovie() had not been launched and '-1' when the error 404 header was received. They never heard my wish so I participate here ;)
Posted by: Tek at April 18, 2003 11:16 AMThanks Colin,
actually a decent and fool's proof preloader is such a pain to develop.
There's also this little something, but I don't know if it can really be fixed: when loading an xml file on a server wich implements mod_gzip, getBytesTotal can returns gzipped size while getBytesLoaded returns an uncompressed size.
We also need much more consistence between browsers and OSes (some preloaders will simply not work with certain OS/browser combo while they work perfectly fine with IE/Windows) - and sometimes reasons for that can be really obscure.
A bit more error handling would be definitely a nice thing too (such as a .status property for loaded clip for instance with numerical error codes corresponding to errors like "not an swf nor a jpeg file", "progressive jpeg", "file not found", and so on).
Posted by: Bertrand at April 18, 2003 10:50 AMGets near to impossible trying to preload content from a shared library, the movie that uses the library won't take into account the size of the library, doing a loadMovie of the library is not a very good workaround since sometimes the library will reload itself instead of using the file in cache.
Posted by: EsChEr at April 18, 2003 10:22 AMThis is a big problem. I would love to see MM fix this issue with the next release...
Posted by: Scott Criswell at April 18, 2003 10:06 AMKenny,
I am glad you posted. My class, though I haven't posted it publicly yet, borrows some great ideas from your LoadQue and some of Colin's recent code. You both are noted heavily in my source - thanks for the great work on this issue you guys. Your efforts are most appreciated!
Johnny Blake
Posted by: Johnny Blake at April 17, 2003 06:24 PMI agree that this needs to be taken care of. There are bugs in the existing implementation and members that are sorely needed in the API. With project's growing in size and becoming more robust, we really need a way to account for external assets loaded. A better API would definitely help. I have tried to tackle this situation by creating a LoadQue class. It handles a lot of the issues that have been brought up, and I use it extensively. However, I still feel the problem should be addressed.
For those looking for a solution, my LoadQue can be found at http://www.layer51.com/proto/d.aspx?f=741
The class's structure is as follows
IMPLEMENTS
ASBroadcaster (I actually use EventBroadcaster)
PUBLIC METHODS
addItem // overloaded method to add item, and/or target and/or identifier
clear // clears que
start // starts que
EVENTS
onItemData // on data of a que item
onTotalData // on data of all que items
onLoadError // on error of loading a que item
onLoad // load of all items in que
Colin,
Having just written (another!) class for queueing and managing external loads, your post struck me as very very timely. I agree with you entirely - as a community of developers, we need to be able to put this sort of stuff safely behind us, and concentrate on being really creative and productive.
Add my name to the list -
Johnny Blake
Posted by: Johnny Blake at April 17, 2003 04:33 PMSignature
Posted by: Robert Penner at April 17, 2003 04:20 PMgod bless you, colin. you've stated the problem in more complete terms that most of us could have. let's hope MM is listening.
Posted by: gwint at April 17, 2003 04:18 PMGood idea!
I've tried this a couple of times...
http://onrelease.org/jonas/scripts/jgloader_function.html
http://chattyfig.figleaf.com/flashcoders-wiki/index.php?PreloaderClass
Definitely needed. PLEASE, MACROMEDIA!
Posted by: Ryan Terry at April 17, 2003 01:23 PMWhat everyone said.
Posted by: Russ Unger at April 17, 2003 10:53 AMhorrorstories mmh somethink like:
using "onClipEvent (data)" to process code when an external swf finished loading - works great until the client uses Fireworks MX to create own files ... swf version 3
c.
Posted by: c. at April 17, 2003 08:45 AMI agree with you Colin.
I have to mention alse that I usually, not to say always, problems when I have things that need to be exported (linkage) and loaded in the first frame. This is a part of the whole loading trouble, and I think there must come the time when we stop doing those dirty "tricks".
I am not a newbie into programming in flash.. but when thera are such bad solutions.. to really make a simple WELL needed preloaders..
every project needs a preloader.. sometimes a simple one.. sometimes a more complex..
I feel stupid.. after making games or whatever.. the preloader is never erally certain or as well coded as wanted thanks to the bad loadMovie execution.
why not a stream method for loading external swf-files or videos ? .. does that really has to be flashcomm server only ?
dont think so. . not fun..
I cant imagine even how macromedia can let flash be in such bad way regarding to several things.
I enjoy programming in php or serverscript.. there it is easy to debug.. and know what will happen.. but that is not a fair way to compare them... but php relaxes me much more than actionscript..
Posted by: martin at April 17, 2003 07:24 AM>
Posted by: 1stpixel at April 17, 2003 05:34 AMGood idea! This is what cost me half a day once:
Sometimes, _after_ preloading (getBytesLoaded and getBytesTotal are equal and > 4) the _width and _height properties of the movieclip you are loading a file into are still zero, untill the next frame was processed. Very nasty if you need the preloading stuff just to check when you can start aligning/positioning the movieclip. I sometimes don't even bother to check for getBytesLoaded, just check if the _width has a valid value...
Posted by: bb at April 17, 2003 03:47 AMhi,
there's no object-oriented way to handle movie loading >> it's really what i feel !
onLoad and onSoundComplete for sound object are good examples > why not fixed the same think for movie loading ?
Thanks Colin Moock
I would have to agree Colin, this is needed greatly.
Posted by: Sean Clark at April 16, 2003 10:09 PMSometimes just the thought of the preloading involved makes you not even want to start a project in flash.
Please listen to this post macromedia.
Posted by: nick at April 16, 2003 07:38 PMThe onLoad solution, which Bokel came up with, is pretty good. (http://www.peterjoel.com/blog/index.php?archive=2002_10_06_archive.xml#82594877 )
But the fact that onLoad and onData are wiped out is actually expected behaviour, since the loaded movie is a different object. So using this "fix" means that you end up writing code that looks like it shouldn't work, which bothers me enough not to do it.
Posted by: Peter Hall at April 16, 2003 07:15 PMGood points.
I would also add that the MovieClip.onData() handler is also wiped out by a loadMovie() call.
I definitly agree!
I found myself looking into your Image Loader w/ Pan and Zoom Example sometime ago wondering how you handled the problem.
It's also been on my mind for a few days now (do to a recent project).
Good to see we're all on the same page!
Is there a component solution to this problem? I agree that it's a problem best solved in the player, but what about stuff already being made? What's the best component already out there for this, and what does it still lack?
yours truly,
component
Is there a component solution to this problem? I agree that it's a problem best solved in the player, but what about stuff already being made? What's the best component already out there for this, and what does it still lack?
yours truly,
component
Colin has given voice to a problem which can hardly be overstated.
This problem should be near the top on the priority list of feature additions/fixes for Flash.
Thanks,
Todd Hopkinson
flashvoodoo.com
I think you hit the high points ... but i'll add my name to the missive anyhow.
http://www.shovemedia.com/ioLib/preload.as is my latest attempt at dealing with these issues. Still doesn't handle the possibility that the new swf replacing the old swf is the same size (likely the same file) ...
Posted by: jon williams at April 16, 2003 01:07 PMGood call Colin... thanks for your research and initiative.
We've been trying to build a que for preloading a large number of files into a combination of movieclips and levels.
We'd had a lot of trouble, and your documentation above helps explain some of it.
We've had to implement Brandon's eventBroadcaster to define events for the preloading. This part works, but why aren't these events built in automatically MM?!
Posted by: Bob Clagett at April 16, 2003 01:02 PMYes I agree, it is probably the #1 most asked question. Printing is a bigger issue on my list, but preloading is probably the 2nd on my list.
I've had the same issues you mentioned and get sick of having these issues too:
1. When using the streaming feature in the IDE, thte loadMovie method does not seem to care.
2. I hate not knowing when an object will be available...
I also agree with the API you proposed. I have a preloader class that I use myself that has almost the same api.
Posted by: Chafic Kazoun at April 16, 2003 12:45 PMIn addition to the above, there is also the rendering (or non-rendering) of a jpg being loaded. I always check some property of the MC after loaded == total, such as mc._width > 0. So I'd add to the wish list a detection for loading files that won't render and an onRender() method.
Posted by: Ralph Cory at April 16, 2003 12:13 PMWell done Colin for taking the initiative to do this, I have spent far too many hours farting around with the aforementioned functions.
I've recently noticed that Zonealarm also stops getBytesTotal from returning anything sensible until the movie is fully loaded. The only way round this is to store the size of the items I’m loading in an array and using them instead, pain in the bum or what?
Please sort your messy code out MM.
Posted by: gef at April 16, 2003 11:58 AMGood call Colin!
In one project I resorted to passing string paths to my preloader, in order to accomodate _levels.
Posted by: Peter Hall at April 16, 2003 11:50 AM