Great advice, Ryan. Especially that depth spacing tips, I've never thought of it. Both yours and Andreas' advice are very useful for a noob like me. :)
Thanks, -- Anggie Bratadinata Graphic|Web|Flash Jl. Raya Langsep 21 Malang - East Java I N D O N E S I A www.ibshastautama.com www.nextrand.co.id On 2/3/06, ryanm <[EMAIL PROTECTED]> wrote: > > Good advice, all of it. Just a couple additions... > > > * Don't paint yourself into corners - Make sure what you do is flexible > > enough so that the client spec has some lebensraum > > > Huhu! Ihr Deutscher stellt dar... > > > On the subject of reusable code, yes, whenever possible. AS2 and OOP > > really brings this to the forefront. An example is a simple static class > i > > wrote that does tooltipping. Whenever i need a tooltip on mouseOver > right > > now, i'll drop ToolTip. > > display("This is the friendly assisting text"); in the onRollOver and > > ToolTip.remove onRollOut etc. Since writing that stupid little class, > i've > > used it on 3 apps, and i've felt a warm fuzziness every time it just > > worked without screwing with the rest of the application. > I wrote a similar drawing class, called UIPlate. It basically draws > rounded rectangles, but it reads CSS so I can just assign a classname to > the > object and it takes in all the settings from the style. I can set size, > shape, gradients, stroke settings, text alignment, font, text color, etc > all > from a style sheet, so that when they change their minds about the font > and > text color (and they *always* do), it's as easy as changing the style > sheet, > no recompile necessary. I've used it in a dozen large applications, and > several dozen small, one off apps, because instead of having to draw > something or import artwork, I can just build a style sheet. Instead of > creating rollover states, I can just do this: > > function onRollover(){ this.setStyle("styleName","buttonover"); } > function onRollout(){ this.setStyle("styleName","buttonout"); } > > It makes it insanely fast to create mockups and the like, and since > the > majority of UI elements are rectangles anyway, it makes it very easy to > quickly create those kinds of elements even without knowing what they will > eventually look like, and they are easy to change later. > > > Declare depth variables such as backgroundDepth, cloudsDepth, UIDepth, > > horseDepth (i had to), and explicitly set them. Referring to depths by > > names like this is just a nice little cushion that reads better. > I often go a step further and declare a bunch of constants in my main > class, things like defualt padding between objects, default > fonts/sizes/colors, etc, that way they can all be changed from one place > and > used throughout the app. For scaling apps, I will often get > Stage.width/height either right at the beginning or at the top of the > redraw > function, that way I'm calling the same variable and I don't have problems > with the stage size changing while I'm in the middle of drawing, and it > doesn't have to look it up repeatedly. > > Another little bit of advice you may find useful, don't put depths > right > next to each other, leave room between them. When developing a UI, I often > put them 10 depths apart, as in navigation container at 10, content > container at 20, footer container at 30, etc, instead of at 1, 2, and 3. > That way, if I need to add a new section, or if I need to drop in > additional > elements like a scrollbar, etc, I have a depth available without having to > go through the code and increment all the subsequent depths. Since there > are > 65k depths available and I rarely use more than a dozen on any given > timeline, I figure spacing them out is safer than putting them right next > to > each other. > > ryanm > > _______________________________________________ > 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