Feed Sign in with OpenID OpenID

Simon Willison’s Weblog

Learning Flash for programmers?

I’ve decided it’s about time I learnt some Flash, mainly because of the exciting opportunities posed by the Flash-JavaScript bridge. It’s become pretty obvious now that Flash is the most practical option for dealing with audio and video on the Web, and the bridge means that anything Flash can do is now available to JavaScript as well. Google Finance and the Yahoo! JS-Flash Maps API are just two recent examples of why this stuff is worth knowing more about.

I have minimal design skills, so much of the Flash literature out there isn’t much use to me. Does anyone have any recommendations for books and tutorials on Flash aimed at programmers? Something similar to Dive into Python would be ideal, but failing that any tips on climbing the Flash learning curve would be welcome.

This is Learning Flash for programmers? by Simon Willison, posted on 30th March 2006.

Tagged ,

View blog reactions

Next: Naked day

Previous: My ETech JavaScript tutorial

25 comments

  1. I've found the internal ActionScript documentation suitably comprehensive for the work I've been doing over the past year or so. As you know, it's very similar to JavaScript, so most of the time I just find myself looking up syntax of function calls. The rest of the time I seem to spend tracking down and working around obscure Flash bugs.

    If you're using Windows, I've found Mike Chambers' Flash Resource Manager very useful - it's a .Net program that allows you to view Flash's documentation outside the Flash UI. I'm still using it with MX 2004, but apparently there is a workaround for Flash 8.

    radiac - 30th March 2006 12:53 - #

  2. Flash 8 introduced the ExternalInterface class, which offers better browser support and supports more languages than the kit, of course for Flash 8+ only. For learning ActionScript, Colin Moock's books are a good buy. Please note that ActionScript 3 (ECMA 4 implementation) is almost out of beta, so a lot of things are going to change for Flex 2/Flash 8.5.

    bobby - 30th March 2006 13:47 - #

  3. Simon, I haven't had a chance to play around with it extensively, but OpenLaszlo looks like a very programmer-friendly way of creating Flash-based apps. They are also working on creating a DHTML engine so that a single source can run in both Flash and the browser. -ian m.

    Ian Maurer - 30th March 2006 15:02 - #

  4. Colin Moock's your man for all things Actionscript. He has a list of recommended books at http://www.moock.org/webdesign/flash/ I'm looking around myself for stuff on parsing XML with Flash.

    Jim - 30th March 2006 16:48 - #

  5. I agree with the Colin Moock recommendation. However, I'm usually trying to do something quite specific with Flash and prefer a more recipe-oriented approach. For that, I recommend a Safari subscription. You can check out Flash books as they're published, and search a number of books for the recipe you need. When I run across a page or chapter I think I'll want to refer to, I use the Firefox Scrapbook extension to copy it.

    Bruce McKenzie - 30th March 2006 17:08 - #

  6. Simon, I recently went through a similar experience, and aside from the online documentation, (which is useful, but badly organized), I found that "Macromedia Flash Professional 8 Hands-On Training" by James Gonzales was really well written and to the point. It's a great introductory book, it should get you up and running in a few hours. After that, choose your own editor to work on ActionScript e.g. SE|PY (http://www.sephiroth.it/python/sepy.php), the editor included in Flash 8 Pro should be banned from this planet and perhaps the rest of the solar system. :)

    Diego - 30th March 2006 18:17 - #

  7. Hey Simon,

    I've followed this path myself and found that there is not that much beginner friendly information out there (online).

    The component that I wrote, Flash4AJAX, is basically a minimal Flash object that brings some of the Flash capabilities (persistent storage, cross-domain capabilities) to the Javascript world (using ExternalInterface in Flash 8).

    I documented some of the pointers I used in the process, using mtasc as the compiler: Cross-domain AJAX using Flash

    Note that I didn't go into any of the media part of Flash yet, which may require a Flash IDE or at least some tools in addition to mtasc (like swfmill?).

    Although worth mentioning: there is a number of C# to SWF compilers out there. I don't think they're free though, but it seems like an attractive way into the Flash world.

    More info at C# to SWF (Flash) compiler

    Julien Couvreur - 30th March 2006 19:32 - #

  8. Just to second some of the comments on here - Colin Moock's books are the only serious paper-based resource for Flash developers. I spent two years building commercial Flash apps and i only ever needed 'Actionscript for Flash MX' and 'Essential Actionscript 2.0'. The first is a comprehensive reference and the second is an update for 2.0 with some OOP & app development best practices especially tailored to the curious beast that is actionscript.

    A flash utility that could be of interest is this open-source flash compiler. Haven't used it myself but looks solid.

    anil - 30th March 2006 22:59 - #

  9. actionscript.org is a great place to get help. DO NOT buy Flash Application Development for Programmers - there are serious errors in the book, and the publishers, Macromedia, haven't done a thing by way of errata online.

    rougy - 31st March 2006 01:03 - #

  10. I will 24th (heh!) the Moock recommendation. The hardest part of coding for Flash for me (and I haven't done a huge amount but more than your average bear) was wrapping my head around having to use the Timeline for your code no matter what, which is sort of a pain--that and having to revert to a "frame" mentality (the HTML frame, not the frame on the timeline) in order to do cross-object control (as in Movie objects). Although at this point there seems to be enough Flash audio and video components that it might not be necessary to actually get into depth to use it.

    Tom Trenka - 31st March 2006 01:45 - #

  11. It's just like javascript - find out about local connections and external interface(8 only) and bobs you uncle. With classes you don't really need to worry about the timeline - you can import all the bits and bobs dynamically and instantiate the objects using the bits and bobs when you need them - and if you want using external interface you can do all of this from javascript. Obviously it's not that easy but you know more about javascript than I do so I can't see it being a major problem for you!

    Matthew Pollard - 31st March 2006 09:16 - #

  12. oops - I should have said the macromedia forums are pretty useful - there's a character called Kglad who hangs around there who seems to know everything!

    Matthew Pollard - 31st March 2006 09:20 - #

  13. Flash video I find very disappointing, often falling out of sync, and not providing a useful downloadable option. Do compare Flash with mpeg-4 (supported by QuickTime and VLC and other OS tools) in terms of video quality and user experience.

    Kevin Marks - 31st March 2006 10:00 - #

  14. Yes the Essential ActionScript 2.0 is a great book for really understanding OOP with ActionScript. The other two publishers I recommend are FriendsOfEd, and the Lynda.com book (for basic overview). Thats just my two sense!

    Frank Stepanski - 3rd April 2006 00:36 - #

  15. Flash 8 ActionScript "Training from the source" by Jonr Makar / Danny Patterson. Also try the website: http://gotoandlearn.com/ The website is invaluable for Flash Video stuff. I had NO idea how Flash Video worked, I ran through a couple of the different basic tutorials (about 20mins each) and I had it learnt no problem, a brilliant website!

    Mark McDonnell - 3rd April 2006 18:44 - #

  16. I see you've already blinked it, but I'm adding here to keep it with the post: A collection of flash tutorial vids.

    Jeremy Dunck - 3rd April 2006 20:02 - #

  17. If you're looking for an open source project in flash to cut your teeth on, worldKit [worldkit.org] could be a good fit. There's plenty of interesting bits to work, your contribution would be welcome! I can help guide through Actionscript -- but yea it's pretty straightforward to learn after Javascript.

    Mikel Maron - 4th April 2006 12:51 - #

  18. I have jsut bought Studio 8 and am learning all about it from the Macromedia University online courses. Have had a great time playing witht he effects might I also reccomend Swish for it helps create efffects for words alot faster and easier then flash. Good luck on learning this new skill !

    Britney - 5th April 2006 11:23 - #

  19. Leute! Kauft Lilien, liebt euch...

    Marcus - 6th April 2006 18:31 - #

  20. Simon - Are you going to use Flex 2 or Flash MX professional? Since, they are a little difference between the two. I would recommend Flex 2, since it is better as a programmer and building applications. Pat

    Patrick Whittingham - 12th April 2006 15:56 - #

  21. I was going to play with Flex 2 but they don't have a version for the Mac yet, so I'm experimenting with MX Professional for the moment.

    Simon Willison - 12th April 2006 16:13 - #

  22. Flex 2 can work on a Mac....The FlexBuilder2 is built on Eclipse, the copiler should work with the JVM for Mac. The latest Beta (2) allows only SDK installation in a format that doesn't need a Windows installer. Check out the Flexcoders mailing list on yahoo if you have problmes setting it up, since this topic comes up frequently. Since you're not an artist, and seem experienced with OOP, learning off the Flex and Actionscript 3 resources on the Adobe Labs site makes the most sense. I'd definitely suggest that over the Flash IDE.

    anon - 13th April 2006 18:15 - #

  23. How to learn flash well

    Shailendra Kumar Shail - 16th August 2006 13:44 - #

  24. I advice you also to visit http://weblogs.macromedia.com/mxna/ Might find there great resources. Good luck.

    mjorge - 9th September 2006 14:57 - #

Comments are closed.

Previously hosted at http://simon.incutio.com/archive/2006/03/30/flash

A django site