Flash tells you very little about what is supported or not when you export
to an earlier version.
The reason is that it has no idea .. all the Classes, object and methods are
determined by the version of the player. NOT by Flash itself, or the
publish settings.
So you can quite happily write stuff with publish settings set to Flash 5,
but uses methods only in Flash Player 7, and you won't know any better.
Unless you are lucky and it has some obvious affect on your movie when it
fails.
Flash Player itself is very quiet and introverted. .. if something goes
wrong it usually says and does nothing. So if you call a method that does
not exist, then you get no errors .. just nothing happens. That is
understandable, because you would not like visitors to your website getting
lots of obscure message if something goes wrong in your movie. But it does
not help you find out what you're doing wrong.
The only things Flash itself will pick up when you publish is syntax that is
not supported (eg try/catch).
For example.. if I start an empty movie and write in frame 1
y = x;
x = f();
then run the movie .. there is no error messages about there not being a
definition for function f. If I do the same thing in SWISHmax, I get this:
[quoted text, click to view] >>
ERROR: Cannot find variable or function "x" in statement:
Scene_1::onFrame(1)::y = x
Referenced from: "_root"
ERROR: Cannot find function or member "f" in statement:
Scene_1::onFrame(1)::x = f()
Referenced from: "_root"
[quoted text, click to view] >>
This is one area where Flash is very unhelpful when it come to testing and
debugging script.