Careers: Interviews
Flash Expert Shares Secrets
This week, Stephen
Ibaraki, I.S.P., 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”.
Discussion:
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.
But my favorite feature
of Flash MX 2004 has to be JSFL (JavaScript Flash Language.) It
allows you to extend the capabilities of the Flash authoring
environment by creating tools, commands, behaviors, effects and even
your own panels with a language that will be very familiar to any
Flash programmer.
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
myLoadVars.onData=function(src){
trace(src);
}
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.
3) Extending Macromedia
Flash MX 2004: Complete Guide and Reference to JavaScript Flash –
the only comprehensive JSFL book on the market.
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. |