Very strange one.
Our air application loads multiple swfs, which together make up a lesson.
If we load them serial, rather than parallel, the code inside all swfs is broken. (There's a previous stackoverflow q on this issue). If they are loaded in parallel all timeline top level code works.
On Mac, all code works, including deeply nested code inside MCs inside MCs, all the time, regardless of the order in which loading of the swfs completes and inits.
On PC, top level (of each swf timeline) code always works, but deeply nested code is only running dependent on the order in which the loading of the swfs completes and inits.
Referring to the swfs as A,B,C and D, if the init order is A,B,C,D then code in swf A (deeply nested code only) does not function - even stop() is not working. This only happens on PC.
If the swfs init in the order B,A,C,D or even C,B,A,D then everything is as it should be. (It has been a fairly long process identifying this pattern!)
On occasion more than one loaded swf is having problems - I haven't been able to spot an obvious pattern behind this.
All 4 swfs run fine as stand-alones. All 4 swfs run fine in the Mac version. All 4 swfs should be loading into their own application domain as Air doesn't permit anything else, and the application domain is also being specified as a new domain each time. There are no detectable domain problems - no errors are being thrown.
Clearly something is borked. I don't believe the borked thing is in my code, as the application functions perfectly on Mac, and is only broken dependent on load complete order in the PC version, and only deeply nested code is borked.
The items which are borked (MCs with non functioning code) are not exported in the library as symbols.
Has anyone come across this, or anything similar to it?
Some variations I will experiment with:
1) Exporting the symbols for MCs with code in the library so that they load in frame1 (before the init event fires) even though they don't need this.
2) Not manually specifying the application domain but letting it default (to the same value)
I'll document my findings here. Can anyone think of anything else worth varying to see if there's an impact?