Well I have been doing some more coding. It is surprising how long it can take for such a little difference. I have split the display into two. I added two empty movieclips that are for each side of the display/stage. They are associated with a 'Screen' class, and there is once instance created for each side of the screen i.e. a left and a right. Each character and associated control gets assigned to a screen.
Coordinates systems are relative to the screen (and not the stage), so are the same for each side, which means no code changes in that regard. Although there is a
lot of changes regarding assigning characters to screens, and double drawing.
In terms of control I have the 'Controller' which is the main object and in charge of everything (what happens when etc). It gets kicked off in the _root AS frame at the start.
I also have two keylistener objects (same KeyboardControl class, just two instances - one for each control (left and right). It seemed like the simplest thing to do rather than having one object handling both controls at once.
I don't know if flash is multi-threaded or not, but I am assuming not. i.e. listeners are executed sequentially one after the other, rather than in parallel. Things could get a bit messy otherwise!!!!
The room switching has broken again, but that is because the url for the door clips have changed since adding screens to the hierarchy. Will fix that tomorrow before the meeting. I'd rather not use relative urls to reference the door clips (e.g. _root.left.rooms.kitchen_lounge), but that seems to be the only way. I don't think that you can get/find an instance of a movieclip unless you know its unique id (which I do have) and it's depth (which I don't have)... unless that whole movie clip is treated as one. An example would be the SideCroller.fla file with the ball. There is a reference to a symbol 'level', and 'ground' and 'ground2' within that. How many depths would be assigned when the 'level' moviclip is added to the stage? 1 (just for 'level') or 3 (one for 'level', 'ground', and 'ground2')???
I am raving here, but it has given me some thoughts for tomorrow...
I also restructured the character symbols so they are only one layer and a single frame. We were doing some frame switching before to display character labels at the 'Choose Character' screen, but it is easier just having different movieclips rather than having different frames within a single movieclip. The later has a limitation in that timelines can't run/play backwards (I think that's right?), so it doing it this way is probably better.
At the moment the character has only one clip associated with it, so will probably need to augment the code so that there are different clips associated with different character actions.