16 August 2011

Flash Player AS1 Shared Library Bug

I came across a critical bug in Flash Player, a security update that was released on Thursday 11th August 2011.

Basically, if you use shared libraries from circa Flash 6 / AS1 with a 2 frame preloader that uses either nextFrame() and/or gotoAndPlay(1), the whole containing swf movie will unload itself and you're left with a blank screen.

Here's the detail:

Google Chrome users get Flash updated immediately and automatically and were the first to call tech support. The legacy games would load and then... nothing! Calls from IE and FF users soon followed. As we have lots and lots of swfs for old games still in use, a mild wave of panic started to fill the office.

Luckily the fix is simple, it's just a case of altering the preloader by removing the offending nextFrame() or gotoAndPlay(1). We ended up removing the preloader entirely as the 40k file size of the shared library is tiny by today's standards. Unfortunately for us, we had to do this on 400+ fla's, test them and release them as a hotfix to our clients.

Another cracking update from Adobe! In the UK, this is known as "dropping a bollock!"


Anonymous said...

This bug is a lot worse for some of us.
Any use of functions that control the flow can cause the Movie Not Loaded problem when you have a sharedLibrary item on stage.

prevFrame, nextFrame, gotoAndStop, play, etc.

It's not just limited to pre-loaders, it's anything that has code either on the frame that moves to a different frame, or code that is in the enterFrame event.

We have several hundred files that make up the UI to our application that have code doing just this. Not a quick fix, nor simple...

Anonymous said...

And a fix has just been released! is available now, however users already on will not auto update so this problem may be around for a while yet...