Upcoming Conferences: FF, FotB, MAX

I will be speaking at a number of conferences over the next few months:

FlashForward San Francisco Aug 20-22

I’m excited about seeing what changes the Metaliq crew bring to the granddaddy of Flash conferences. In particular, I’m very interested in seeing how the new single track format of the conference works out. It could be brilliant, or it could fizzle. I’ll be running a 20 minute session on “Why I (Still) Love Flash”. I think it will be a good talk – after over 10 years working with the technology, and 5 years running my company, it’s something that’s been on my mind.

Flash On The Beach Brighton, UK Sep 28-Oct 1

FotB was my favourite conference last year. It had a great vibe, was a lot of fun, and I came away very inspired. I probably attended more sessions at FotB than I did at all the other conferences I went to last year combined. I’m really looking forwards to a repeat this year. I haven’t quite decided what I’m going to talk about, but whatever it is I’ll be sure to bring my game face.

MAX San Francisco Nov 16-19

MAX is always a great developer conference, but this year Adobe is increasing the design presence, which should add a nice balance to the event. I always enjoy MAX – it’s pretty corporate and impersonal, and definitely not as fun as most of the conferences I speak at, but it’s a good opportunity to learn from some of the top minds of Adobe, and get a feeling for the current corporate gestalt. I’ll be doing a talk on “Making Money with Adobe AIR”, trying to identify some of the obvious and not so obvious market opportunities for the technology.

Additional Information on Loader.unloadAndStop

Following my post yesterday about the addition of Loader.unloadAndStop to the Flash Player 10 API, I chatted with Werner Sharp, who is one of the Adobe engineers that worked on the feature (and an all round good guy). Following that discussion, I thought it would be helpful to post a summary of what I know about it, and disseminate some of the information Werner provided.

The unloadAndStop method was added in response to challenges ActionScript developers were facing with halting loaded SWF content, and removing it from memory. These issues were detailed in an article I posted in early April titled “Failure to Unload: Flash Player 9’s Dirty Secret“.

This API addition is not a magic bullet for solving all of the listed problems. What it does do, is attempt to prepare the loaded content for collection, and then hint to the Garbage Collector that it should initiate a collection pass. You can prevent the latter by passing false as the first parameter. It is still easy to get a SWF stuck in memory, but it is much harder to do accidentally.

Continue reading →

unloadAndStop in Flash Player 10

Adobe has announced the addition of the new Loader.unloadAndStop() method for Flash Player 10. Here is the description from the beta 2 release notes:


unloadAndStop — This new ActionScript 3.0 API adds unload functionality similar to the unload behavior in ActionScript 2.0. After calling unloadAndStop on loaded content it will be immediately removed stopping all audio, removing eventListeners, and becoming inaccessible through ActionScript.


This new API addresses some of the issues I raised in my article “Failure to Unload: Flash Player 9’s Dirty Secret“. It doesn’t enable content sandboxing, or provide a complete mechanism for explicit unloading, but it does make it much simpler to free a loaded SWF for garbage collection. It’s still possible to prevent a SWF from being unloaded, but it’s much more difficult to do by accident.

Kudos to the player team for putting this in. If you’re concerned about this topic, please help Adobe out by testing this feature and reporting any problems.


Update: You can find more details on the Loader.unloadAndStop feature in my article “Additional Information on Loader.unloadAndStop“.

Source Code Licenses and Flash/Flex

Source Code Licenses

I think there is a critical lack of understanding about the implications of different source code licenses in the Flash and Flex world. As my company has grown, and we have tackled more critical projects for larger clients, I have had to educate myself and my team on this topic.

I think this is a hugely important topic, so I’ve devoted quite a lot of time and energy to research and synthesize information on some of the most popular source code licenses being used in the Flash community today. I would also encourage you to spread this information around, either by linking to this article from your blog, or by sharing its contents with your colleagues. Hopefully it helps developers sharing their code to choose appropriate licenses (I’m getting sick of seeing LGPL source code), and also help the community to use shared source code legally and appropriately.

While I have worked hard to research everything in this article, I am not a lawyer, or an expert on this topic, so I make no claims that it is accurate or correct. It is also written from the perspective of someone who releases free code, and runs a service oriented development shop. Implications may vary for product development.

Below you will find an overview of some of the most common open source licenses. I have tried to list them in order from most restrictive to most permissive.

Continue reading →

Programatically Drawing Trees With Recursion

I get asked a lot of questions about my tree experiments, such as sakura and interactive elm. I thought I would write up a simple explanation to point people in the right direction.

The easiest place to start is with recursion. Trees are beautiful examples of recursion in the natural world. Recursion is a deep and very important topic, but for our purposes can be simplified to the idea of code calling itself. In the example below, each time you click the stage, all of the “active” (outermost) branches call code to draw two more branches at their ends, the next time you click, those new branches call the same code. Move your mouse around to vary the angle of all of the branches. As an aside, this example also has an interesting “emergent” property of drawing hexagons (try moving your mouse to the bottom when all of the branches are drawn).

Continue reading →

Back from the Galapagos

I just got back from an amazing trip to the Galapagos islands. Besides providing the early inspiration for Darwin’s “On the Origin of Species”, the Galapagos is one of the most pristine environments left on the planet. It’s one thing to hear people talk about how the animals on the islands have no fear of humans, but it doesn’t fully prepare you for the reality of standing inches away from a sea lion nursing her young and completely ignoring your presence.

The islands are gorgeous, varied, and bursting with life. In places, you literally have to tiptoe through the local fauna. Snorkeling in the surrounding waters was equally enthralling, swimming within reach of sea turtles, penguins, sea lions, and an abundance of fish. I was simultaneously overjoyed with the experience, and a little saddened about how successfully humans have trained the remainder of the world’s wildlife to fear us. It was also mildly depressing seeing how much plastic had washed onto the otherwise pristine shores, likely traveling the pacific currents from Asia and the West Coast (the Galapagos is situated on the intersection of a few major pacific currents).

The cruise on the Celebrity Xpedition ship itself wasn’t anything special, but the staff were friendly, the naturalists were great, and the food was passable. I wasn’t really there for the cruise amenities anyway. Though I could have lived without everyone on the cruise getting sick (still recovering from some nasty virus).

Continue reading →

SPL 1.2 Released

I’m happy to announce that we just released version 1.2 of our client-side, check-as-you-type, spell checking library for ActionScript 3 projects in Flash, Flex, or AIR. This version includes some significant updates including:

  • rewritten spelling suggestions algorithm, which is faster and returns better results
  • better support for AIR, and addition of an AIRMenuHelper class to reinsert editing options
  • enhanced multi-line highlighting
  • improved support for languages other than English
  • RegExpHighlighter source code, which highlights matches for a regular expression in a text field (as seen at regexr.com)
  • various minor bug fixes and enhancements

SPL 1.2 is a free upgrade for current users. If you own a license to SPL, and have not received the update package, please contact us through the support form on our product site.

You can find more information on the Spelling Plus Library, and see demos of it in action at the SPL product page.

AS3 Workshop Notes Posted (167 slides!)

Last year I ran an intensive, one day workshop on ActionScript 3 covering a wide range of topics including AS3 / AVM2, migrating from AS2, runtime errors, the event model, the display list, regular expressions, E4X (XML), loading data and assets, optimization, and more.

Today I released all 167 slides from the workshop on my talks page at gskinner.com/talks/. I’m not planning any workshops in the immediate future, and I thought the notes would be useful for developers learning AS3. The content ranges from basic to intermediate, and includes a few obscure tips and architectural ideas.

I haven’t looked over the notes since I ran the workshop, so please pardon any errors.