Grant Skinner

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

@gskinner

Flash 8: Magnifying Glass Demo

I’ve been prepping for my Macromedia MAX talk, building demos and polishing slides. One of the demos needed a magnifying glass, and rather than just build out a boring square one I decided to go all out with the new expressiveness features and build a nice visual one incorporating a photographed frame, realistic lens shading, lens distortion (with DisplacementMapFilter), alpha masking, and a drop shadow.

I’m still thrilled by how easy it is to do these kinds of advanced effects in Flash 8 (<40 lines of code). This is a quick hack together, but I think I’ll polish, componentize, and release the magnifying glass after the Flash 8 release.

The latest version of the Flash 8 player is required.

Continue reading →

On Design Patterns and Reality

I just read through a blog post by Sho Kuwamoto titled MVC considered harmful, and began typing a comment that quickly became a small essay, so I decided to post it here instead. While I don’t agree with Sho’s idea that MVC is not needed for most RIAs (I think the concepts are valuable for virtually any kind of Flash project, RIAs in particular), I also didn’t agree with some of the more zealous comments about the sanctity of design patterns. Here’s my take on the whole thing…

Continue reading →

Flash 8: Japanese Cherry Blossom Trees

This piece was inspired by cherry trees blossoming in Japan, as well as Japanese ink paintings. I wanted to create a system that grew generative trees where not only were the branches random but also every single blossom. This piece borrows concepts (and code) from my vine-g experiment [source] , as well as my more recent flowerGarden piece. Each tree is drawn randomly following a set of loose rules, and each blossom is also assembled randomly. Establishing rules that resulted in attractive but varied tree structures was definitely the challenge for this piece, and was quite a bit more difficult than I had anticipated. It still draws the occasional mutated tree, but then so does nature.

Continue reading →

Honeymoon in Southern Europe.

I’d love to say that following our wedding in June, Bobi and I rushed off to a romantic honeymoon – but we didn’t. Instead we rushed off to a couple of Flash conferences – FlashForward NYC, and Flash’n’Splash at the Banff Centre. Yes, I am a nerd.

These were both fun – NYC was a great chance to catch up with all our friends in the Flash world, and we went horseback riding and white water rafting in Banff – but they weren’t exactly a relaxing, or romantic.

Three months later, and I’m finally going to take my wonderful wife on the trip she deserves for putting up with me (grin). We’re going to be spending 3 weeks in September traveling along the Mediterranean through Spain, France and Italy. I’m a little stressed about leaving the business alone for that long, but I completely trust the the awesome people on my team, and have no doubts that they will keep everything rolling smoothly in my absence. Thanks guys! This will be my first trip in 3.5 years that is not business related, and that I won’t have my laptop with me – I’m betting on withdrawal symptoms within a week.

We will be stopping in Barcelona, Aix-En-Provence, Nice, Monaco, Venice and Florence. If you have any suggestions for things to see or do, cool restaurants, bars, etc to visit we’d love to hear them. It should be a wonderful break prior to speaking at MAX, and rolling out my Flash 8 workshop.

Flash 8: Webcam Snowstorm

I’ve been playing a lot with Flash 8’s bitmap features in conjunction with webcams, and will be releasing a few of the resultant experiments over the next week or so. The first of them is pretty simple, though it took some tweaking to get right.

This experiment simulates a snowfall with 400 snowflakes on screen, each with random size, rotation, speed and blur (using BlurFilter). Each of them is independently affected by wind (as partially controlled by your cursor’s x position). That Flash can run it all fluidly is impressive in itself, but of course there’s more. It’s also monitoring the webcam input, detecting edges, and making the snowflakes settle gently on any horizontal surface they encounter – pretty cool.

Continue reading →

Flash 8: Shape Based Collision Detection

Most of the Flash 8 demos released so far using BitmapData have been purely visual, so I thought I should release one of my experiments that focuses on function.

One of the things that Flashers have wanted for years is shape based hit detection – that is, the ability to detect if one shape intersects with another shape. The best we’ve been able to do so far is test a single point against a clip’s shape, which obviously isn’t that great for games with complex interactions.

Flash 8 changes all of that. Unfortunately, it doesn’t give you an easy method to do it (mc.hitTestShape(mc2) would be nice), but it does give you all the tools you need to make it work. In the simple demo below (requires Flash Player 8r50, earlier versions will show whacky graphic artifacts), you can see shape based hit detection at work.

Continue reading →

gProject Panel is Now Available!

We’ve got the panel packaged, the documentation finished, and the reseller system in place. I guess that means we are officially open for business with the gProject panel. Check out the gProject product page for information and pricing.

The gProject panel is a robust replacement for the (rather anaemic) project panel built into Flash MX 2004 and Flash 8 Professional. It incorporates a myriad of time-saving features in a tight, easy to use package.

Continue reading →