Finding the best way to design/structure AS projects

First, being completely new and having this be my intro message, I’ve got to say that I’m already in love with the amounts of knowledge that I see floating around on this site. Because of this, I thought I’d post about something that I’ve been thinking about strongly for the past few days. I’ll apologize first for it’s length, but I really do hope that this may stir up some dialogue, as I’m trying desperately to wrap my head around the concept, and I think I need the combined knowledge of others to sort of get it straight…
Ok so I’ve done a little bit of thinking.
I just finished my very first all-ActionScript (3.0) website,www.glamourosity.net, for a friend/client. It’s most definitely been a learning experience. Though my confidence in the language is much stronger now, I still have questions in terms of general “good practices” in design. I’ve sat around a lot of today trying to decide how best to design a Flash page. With my recent attempt I found that breaking everything up into separate sections in a hierarchy seemed to work best.
Glamourosity.net was essentially built with Legos in mind. What I found with this structure is that coding for the respective elements in this manner was a Lot easier, and debugging hasn’t been terribly tragic (even considering that it’s a one-person team). My problem is that in order for the separated elements to communicate, you have to toss in all of these really ugly work-arounds which I’ve always understood to be bad things (I remember my first large C++ project, an AI engine – yeah, in retrospect, what a first start! – that was also a pain in the assicuss because I got entirely too friendly with the friend classes). Then you don’t want everything to be ‘integrated’ so much, either, because of the afore mentioned debugging hassle that’ll come of that.

So what do you do? How does one find that perfectly harmonic balance somewhere in the grey area between Building Block Structure and All-Out Chaos? Is there a such thing?

I assume that the best way to go is Building Block, but in a manner such that the parts that need to communicate may. But it’s still not very useful in a situation where quite a few (if not all) elements need to communicate with every other one… Which, in itself, is probably a bad idea, but I am likening it to video games and other highly interactive media. There’s an input and output, just like with any website, but with video games, just between those two points, many distinct elements (physics, audio, positioning, AI, graphics engine & post-effects) interact to give you one coherent frame. This is a merging I’d like to understand and implement in future projects.

So I’ve basically started this thread in hopes of finding those that have either mused over these questions and their findings, or others whom have set ways that they design and code by that have worked for them through their projects. I assume that this is a good topic for many others like me whom are just interested in a better way to get into bigger projects. I personally really like to code (or rather, I like the part right before I start coding, with big, brilliant ideas, and the part after all of the debugging and destroyed fragments of ‘brilliant’ code that work now, but not for the past few days lol; when it all works…) - there’s an entire universe to build with just code and your imagination, as I see it. But I’m finding now that it is entirely too easy to get lost in that fog somewhere between a great idea and displaying said idea on screen… lol.

Well that’s about it. If you would like to see/share any source code, I’d be more than happy to - I’ll be embarrassed at how atrocious the code looks (and apologize in advance lol), but I’m really open to sharing code, just because it’s the best way to ‘get it’.

Thanks and Bests to all.