CIPS CONNECTIONSINTERVIEWS by STEPHEN IBARAKI, I.S.P.
Flash Expert Shares Secrets
This week, Stephen Ibaraki has an exclusive interview with the highly regarded Flash expert David Vogeleer.
David Vogeleer is a Macromedia certified Flash developer as well as a certified Flash Instructor out of Richmond, Virginia. He has been working in Flash since version 4, focusing mainly on ActionScript. Currently freelancing, David also continues to speak at user groups and classes up and down the east coast. He is also an avid poster on FlashMagazine.com as well as being co-administrator of EMLlabs.com, a Flash, and dynamic content resource.
David’s latest book credit is “Macromedia Flash MX Professional 2004 Unleashed”.
Q: David, as an acknowledged authority in Flash, we are fortunate to have you with us to do this interview—thank you!
A: Thanks for the opportunity; I love talking about Flash to anyone who will listen.
Q: You have an interesting background. How did you get into computers and into Flash?
A: I’ve been into computers since I was in high school, it made homework a lot easier, but I didn’t get into programming or Flash until a few years ago.
How I initially got into Flash is a little different than most people, it was out of spite. A friend of mine was working in Flash 4, and he loaded a copy of it on my laptop. After I did a small animation, my friend said it was cool, but it was nothing compared to what he could do. So, I got a book on Flash, learned everything I could about the basics, and now my friend won’t even open Flash. Of course once I got into ActionScript, I was hooked.
Q: Tell us more about your work with FlashMagazine.com and EMLlabs.com. Share ten of your special tips.
A: FlashMagazine.com is a great site I have been involved with for a couple years that goes over everything related to Flash from tutorials about how to use it, to book and software reviews. EMLlabs.com is a site myself and Eddie Wilson (Supreme Flash Designer) are devoted to combining Flash and dynamic content with tutorials, tips and resources.
Here is a list of my top ten tips:
1) Name every instance of every object on the stage, whether you will need it or not.
2) Comment your code as you are writing it. You will never remember everything when you go back later to comment.
3) Test early and test often, especially with data driven applications.
4) No more intros, please.
5) Make as much of the content as you can dynamic, it will save more time than you realize in the long run, and it will also save in file size.
6) If you have code you use more than once, put it in a function, it will save file size and headaches if you have to go back and make changes.
7) Know your users when you develop applications, what their needs are, what kind of computers they are on, and what their bandwidth will be.
8) Get comfortable in the authoring environment. It’s important for good work flow to have everything the way you like it, so adjust the panel layouts, preferences and the stage itself to just the way you like it.
9) Learn the keyboard shortcuts, it will save development time, and create a better work flow if you don’t have to keep searching for the tools you need, or the commands you want use.
10) Name every instance of every object on the stage!
Q: Can you describe your greatest current challenges?
A: Right now, some of the challenges I’m dealing with are trying to balance teaching, client work, writing and staying as current with Flash as I possibly can.
The Flash community is amazing. Every week there is some new technique or work around or hidden feature being published on one of the numerous Flash blogs around the Internet and it’s important to me that keep as up to date as possible.
The most current personal projects I have been working on are creating tools and components to extend the capability of Flash, and I will begin releasing more information about them on EMLlabs.com in the near future.
Q: What are the best new features in Flash MX Pro 2004?
A: Macromedia didn’t hold back on features for their new release of Flash. Besides being able to finally add images and other SWF files to text fields, you can now stream videos directly in; have alias text and spell check everything on the stage and even code. But my two favorite features are the new ActionScript 2.0 and JSFL.
The new ActionScript structure is awesome. It allows faster developing with stricter data testing. And building your own custom classes is now simplified; no more do you have to create an object class by creating a function. And with this new architecture comes a new set of components. Components 2.0 are faster and better structured than the previous set. They even now have Data Binding, which allows their data to be tied to other components without any ActionScript on the users part.
Q: Give us five advanced ActionScript techniques.
A: Here are a few useful ActionScript tips
1) Learn the suffixes of objects (MovieClip = _mc, TextField = _txt, etc..) There are over 1000 different pieces of ActionScript, and there is no way they can be memorized. So if you learn the different suffixes, and have code hints turned on in your actions panel, when you call an objects instance name (i.e. myMovie_mc) a drop list will appear filled with all the available actions for that object.
2) Often times, when working with external data sources, you will run into errors that are difficult to find in the data coming into Flash. Fortunately, there is a way to look at the data when it first arrives into Flash with the undocumented onData event for the LoadVars object.
When you are working with LoadVars objects, the event you use is the onLoad, but before that is called, the LoadVars object calls the onData event right when the data gets there, and this is what you need to tap into it:
//myLoadVars is the instance name of the LoadVars object
Now when you test your file again, the output panel will receive all the data coming back. Just keep in mind this will make it so the onLoad event is not called, so remove the onData event after you are done testing.
3)A lot of times, people will create functions they use with many of the Flash files they are building. There is a better way to do this than creating the function every time; you can simply extend the current objects Flash uses.
Because objects in Flash rely on the prototype chain, you can create your own methods and properties for these objects, and include them at runtime. So, if you are building a function to check whether a TextField is empty, simply create a prototype method for the TextField object that will do the same thing, and include it in your ActionScript.
4)In loop statements, the loop will run faster if you have the static part of the condition in a variable.
For instance, this:
for(var i=0; i<myText_txt.text.length; i++)
Should be replaced with this:
var tempLength = myText_txt.text.length;
for(var i=0; i<tempLength; i++)
Even though it’s an extra step in code, the code loop will run faster because it doesn’t have to call the property of the text field’s text every time, it just looks at the variable holding the information.
5) Comment your code! If you think you have too many comments, it’s probably just enough. Comment everything -- sections of code, variables, functions, everything.
Q: What are two important tips about Flash animation?
A: A couple of minor, but important animation tips:
1) Use a motion tween instead of a shape tween whenever possible. Shape tweens have to draw the shape each and every frame, but motion tweens (used with graphics or movie clips) use the first frame of the tween as a reference point, and make adjustments to that reference thereby taking up less processor power than a shape tween.
2) Do not use the default frame rate (12 frames per second) for animation, it’s way too choppy. Bump the fps up to at least 20. As a personal preference I use 30 fps.
Q: What is that current and future state of Flash gaming?
A: Flash gaming is a tricky subject. It will never replace console, or PC games. And the complexity of Flash games are never too high, but you can’t help but play everyone you see because they pack so much game in such a little package. I mean, I have seen some of the most addicting games ever built, and they were made in Flash. Better yet, they were only 30 or 40 k in file size, so anyone can play them on the web.
As far as where Flash games are going, I think as more and more devices begin to come with the Flash player built in, you will begin to see a lot more Flash games. A lot like how Java games are popping up on cell phones everywhere, I think Flash will come in and start appearing more and more.
Q: Tell us more about database support for Flash applications.
A: Flash itself cannot tie directly to any server side database on its own; it must use middleware in conjunction with the database. The good thing about Flash is that it can tie into all popular middleware languages such as PHP, ASP, .NET, Cold Fusion and even JSP. This means that Flash can be built on any server, with any backend. That makes it easy for people wanting to take their HTML driven application, and move it over to Flash.
Q: Describe the new video support.
A: Video is nothing new to Flash, but in this release it has gotten a whole lot better. Now you don’t have to have the video in the Flash file itself, you can actually stream it from the server, or a local directory. And with Flash MX 2004 Professional edition comes the Media Components, which will allow users to quickly tie into external video sources.
In Flash MX, you could stream in video, but you had to use the Flash Communication Server. Now that Flash can do it inherently, you will begin to see a lot more video on Flash sites, and a lot more Flash CD content.
You can also create the video format that can stream (FLV) right in the Flash authoring environment.
Q: What is important about XML integration?
A: XML is great because more and more applications are beginning to support it. And because it is more of a format and set of rules than an actual language, anyone can learn to create well-formed XML documents to use in conjunction with Flash. Flash has been able to work with XML since version 5, and now with 2004 Professional, there are even components that will make it easier and faster to work with external XML data.
And with Web services popping up all over the place, sending data back in XML format, there is yet another portal for Flash to integrate with XML.
Q: What are the new Flash MX 2004 components?
A: Back in Flash 5, there were smart clips; reusable movie clips that could be changed through a few parameters, but inevitably had to be changed through ActionScript because they were not flexible enough. Then came components in Flash MX, very scaleable and flexible, fairly easy to use, but large in file size, and difficult to connect to one another without having to do some ActionScript. Now in Flash MX 2004 Professional, components version 2.0 are born. These new components have an even stronger structure than their predecessors, work faster and can be tied to one another with Data Binding. They are still fairly large in file size, but Macromedia has taken steps to keep this file size limitation at a minimum.
Both Flash MX 2004 and Flash MX 2004 Professional come with UI components, but only the Professional version comes with Media Components and Data Connection Components.
Q: Your latest book credit is Macromedia Flash MX Professional 2004 Unleashed. Who should read it, why, and what differentiates it from other books?
A: Well, Flash MX Professional 2004 Unleashed is basically a book for intermediate Flash users who have worked with Flash before, and interested in seeing what else Flash is capable of. Not to say that this book doesn’t go over the basics, it does. Flash MX Professional 2004 Unleashed starts off by going over the new features found in Flash, then moves on to go over the basics of how to draw shapes, use the library and create small animations. The meat of the book starts with the introduction of ActionScript and quickly moves through some of the core features of ActionScript. It then goes on to show how to use components and how to work with external data such as XML and Web services. Then it finishes up going over some of the basics of JSFL, some software that extends the capabilities of Flash and finally a reference guide to ActionScript.
What differentiates this book from the pack is the number of topics it touches on. It doesn’t just pick one section of Flash and focus on it; it goes through many of the ways to use ActionScript not just with Flash, but also with external data and media. This book is really for someone who wants to know where to go with their Flash skills, showing them the nearly limitless possibilities Flash has to offer with countless examples and explanations.
Q: Do you have any humorous stories to share?
A: I don’t know about humorous, but I have to say at Sams publishing, I have worked with two of the coolest acquisition editors on the planet. During the writing of the first book of the series, Flash MX Unleashed, the editor I worked with most was Kim, and during the writing I mentioned I liked peeps, those small marshmallow candies (it was around Easter, so it’s not as weird as it sounds) and the next day I got a package. She had overnighted me some peeps, I couldn’t believe it. Apparently, being extremely thoughtful is a job requirement for an acquisition editor because on the most recent version of the book, Flash MX Professional 2004 Unleashed, I was talking to my new editor, Shelley, and mentioned I ran out of Twinkies the night before because I was working late. The very next day, a fresh box of Twinkies arrived on my doorstep.
Needless to say, I have been very fortunate with the editors I have worked with, not only were they great at their jobs, they were also a lot of fun to work with.
Q: Please pick three topics from your extensive work experiences. Can you share three “special and very useful” tips in each topic area?
A: Here are a few things I try live by when building applications.
Usability – make sure the application, no matter how complex, is easy to use and understand.
1) Don’t just make sure you can use it, you built it so of course you can use, make sure everyone can use it (or at least the intended audience). Get everyone you know to test it, make sure they can use it just as easily as you can.
2) Remove temptations – if you have a button, or any other type of option, that if selected at the wrong time can lead to errors, then remove that button (or disable it) during that time.
3) Try to avoid waiting times, but if you do have them, make sure the user knows they are waiting for something, don’t just give them a blank screen.
Scalability – applications are built on data, and 9 out of 10 times, that data will continually grow so make sure your application can grow with it.
1) There is no such thing as overkill when it comes to scalability. If a client says that a database will never have more than a hundred rows, plan on having a thousand.
2) Control the data flow. Flash cannot handle gigantic chunks of data (especially in older player versions) so learn to control the data coming back to Flash with middleware and/or ActionScript.
3) Once the data is in Flash, you have to make sure it can easily be sorted, viewed and controlled, so plan ahead.
Fun-ability – even though applications have to fall under certain rules for it to be usable, don’t let that take away from what Flash can really do. There’s no sense using Flash if you can’t distinguish between it and a normal application.
1) Animate things. Sometimes simple animation can go along way in making an application unique, but don’t go overboard or the application will become more of a cartoon and users will lose focus on what the application is about.
2) Sounds. Sometimes a simple click just isn’t enough to get the point across, but annoying sounds played over and over simply become more annoying, so chose wisely. If the application has a theme, look for subtle sounds that go along with that theme.
3) Interact with the user. The biggest thing Flash can do is interact, so use it in your applications. Keep the user engaged with the application, don’t bore them with just simple buttons and roll over effects, really let the user know they are not just using your application, they are in your application.
Q: What are the five most important trends to watch, and please provide some recommendations?
A: Some of the biggest trends that are, or will be affecting Flash are:
1) Mobile gaming. It’s already big in Asia and Europe, which means the US can’t be far behind. Right now, the major platform for mobile gaming seems to be Java, but with Flash’s tiny file size, it will begin to start popping up on cell phones and mobile devices all over the place in the near future.
2) Tablet PC’s. With handheld devices being a little too small to have large applications, and just a little too big to really carry around in your pocket, tablet pc’s are going to begin to take over, and with Flash’s ability to fit onto nearly any platform, the tablet pc would be a perfect fit.
3) Web services are popping up everywhere for almost everything from weather Web services to translation Web services to tic-tac-toe Web services (I swear I saw the tic-tac-toe one). And because Flash can absorb Web services directly, not only is it good practice to work with them to learn how they work, but also you can build some pretty outrageous mini-apps combing both Flash and Web services.
4) Video. Everyone now can be there own moviemaker with everyone buying digital video cams and tons of software to make your first feature film. The only problem right now is getting the video out to the masses. With Flash’s new ability to stream video in directly, and its good (not great yet) video compression, it’s the perfect choice to get video out on the web.
5) Rich Internet Applications (RIA’s). This term gets thrown around a lot especially in the Flash circle, but the truth is that Rich Internet Applications are the next thing on the web. They have the ability to tie into multiple data sources, include not only streaming video, but interactive video and sound (with the Flash Communication Server) all in a small file size, that can be played on nearly all browsers on every platform. They are not as main stream as HTML applications yet, but even shopping cart sites took a little time to spread.
Q: What are your top recommended resources?
A: Here is a list of some of my favorite resources:
1) ActionScript: The Definitive Guide by Colin Moock – the most comprehensive ActionScript reference guide on the market.
2) Flash Enabled – the best book on the market for learning how to create Flash content for devices.
4) New Masters of Flash Series of Books – these guys push the envelope of what can be done with Flash with interfaces, sound, video.
5) The Experience Economy – not a Flash book, but if you want to know what Rich Internet Applications are about, read it.
Q: What kind of computer setup do you have?
A: Right now, the computer I do most of my work on is an Alienware Area 51m laptop. It has a 3.0 GHZ p-4 chip, gig of ram, Windows XP Pro…and it’s bright lime green. I also use a 12” PowerBook fairly often, but mostly for testing.
Q: If you were doing this interview, what three questions would you ask of someone in your position and what would be your answers?
A: Q1: Why Flash instead of HTML?
A1: What Flash brings to the table as far as interactivity, usability and ROI (return on investment) is infinitely greater than what can be done with HTML, there is no contest. Flash can do everything HTML can do, and then some. If you are tired of static, boring and non-interactive web sites, then Flash is definitely what you need.
Q2: What feature do you hope Macromedia will put in their next release of Flash?
A2: An upload component so you can upload files right from Flash to a web server. That would make things a whole lot easier.
Q3: How do you feel about intros?
A3: I hate them! And if they don’t even have a skip button, they are banned from my browser.
Q: David, we appreciate the time you spent in doing this interview. Your insights are of great value to our audience.
A: Thanks again for the opportunity to do a little ranting about my favorite subject, Flash.