How to best manage multi-frame MovieClips with classes?

Posted by Arms on Stack Overflow See other posts from Stack Overflow or by Arms
Published on 2010-05-09T16:21:58Z Indexed on 2010/05/09 16:28 UTC
Read the original article Hit count: 160

Filed under:
|
|

After switching to AS3, I've been having a hell of a time figuring out the best way to manage MovieClips that have UI elements spread across multiple frames with a single class. An example that I am working on now is a simple email form. I have a MovieClip with two frames:

  • the 1st frame has the form elements (text inputs, submit button)
  • the 2nd frame has a "thank you" message and a button to go back to the first frame (to send another email)

In the library I have linked the MovieClip to a custom class (Emailer). My immediate problem is how do I assign a MouseEvent.CLICK event to the button on the 2nd frame? I should note at this point that I am trying to avoid putting code on the timeline (except for stop() calls). This is how I am 'solving' the problem now:

  • Emailer registers an event listener for a frame change ( addEventListener("frame 2", onFrameChange) )
  • On the 2nd frame of the MovieClip I am calling dispatchEvent(new Event("frame 2")); (I would prefer to not have this code on the frame, but I don't know what else to do)

My two complaints with this method are that, first I have calls to addEventListener spread out across different class methods (I would rather have all UI event listeners registered in one method), and second that I have to dispatch those custom "onFrameChange" events. The second complaint grows exponentially for MovieClips that have more than just 2 frames.

My so called solution feels makes me feel dirty and makes my brain hurt. I am looking for any advice on what to do differently. Perhaps there's a design pattern I should be looking at? Should I swallow my pride and write timeline code even though the rest of my application is written in class files (and I abhor the Flash IDE code editor)?

I absolutely LOVE the event system, and have no problem coding applications with it, but I feel like I'm stuck thinking in terms of AS2 when working with mutl-frame movieclips and code. Any and all help would be greatly appreciated.

© Stack Overflow or respective owner

Related posts about flash

Related posts about as3