Lanny McNie

As the dev mgr, Lanny oversees the technical day-to-day details of production and makes sure things get out the door.


Great Pumpkin Showdown 2011 Results

I am proud to announce the winner of this year’s pumpkin contest!

“Kill All Pumpkins”, Ryan and Lanny’s homage to Futurama brings home the gold, narrowly edging out Grant and Wes’ “2001, a Squash Odyssey”, and “The Angry Pumpkin” by Sebastian and Chris, which kept up until the last few days of the race. There were some great entries this year, and I think it was one of the best contests yet.

Thanks to everyone that voted!

Project Panel update for CS5

We have made some changes to the free Project Panel Update that we released last year, which makes it compatible with Flash CS5.

Unfortunately, CS5 now overwrites the project panel files each time it launches, so this new version installs as a completely separate panel, which was have renamed “gProject”, a nod to its humble roots.

For more information on what the upgrade brings to the Project panel bundled in Flash, please read the original post. Since it is free, we can’t promise any support, but feel free to report any bugs using our support form.

You can download the gProject panel for CS4 and CS5 by clicking here.

GPSD’08 Results are in!

Another year is gone, and another gPumpkin contest has come to a close. Many a beer and chocolate was consumed, and overall it was a great break from our normal routine. Congratulations to Grant and Wes, whose pumpkin “The Horror of Corporate Conformity” took first place. Between Grant and Wes, one of them have been on the winning team each year. Conspiracy? Probably.

Highlights this year included:

  • A landslide victory by the “Horror of Corporate Conformity”, which sat at around triple the votes of the second place pumpkin
  • Carving with steak knives instead of the traditional tools, which have been lost since last year
  • The very first “dropped” pumpkin. It didn’t break, but it took a good dive from the table.
  • Phantom votes for a non-existent pumpkin, which showed up in the voting app. It turned out to be an old testing file

Overall it was great fun. We leave you with a shot of all the pumpkins together. See you all next year!

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
  • 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.

Adding CSS Support to the CS3 Components

The CS3 component architecture makes use of TextFormats for all the text-styling needs. This decision was (likely) made to simplify the API, but still allow full control over the formatting of the text.

Natively, there is zero support for CSS styling, in fact, setting a styleSheet on the textField of a component (all components expose their textField instances) results in a run-time error, since TextFormats can not be set on textFields with a styleSheet.

But fear not! Not only are the components easy to extend, but it is not at all difficult to add CSS support to any component. In this example, I have added a styleSheet component style to a TextArea, which plays nicely with the built-in TextFormat. Rather than just posting the source code, I have broken down how the implementation works to provide some insight on how the components work, and how this sort of approach can be applied to any component, for almost any task.

Continue reading →

ColorMatrix Class in AS3

Something I’ve been meaning to do for a while now is port our ColorMatrix class to AS3. It’s a fairly simple conversion, but is still a handy utility to have on hand.

If you haven’t used the ColorMatrix class before, here is the description from when we first released it in 2005:

ColorMatrix provides a way to adjust Brightness, Contrast, Saturation and Hue based on a range of numeric values as well as multiply matrices. The ColorMatrix can then be passed into ColorMatrixFilter to apply color adjustments. The added bonus of ColorMatrix is that it uses the same calculations to generate matrix values as the Flash 8 IDE (with the exception of contrast adjustment which uses linear interpolation to provide a bit more granularity).

Download the updated source here

Here is a quick sample of it in use. This demo is included in the download package.

Continue reading →

CS3 Component bug: Component Styles

I was reminded a few weeks ago by Phil Chung (of philterdesign fame) of a bug in the CS3 component framework which we encountered shortly after CS3 was released.

Basically it boils down to setting component-level styles before any components of that type have been created. The styles are created, but when the first component of that type is instantiated, it resets the component styles, and overwrites the changes that were made beforehand. Slap a button in the library of a new FLA, and add the following code:

import fl.controls.Button;
import fl.managers.StyleManager;
var tf:TextFormat = new TextFormat();
tf.color = 0xff0000;
StyleManager.setComponentStyle(Button, "textFormat", tf);
var b:Button = new Button();

There is an easy workaround, which is to make sure you set component styles *after* a component of that type has been instantiated. You can also just create a dummy instance of the component, and destroy it (which properly creates the style definition) and eliminate the issue.

You can download this fix here. One thing to note is that the components do not compile based on the component source code that is included with CS3, but rather the compiled componentShim component included in each component. To use this updated class, drop it in the appropriate directory (fl/managers) relative to your project, or in any path that is part of your publish class paths. The components will prefer any class definition found locally over the componentShim.
Please note that this is not officially supported by Adobe, and we take no responsibility for its use.

So there you have it. I imagine at some point, an updated release of the components will solve this and other issues, but until then at least this issue is resolved.