Grant Skinner

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

@gskinner

Source Code: MultiTween Class

I’ve wanted an easy way to tween multiple properties of an object for a while now, but always been a little too lazy (or busy) to build one. Enter Flash 8, with its abundance of matrixes and filters, just begging to be tweened. My requirements were fairly straightforward:

  • Support for matrixes (arrays) and objects
  • Simple to integrate with existing tweening classes and custom tween routines
  • An extremely straightforward and easy to use API

The result was the com.gskinner.transitions.MultiTween class, which you can download at the end of this post. It allows you to programmatically tween multiple object properties or array elements by changing a single value. Here’s a quick API spec:

Continue reading →

Flash 8: Jungle-g Experiment

This experiment grew (ha!) from my previous vine-g and flowerGarden experiments, and actually preceded the Sakura experiment. It draws a randomly branching and meandering vine with leaves and randomly generated flowers using some Flash 8 magic including: run-time DropShadowFilter and BevelFilter; iteratively applied ColorMatrixFilter to fade back older vines; custom bitmap caching (or blitting) to allow continual generation without slowdown.

It also uses a ColorMatrix class I wrote in conjunction with ColorMatrixFilter to hue shift the flowers. I will be releasing this class for free shortly after Flash 8 is released – it is a huge time saver.

Continue reading →

Flash 8: Blueprint Magnifying Glass Demo

Someone pointed out that my previous magnifying glass demo wasn’t as clear as it could be. This one is a bit better than my previous demo because it uses a high resolution image (so the magnified view is full resolution), and the image has more straight lines so it’s a lot easier to see the lens distortion at work.

UPDATE: Just updated with a better displacement map. Thanks to Ralph Hauwert for prodding me into doing so.

Continue reading →

mCOM / GLIC components released

I’m very happy to announce that the mCOM (formerly GLIC) component set has been released, and is available for purchase. The final set of 21 components meets the original goals I established for GLIC: They are much smaller; massively more processor friendly; mostly polymorphic with v2 components (so you don’t have to relearn everything); and utilize a clean, cohesive architecture (say goodbye to Array and XML mix-ins).

Beyond the above advantages, these components are backed by a creative and committed company (two of them really – gskinner.com will continue to work closely with Metaliq), that will continue to grow and enhance the set to meet developer needs. This is something that the Macromedia component set is unable to do (for good reasons, in their case). This is balanced with a commitment to keep the API and code base stable – so you don’t have to worry about code you write being obsoleted because some guy has a cool idea that requires an API change.

I’m pretty psyched to see these babies finally hitting the market, and looking forwards to seeing what people build with them. I’m also excited that we can start using them in our own projects – I hope to post some cool examples over the next few months.

Continue reading →

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 →