Grant Skinner

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

@gskinner

GTween beta 4: Tweening Library

GTween beta 4 has been released! This is the final beta of the library, and I am only keeping it beta for this release because there is a chance I will toy with the API a little bit more, and I’d like to clean up the demos before final (right now they are an ugly mix of demo and test file).

The main new feature in this release is a more robust synchronization model which allows you to synchronize child tweens to the delay, beginning, end or duration of its parent. This release also includes the GTweenFilter class (<0.5kb) which a number of people have been patiently waiting for. I also patched a number of bugs, added a few more simple demos, and created a MultiTween class that allows you to tween multiple objects to either the same destination property values, or different values using a single tween instance. Both of the new classes should be useful, but they are also there to serve as templates for people interested in writing their own extensions to GTween. They are not required to work with GTween normally - still just a single class. Here is the full list of changes:

  • fixed a bug with autoHide (thanks to JTtheGeek)
  • fixed a bug with useSmartRotation and destination values over 360 (thanks to radicalFish)
  • added propertyTarget and getPropertyTarget(), to support GTweenFilter and other potential subclasses
  • renamed the static “ticker” property to “activeTicker” to prevent issues in some editors due to it being named the same as the instance property. (thanks to Thomas Brekelmans)
  • fixed a problem with progressPoints set to a position of 0 not firing (thanks to Toby Skinner)
  • moved event meta tags to before class declaration, so they show up properly in the API documentation (thanks to Jordi Boggiano)
  • updated .clone() to support .useSetSize and .useSnapping properties
  • modified .addChild() to accept GTween.TWEEN_PHASE, GTween.END, GTween.DURATION, GTween.BEGINNING as a second parameter, allow more complex synchronization options.
  • included GTweenFilter and MultiTween in package.

As always, you can view the latest documentation, and download the latest version of the library at gskinner.com/libraries/gtween/.

Adobe Company Wide Layoffs, Pulls out of Macworld Expo

Breaking news: Adobe has announced company wide layoffs of about 600 full time positions, and has pulled out of Macworld Expo. Among the cuts, Mike Downey, who was a Flash evangelist and well known by the general community.

I know a lot of really great people at Adobe, and my thoughts are with them all. Hopefully everything works out for the best for everyone involved.

Hold on to your hats folks, it could be a bumpy ride.

News here:

TUAW

Mike Downey’s twitter

Adobe Provides Preliminary Q4 Fiscal 2008 Results

Curly Braces: To Cuddle or Not?

Should you place curly braces on the same line as the statement (cuddle), or on the next line? It’s a debate that has raged for years, and is unlikely to be resolved until curly braces in code become obsolete. Despite that, I thought I would share my opinion on the topic.

First though, let’s look at both sides of the argument. I will try to represent this as fairly as possible, despite my own bias. I’ve numbered the arguments, so it’s easier to reference them in the comments.

Continue reading →

The Great Pumpkin Showdown, 2008

Keeping with our yearly tradition of squash mutilation here at gskinner.com, I’m happy to present this year’s Great Pumpkin Showdown.

We broke into teams of two, based on seniority, and hacked the crap out of a bunch of defenseless pumpkins while drinking beer, eating pizza, and gorging on candy. Also keeping with tradition, we made the most recent hires build out the pumpkin voting team.

This is our largest batch of jack’o’lanterns to date (five), and definitely our best voting app. Nice work freshmen!

Player 10 is required to view the app below.

Continue reading →

Simple Flash Player 10 3D Demo w/ Source

Here’s a simple tech demo showing a 3D music visualizer using the flash player 10’s new 3D APIs, with a rotating sphere that transitions into a disc using GTween. Nothing too complex, but the result is kind of neat, and it is simple enough to serve as a quick entry into using the new APIs if you’re getting started. It also uses the new Vector type in player 10.

To me its cool that you can now whip out simple 3D content right in Flash in a matter of minutes, and then step up to the big guns with PaperVision 3D or Away 3D as necessary.

I’ll be sharing some of the other simple 3D experiments I’ve been working on over the coming weeks.

Continue reading →

gProject and the Flash CS4 Project Panel

In May I blogged about Adobe acquiring gProject from us. At the time, I wasn’t allowed to talk about what it was going to be used for. Still, it probably doesn’t come as a huge surprise to anyone that the new Project Panel in Flash CS4 is based on gProject.

We did a lot of work with Adobe to rebuild gProject in Flex, removing some features (that are either too obscure or don’t have wide enough appeal), adding others, and doing an extensive clean up of the UI and code. We’re all very excited to see our baby grow up into such an important part of Flash authoring.

Some of the key features:

  • file system based file browsing (no more need to manually add your project files)

  • multi file compiling, just check the checkmark beside an FLA to add it to the list

  • class generation from templates, with the ability to specify templates per project

  • locations provide quick access to related files from your project

  • add file types to display in the panel, and open those files in their associated application (via right click menu). For example, you could add AI files and open them in Illustrator.

  • manage class and library paths on a per project basis

  • quick project feature makes it effortless to create a temporary project to manage files

We tried to create something that would have a lot of value for developers who do some or all of their coding in Flash, while not getting in the way of designers who just want a good panel for browsing their project files. Hopefully we succeeded.

Obviously there’s still a bunch of things we would love to add (things like a JSFL API, file rename / moving, file system update polling, external code editor support, and maybe version control integration spring to mind), but I believe this is a huge improvement to the previous project panel, and am excited to finally be able to talk about it openly. As with Badger, I think it’s a sign of our maturing ecosystem that you can build new tools for the tools, with the tools. We even used gProject to manage the project when building the new Project Panel.

New Player 10 Feature Tour

A few months ago I posted about the Flash player 10 feature tour we built with Adobe. Since then, we’ve been able to spend some time polishing it, adding more demos, integrating videos, and redesigning it with Adobe’s Double Identity theme (and no, I don’t know what that’s all about, though I have some guesses).

It shows some basic demos for a few of the new features, with downloadable source code – including a simple coverflow sample. Everything uses GTween, which has turned out to be really handy with the new 3D features in player 10.

Also, if you check out the videos, you can watch me struggle through cohesive sentences after 3 days of hard partying at FlashForward.

You can check out the new feature tour by clicking here.

Beware the AIR Badger!!

It’s the true sign of a mature platform ecosystem, using the platform to build tools to build tools to deploy tools that are built on the platform. Huh?

A while back, I worked with Adobe to build a better AIR install badge. Having done so, I thought it would be a neat idea to build an AIR application that made it easier to configure and deploy badge installers. Adobe agreed, and the Badger application was created.

Badger allows you to load a template install badge, configure all of its options, preview it live (via the HTML control in AIR), and then export it for deployment. Badger also takes the pain out of configuring badges by tracking down your application ID, publisher ID, version, and other information. You can even configure a badge to install Badger, click Install Now in the preview, and install Badger from Badger – though this is likely to cause a tear in the space/time continuum.

Badger (and its icon) was designed in Flash CS3, built in Flex 3, and deployed on the AIR platform. I find it quite strange that Adobe chose not to include an install badge for Badger, but maybe they have a strong sense of irony. Or maybe it was just too much work. 🙂

UPDATE: I’ve been informed that the lack of a badge installer is due to a limitation of the article page template.

You can check out the beta of Badger here.

Originally, we had hoped to name the application “AIR Badger” (which was discarded for legal or branding reasons), which led to the image below that I threw together for the fun of it. That image ultimately led to the icon you can see on the app today.

Continue reading →