Alright, update time.. wasn't sure if I should post all this, but at the very least it may provide insight for others down the road, though I can't say this is the best way of doing things at all. If anyone has advice, please chime in.
This is how I have things physically structured so far on the timeline:
Top layer contains my player mc, plus all objects that will appear at any point in the game that I want to be able to swap depths with the player mc. This includes non-interacting barrier objects as well as interactive ones.
Bottom layer contains all my "room" movieclips. Inside each room mc, they will generally consist of all room graphics, objects the player can interact with that will always be below the player in stacking order, and a "footprint" for that room (see the teal colored area in the pic at top of thread) that will perform the hitTest that controls where the character can and cannot walk. There will also be invisible dummy movieclips placed in any entryway that will perform hitTests as well on the player mc and send the parent timeline to the appropriate frame when touched.
The main timeline will consist of a number of keyframes, one for each room. There will be a keyframe for each room on both layers, for the room movieclip and the room content movieclips. I'm not too happy with having the player mc on a keyframed timeline along with all the object mcs , but once again, only doing it because I need the swapDepth functionality.
Movement
The arrow keys control the x/y position of the player. While moving, there are IF statements constantly checking if the player is in the middle of the screen, and if so, whether or not the current background movieclip extends past the edge of the player window; if so, the game will begin panning the background movieclip rather than the player until the end of the room is reached, at which point the player mc is affected by movement once again.
When the player reaches one of those invisible dummy movieclips found within the room movieclips, the player mc's x and y properties are set so he's entering the new room at the right position. The timeline then jumps to the new room's frame.
----------
Here's a problem though that I'm currently working on to find a solution, and I believe it may involve the arrays/classes/whatever that Woadraiders had mentioned.. when the background movieclip pans, I need all the current room's content movieclips to pan as well. Seeing as there will be so many, this poses a problem.
What I've worked out so far is a piece of code similar to this below: when the movieclips I've chosen load in, they assign their instance names to an array for the appropriate room, ie. room2Array. Unfortunately (as far as I know) it isn't possible to then control a group of movieclips at once (properties such as _x, _y, _alpha, etc) so I have to use a FOR loop to affect each mc in the array in one go. Code looks like this:
btn.onPress = function() {
for (i=0; i<3; i++) {
_root[circleArray[i]]._x += 5;
}
}
This works if there are 3 movieclips in that room's array. I could swap out those numbers in favor of variables and have everything run more dynamically, but this is just an example. Clicking the btn movieclip sets the x position of all movieclips in the circleArray ahead by 5 points; it does so one at a time, but the FOR loop runs so fast they appear to move at once.
Just for the hell of it, here's the code that's placed on each movieclip I want included in that array:
onClipEvent(load) {
_root.circleArray.push(this._name);
}
The other thing I haven't decided on yet is whether I want to place EVERY object mc in the game on the first frame of the main timeline along with the player mc, and assign all object mc's to their respective arrays right off the bat, and then use the visibility property to only show the array of objects respective to the room the player is currently in.. so simply put, everything is made invisible once the games starts except the movieclips in the current room; you switch a room, the new set of movieclips is made visible.
Picking up and carrying objects
I think the way I'm going to manage this is by throwing any objects I want the player to be able to pick up into the arrays of room objects. When the player picks something up, the object isn't then "locked" onto the player, but rather it's visibility is turned off and the player mc will go to a frame where he's holding that object - the object will also be removed from it's current array. When the player sets their current object down, it simply makes the object visible again, sets it's x and y properties to math that of the player, and adds it's instance name to the array of whatever room the player is currently in.
----------
That's all I have to add for now, apologies if it's hard to read, I was mostly just spilling my thoughts out in hopes any procedural errors will be caught by those more experienced, as well as provide as provide ideas for those who want to take on games such as these, as I haven't really seen much of this covered before.
Once again, all input is encouraged!