Thanks for your input Steven. I actually stumbled across Gaia just after writing something very similar in as2 complete with transition events. I was blown away by Gaia and think it may be the way to go for me for now. @Sebastian, I've basically done all the same things in as2 and have been studying design patterns for some time now. I had always intended on writing similar helper classes in as3 but was really curious if any popular frameworks replaced the need.
On Sat, Nov 15, 2008 at 2:51 PM, sebastian <[EMAIL PROTECTED]> wrote: > I think we just wrote about this, though it may have been on a different > list. Apparently this is a hot subject lately... > > Whether to use a framework or a pattern like MVC really depends on a > case-by-case assessment. The whole reason why someone invented design > patterns was to address project-specific "design problems". So it makes no > sense to say that one specific pattern will address all software > architecture needs. > > There are dozens of design patterns, each one is best suited to a > particular need. MVC, pureMVC, Carngorm, these are all basically MVC > patterns with some tweaks. > > In general keeping the M the V and C separate make a lot of sense; not just > from a clean-code perspective, but also in terms of code-re usability. > > Coding in such a way that you promote code re-usability is, IMHO, a really > smart way good to go. Encapsulation is far more important than any one > particular frame work. Keep the project-specific variables/sprites totally > separate from the logic. That way you can re-use the logic again in a future > project and accelerate your development speed continually from project to > project. > > Encapsulation also reduces debugging time considerably -- if you know that > an object works, then under similar conditions in a future project it will > still work, reducing the areas you need to investigate when debugging. > Exceptions, often done following change requests and in quick-fix debugging > sessions, are your wizards bane. > > So by keeping the actions separate from the data or visual code, you can > re-use them easily between projects. And by keeping the visual elements > separate, you allow visual classes to be re-usable, same with model classes. > > To me, it is this clear separation that provides the real benefit. It > creates both clarity in debugging as well as modular code. Nothing is more > annoying than finding a class that animates sprites, creates visual > elements, loads data and stores it and also defines for each button the same > exact action as was in 3 other class files -- if I need to change anything I > need to spend precious time hunting where it is and then changing the same > lines of code in 3 different places! > > The more modular the code, ultimately the faster you can code, which means > the more complex your projects can become and the higher your hourly rate > can become. > > Examples: > > If you write an AS3 function that sets up tabs for a navigation, you never > have to write than code in AS3 again in any new projects -- encapsulate the > whole 'building the nav' logic, and just change the imported assets you need > externally to that class and pass it some parameters that relate to dynamic > variables [margin between elements etc]: loadNav.load > (xmlFile,navButtonSprite,Parameters); > > Same with an XML parser, I just have an static method in a custom class I > made that I can call, I pass it the function I want it to return to when > done loading and voila. Now when I want to load in new XML I never have to > write: 'load', 'onload' etc all I write is 'import myCustomXMLloader' and > then 'ParseXML.load (xmlFile, callingObject, functionToCallWhenDoneName);' > > Same with preloaders, I use a static method which I pass the preloader > sprite, image/movie to load and some parameters for position/alignment and > it does the rest: 'Preloader.load (asset, preloaderObject, > parameters:Object); > > Hope this helps, > > Seb. > > > Paul Andrews wrote: > >> A framework gives you amethod of organising your code in a manner that >> aids development and maintenance. Using a framework makes your code >> organisation understandable to others that are familiar with the framework, >> so it aids cooperative/team development. Potentially you can work on other >> projects that use the same or similar framework more easily and maybe pick >> up some coding guidelines/shortcuts and understand the strategies followed >> by others. >> >> In tiny projects frameworks aren't too important. In larger co-operative >> projects it is important for the reasons above. >> >> Paul >> ----- Original Message ----- From: "Joel Stransky" < >> [EMAIL PROTECTED]> >> To: "Flash Coders List" <flashcoders@chattyfig.figleaf.com> >> Sent: Saturday, November 15, 2008 5:00 PM >> Subject: Re: [Flashcoders] frameworks and flash >> >> >> @ekameleon, that seems a little intense for me atm. This discussion is >>> mainly about weather or not it's just dumb not to use a framework vs. >>> plain >>> as3 when building common flash sites. I'm looking to hear things like, >>> "PureMVC makes everything easier." or "It makes no sense not to use >>> Mate." >>> >>> On Sat, Nov 15, 2008 at 2:42 AM, Hans Wichman < >>> [EMAIL PROTECTED]> wrote: >>> >>> Read the article, some good, some bad. >>>> If anyone declares you for a fool if you prefix interfaces with 'I' >>>> and use marker interface, I tend to gloss over the rest of the article >>>> since it no longer comes across trustworthy... Personal preference >>>> aside:) >>>> >>>> On Sat, Nov 15, 2008 at 12:05 AM, David Hershberger >>>> <[EMAIL PROTECTED]> wrote: >>>> > Haha! Before you try Cairngorm, check out this article: >>>> > >>>> > >>>> >>>> http://blog.iconara.net/2008/04/13/architectural-atrocities-part-x-cairngorms-model-locator-pattern/ >>>> > >>>> > Having used Cairngorm for a while now I have to agree with him. The >>>> article >>>> > is pretty harsh, and it only talks about the ModelLocator part. >>>> > >>>> > Dave >>>> > >>>> > On 11/14/08, Joel Stransky <[EMAIL PROTECTED]> wrote: >>>> >> >>>> >> Thanks for the post Dave. Cairngorm sounds a lot like PureMVC which >>>> >> does >>>> >> away with events and implements a global command structure. So far >> >>>> it's >>>> >> appealing although my first run in with it was under bad conditions. >>>> A >>>> >> client of a friend had mangled it something fierce before he was >> >>>> brought >>>> in >>>> >> at which point he brought me in to implement deep linking. It was >>>> ugly >>>> to >>>> >> say the least. I have however heard great things about it since then. >>>> >> My >>>> >> gut >>>> >> says I should know how to do this stuff on my own before I go relying >>>> too >>>> >> heavily on tools that prevent me from getting to know the inner >> >>>> workings >>>> >> intimately. >>>> >> >>>> >> It's just tough to esitmate flash/flex work effictively anymore >> >>>> without >>>> a >>>> >> framework involved it seems. Clients don't have the time or budget >>>> for >>>> >> builds from scratch. Flash used to be so fun but now it's a constant >>>> >> learning curve. ugg. >>>> >> >>>> >> Interestingly enough I looked up the cairngorm site and saw a link to >>>> this >>>> >> blog post made just yesterday: >>>> >> http://www.anandvardhan.com/2008/11/13/popular-flex-frameworks/ >>>> >> >>>> >> This should also be informative. >>>> >> http://www.insideria.com/2008/11/new-poll-which-flex-framework.html >>>> >> >>>> >> >>>> >> >>>> >> On Fri, Nov 14, 2008 at 1:52 PM, David Hershberger < >>>> [EMAIL PROTECTED] >>>> >> >wrote: >>>> >> >>>> >> >>>> >> > We have been using Adobe Flex for the past year and have really >> >>>> > liked >>>> it. >>>> >> > It would be hard to call it "blazing" and "bloat" does seem like it >>>> might >>>> >> > apply to some extent, but on the other hand it does so many nice >>>> things >>>> >> for >>>> >> > us it is hard to argue with. MXML is very powerful, but there is >>>> >> certainly >>>> >> > a big learning curve. For basic stuff, buttons and containers and >>>> text, >>>> >> > it's easy to get started. There are lots of subtle details though, >>>> >> > so >>>> >> when >>>> >> > you start wanting to do things in ways the Flex authors didn't >>>> anticipate >>>> >> > it >>>> >> > often takes experimentation to find a way that works. The Flex >>>> framework >>>> >> > code is open source at least, so you can always dig into that and >>>> >> > see >>>> >> what >>>> >> > it's doing. >>>> >> > >>>> >> > We have also used Cairngorm, with mixed results. Cairngorm doesn't >>>> >> really >>>> >> > give you much code, it is mostly a set of design patterns. Some of >>>> the >>>> >> > important code it does give is a "controller" which connects >> > >>>> Cairngorm >>>> >> > Events to Cairngorm Commands. Cairngorm events inherently know >> >>>> > their >>>> >> > dispatcher, which is a singleton, so you can just fire off events >>>> >> > like >>>> >> so: >>>> >> > new SaveGameEvent(game, user).dispatch(); >>>> >> > and the controller connects that to the appropriate >>>> >> SaveGameCommand. We've >>>> >> > come to the conclusion that Cairngorm is great for situations where >>>> most >>>> >> > user actions imply immediate communications with a server, but not >>>> >> > so >>>> >> > useful >>>> >> > for situations where user actions are just manipulating data >> > >>>> internal >>>> to >>>> >> > the >>>> >> > .swf. We have ended up using Cairngorm Events and Commands just on >>>> the >>>> >> > networking side of our app, and for everything else we do more of a >>>> basic >>>> >> > Model/View pattern. >>>> >> > >>>> >> > I don't believe Cairngorm relies on Flex, but Flex gives you "data >>>> >> binding" >>>> >> > which works very nicely with Cairngorm. Flex data binding lets you >>>> mark >>>> >> > certain state variables with [Bindable] and then the compiler >>>> builds >>>> >> > data-change events for you. Then your view mxml classes use the >> >>>> > data >>>> >> > binding syntax like <Label text="{game.description}"/> and the view >>>> >> updates >>>> >> > automagically whenever the Game's description field changes. A >>>> Cairngorm >>>> >> > command might query a server and then the server-response-handler >>>> in >>>> the >>>> >> > command can set game.description. >>>> >> > >>>> >> > Dave >>>> >> > >>>> >> > On 11/14/08, Joel Stransky <[EMAIL PROTECTED]> wrote: >>>> >> > > >>>> >> > > Hello, >>>> >> > > So I'm trying to nail down a work flow for building flash sites >>>> (read: >>>> >> > not >>>> >> > > flash applications) in as3. I had just about mastered fast seo >>>> friendly >>>> >> > as2 >>>> >> > > sites when as3 came out and now that I'm making a concerted >>>> effort >>>> to >>>> >> > > modernize my skills I feel like I'm starting from scratch in many >>>> ways. >>>> >> > > >>>> >> > > Enter frameworks. So far I've looked at >>>> >> > > Gaia<http://www.gaiaflashframework.com/index.php>, >>>> >> > > PureMVC <http://puremvc.org/content/view/67/178/>, >>>> >> > > Mate<http://mate.asfusion.com/>and Enterprise >>>> >> > > Architect <http://www.sparxsystems.com/products/ea/index.html> >>>> (please >>>> >> > add >>>> >> > > any others I haven't listed) >>>> >> > > On the upside, I like the idea of rapid development and reduced >>>> >> monotony. >>>> >> > > But the most important thing to me is extremely lightweight >> > >>>> > blazing >>>> >> fast >>>> >> > > flash using the least amount of bloat. In a perfect scenario, I >>>> don't >>>> >> > want >>>> >> > > extra file size due to wrappers of core commands. >>>> >> > > >>>> >> > > So, assuming I'm comfortable with the file size/rapid development >>>> trade >>>> >> > off >>>> >> > > with one of these packages, my concern then becomes one of >>>> dependency >>>> >> and >>>> >> > > learning curve. After learning a new API, am I going to have to >>>> >> > > hack >>>> or >>>> >> > > work >>>> >> > > around it for those interesting situations that always seem to >>>> pop >>>> up? >>>> >> > What >>>> >> > > if something major changes on the flashplayer and my chosen >>>> framework >>>> >> > > doesn't address it? I fear becoming too dependent on a 3rd party >>>> api. >>>> >> > > >>>> >> > > I'd really like to know what you guys are using, any development >>>> horror >>>> >> > > stories you have because of it as well as any insight you can >>>> provide >>>> >> > about >>>> >> > > the concerns I've listed. >>>> >> > > >>>> >> > > Thanks for your time. >>>> >> > > >>>> >> > > -- >>>> >> > > --Joel Stransky >>>> >> > > stranskydesign.com >>>> >> > > _______________________________________________ >>>> >> > > Flashcoders mailing list >>>> >> > > Flashcoders@chattyfig.figleaf.com >>>> >> > > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>>> >> > > >>>> >> > _______________________________________________ >>>> >> > Flashcoders mailing list >>>> >> > Flashcoders@chattyfig.figleaf.com >>>> >> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>>> >> > >>>> >> >>>> >> >>>> >> >>>> >> >>>> >> -- >>>> >> >>>> >> --Joel Stransky >>>> >> stranskydesign.com >>>> >> _______________________________________________ >>>> >> Flashcoders mailing list >>>> >> Flashcoders@chattyfig.figleaf.com >>>> >> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>>> >> >>>> > _______________________________________________ >>>> > Flashcoders mailing list >>>> > Flashcoders@chattyfig.figleaf.com >>>> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>>> > >>>> _______________________________________________ >>>> Flashcoders mailing list >>>> Flashcoders@chattyfig.figleaf.com >>>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>>> >>>> >>> >>> >>> -- >>> --Joel Stransky >>> stranskydesign.com >>> _______________________________________________ >>> Flashcoders mailing list >>> Flashcoders@chattyfig.figleaf.com >>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>> >> >> _______________________________________________ >> Flashcoders mailing list >> Flashcoders@chattyfig.figleaf.com >> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >> >> _______________________________________________ > Flashcoders mailing list > Flashcoders@chattyfig.figleaf.com > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > -- --Joel Stransky stranskydesign.com _______________________________________________ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders