Legacy SWFs not playing nice with their new parents

OK, information pills I give up! While updating a project my company completed a couple years ago, food I’m now running into a boatload of issues related to Flash player versions and publish settings, and I’m starting to pull my hair out.

Here’s the scenario: Our client has several “child” movie clips (SWFs created two years ago using Flash MX or MX 2004) which are loaded into a parent “shell” that controls navigation, look-and-feel, etc. For some of these clips, there are no FLAs available, so what we have is what we have. These child clips all contain actionscript hooks to functions it assumes will be found in the parent “shell” clip (e.g., _parent.doSomething(this);).

We’ve updated the shell, taking care to publish for the Flash 6 player. Now here’s the rub: We now find we have some Flash 8-only “child clips” that need to load in, too. Keep in mind we have access to source files for the new stuff (including the parent FLA), but not for all the old stuff, so we’re stuck with Flash 6 clips as a given.

No problem, I think: I’ll republish the shell for the Flash 8 player, and it should be able to load SWFs compiled for both Flash Player 6 and 8.

Apparently, this is wrong. While the Flash 8 shell does load the Flash 6 clip, it never seems to receive the function call from the loaded child clip.

For example, SWF1.swf contains the code:

_parent.registerClip(this);

This works as long as both parent and child have been published to the same player version (i.e., both parent and shell are published as “Flash 6” or both as “Flash 8”), but not when the versions differ.

I can certainly understand a Flash Player 6 parent clip not understanding the _parent call from the Flash Player 8 child, but I’m surprised a Flash 8 parent can’t answer the call from a Flash 6 child.

Make any sense? Any thoughts, suggestions, etc? Or are we just out of luck?

facebooktwittergoogle_plusredditpinterestlinkedinmail

4 thoughts on “Legacy SWFs not playing nice with their new parents”

  1. I just tried it myself with a very simple test case, a Flash 8 movie with a function called registerClip and a Flash 6 movie that calls _parent.registerClip(). Worked just fined for me.

  2. You might be able to change the header from a Flash 6 to Flash 8 file – it’s just one character. Not that much difference between the F6 and F8 file formats, apart from additions – diference is in the way the player handles the files. Good Luck,

  3. Hmmm… Curiouser and curiouser. Thanks for the input; I’m going to continue to play with this, and I’ll let you know if I can figure anything out. Meanwhile, if anybody thinks of something I might be missing… My first thought is that it might be a scope issue, but I can’t think why.

  4. decompile your old v6 swf’s into v6 fla’s

    open in flash, recompile with v8?

Leave a Reply

Your email address will not be published. Required fields are marked *