AS3 OOP - Best design / efficiency practices?

So I’ve been developing a lot more complex Flash projects as of late, and I often find myself fussing over the same decisions over and over. I try to follow good OOP practices as best I can, so I can have nice clean reusable classes and painless debugging etc. Anyway, I recently ordered this book, but in the meantime, I’d like to know how a few of you guys prefer to operate in certain situations.

  1. Controls (buttons & interface)**
    Say I have some hand-drawn buttons in my GUI. Better to make them extend the CS4 Button class, or have them extend MovieClip and listen for all mouseEvents in a sort of “ControlPanel” container, then switch:case depending on button ID? (Hope that makes sense; I could draw up some UML maybe?)

**2. Handling XML
**When you load up an external XML instance, then pass certain fragments / XMLLists around, is it all passed by reference? I’m trying to properly implement Dicts and Vectors in cases where I need to handle associated content- ie:

A simple photo gallery loads XML, passes xml data for a list of photos. How to organize the association with the photo loader - pic thumbnail location - picture index in album? Should bottom level objects like links and photo loaders contain integers to report their current index, or should there just be some sort of big table in the main class instance that keeps all the lists or vectors or whatever parallel?

3. Preloading (Flash CS4)
With auto-declare named instances off and export classes in frame 2+, whats the best way to make sure your preloader is actually preloading everything (since any references to other classes will automatically preload them in frame 1)? I guess you just keep your main document class a MovieClip, and then add an instance of your real “master” class a few frames down…? Seems sloppy. Else I guess you could just make an entirely separate swf that exists only to load your deployed projects, and then replace itself with them?

Anyway, hope this was reasonably coherent. If not, even links to as3 design patterns or examples of complex projects would be appreciated. Thanks! :megaman_classic: