Grant Skinner

The "g" in gskinner. Also the "skinner".

@gskinner

Flash 8 Bootcamp Coming to London

After a very successful run of my Flash 8 Bootcamp in Los Angeles (we oversold the event due to some very tenacious would-be attendees, and wound up having to reconfigure the venue to fit everyone), I have decided to bring the workshop to London in cooperation with FitC and the London MMUG. Every run gets a little bit more polished and fun to deliver, so I have high hopes for this next iteration.

One of the most popular aspects of the workshop so far has been the demo files that are included with it. Attendees receive the full source for over 30 pre-built demo files, which cover all of the major features (and most of the minor ones) in Flash 8. This includes source for the popular HumanTorch, SnowStorm and MagnifyingGlass experiments. I also provide the source code for another 15-20 mini-demos I build during the workshop.

In LA, I had a lot of fun at an evening event arranged by R Blank (LAFlash manager, and all round good guy) where attendees could go out for bowling, beer and a bite to eat with me. I’m planning on arranging something similar for the first night of the workshop in London – it was a great chance to meet and chat with attendees informally whilst whupping them in a (mildly) competitive sport. I love LA Flashers, but they apparently stink at bowling *grin* (Josh Davis will back me up here).

Anyway, if you’re interested in the workshop, you can find more info in my past posts, or on the official site. These workshops do sell out (as proven in LA), so you’re encouraged to register early if you want to guarantee a seat.

Also, if you’re a London MMUG member, you might want to chat with Tink (Stephen Downs) – he might have some other info that you’ll want before you sign up. If you’re not a member, why not? It’s free.

Source Code: Tracing ARGB (32 Bit) Hex Values

Many of the new features in Flash 8 use ARGB color values. This is great because it allows you to store your color value (RGB) and alpha (A) in a single 32bit integer. Unfortunately, debugging can be tricky because Flash’s built in Number.toString(16) method treats all numbers as signed integers. This can result in some unexpected results when tracing an ARGB value:

var RGB:Number = 0x99FFCC;
trace(RGB.toString(16)); // works fine, traces "99ffcc"
var ARGB:Number = 0xFF99CC66;
trace(ARGB.toString(16)); // not so good, traces "7fffffff"

Because Flash is treating the value as a signed integer, it can only use 31bits to represent the value (1bit represents the sign + or -). This forces Flash to truncate it to the maximum 31bit value, which is 7FFFFFFF.

Continue reading →

Source Code: SharpenFilter for Flash 8

As an experiment in extending existing filters, I decided to take a swing at creating a sharpen filter. It was very simple to do, and works exactly as you would expect. All I did was extend ConvolutionFilter and abstract the logic required to carry out sharpen operations with it. You can download it here to use in your own projects, or to learn from.

Using it is really easy:

import com.gskinner.filters.SharpenFilter;
// sharpen amount is between 0-100.
var sharpenF:SharpenFilter = new SharpenFilter(sharpenAmount);
myClip.filters = [sharpenF];
// change the amount:
sharpenF.amount = 50;
// get the amount:
trace(sharpenF.amount);

Continue reading →

XML2 Updated

In my rush to release the updated version of XML2, I managed to upload the wrong version, which had some issues. I didn’t have the proper version with me in LA, so it wasn’t until today that I was able to upload the proper version. My apologies to anyone who downloaded the prior version and was confused by it.

You can view all documentation, and download the proper version from my previous entry on XML2. You can tell if you have the latest version by looking at the comments at the top. The new version has a revision history, whereas the old version did not.

I also updated the demo FLA slightly to be a bit more straightforward.

gallery incomplet launches

The blog has been pretty quiet lately. Things have been really busy with conferences and workshops in addition to normal work. I’ve also been working hard on a personal project called gallery incomplet, which I’m launching today at incomplet.org. [Note: moved to incomplet.gskinner.com]

incomplet.org is a timeline of experimental Flash pieces that I have played with and never really completed. It currently houses work from 2004-2005, but I plan to include pieces all the way back to 1999 over the next few months. The site was designed with usability in mind but it wasn’t a driving concern, I was more interested in creating a simple, small (35kb), attractive shell that didn’t distract from the experiments which are the obvious focus. Likewise, there are few compromises for older systems – the site requires a fast processor, Flash Player 8, and at least a 1024×768 screen.

Just as the experiments are never really complete, the gallery will continue to evolve as I add content, update functionality, and tweak the design. The whole site is really an exercise in passionate procrastination.

Click over to incomplet.org and have a look. I’d love to hear what you think of it. [Note: moved to incomplet.gskinner.com]

Continue reading →

XML2 Updated for Flash 8

Flash 8 introduced a new “feature” whereby EventDispatcher handles events named “load”, “draw”, and “move” differently. This broke the previous version of the XML2 class, which dispatches “load” events. I have updated it to use a “complete” event instead – it’s a little less intuitive perhaps, but it works. I’ve also added support for a “httpStatus” (F8 only) event, as well as adding some missing typing on method params.

Continue reading →

Recap of Flash 8 Bootcamp

I just got back from delivering my Flash 8 Bootcamp in Toronto, and speaking at the Spark conference in Amsterdam (awesome conference – more on that soon). I think the workshop went really well. I had about 30 Flashers with a real diversity of backgrounds attend. Everyone seemed to have fun and learn a lot, and I don’t believe I lost anyone over the two days (except maybe when I got into bitwise operations and color math – I’m planning on allocating a bit more time to that in LA).

It was a lot of fun to teach, and I want to say thank you to everyone who attended. I’d also like to thank everyone at FitC who organized the workshop (Shawn, Liz, Rick). I’m really looking forwards to the Los Angeles run. If you are interested in attending, check out the workshop outline here, or visit the sign up page here.

UPDATE: The bootcamp will be running in London, UK on February 11-12. Please read the announcement for more information.

Here’s some of the feedback I’ve received so far:

Continue reading →

Great Pumpkin Showdown II: Winner

After a week of voting, the winner of the Great Pumpkin Showdown II was pretty clear. Macromedia (Adobe) better watch out, because piracy seems to be all the rage with Flash developers these days.

Unlike last year, where the results were neck and neck, this year was a landslide victory. The pirate pumpkin won out with 147 votes. Frank came in a distant second with 91 votes, and the Puki pumpkin trailed with 78 votes.

Here’s a look at the pumpkins the day after hallowe’en. I was going to take a picture after voting ended, but the pumpkins dissolved into protoplasm by day 3 and had to be poured into the garbage can (ewww).

Continue reading →