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 →

gTween beta 2: ActionScript 3 Tweening Library

Having returned from a whirlwind of conferences and client meetings, I finally carved out a bit of time to work on gTween, my AS3 tweening engine. I’ve tweaked the API, added feature enhancements, fixed a couple of minor bugs, and am happy to announce gTween beta 2.

Continue reading →

Five Year Blogaversary

Time sure flies fast when you’re having fun! Today marks five years of blogging, including two redesigns, 345 posts, 3900 comments, and tens of millions of page views. There have been a lot of changes in the industry during that time: the dark ages of Flash (MX2004), Adobe buying Macromedia, the bitmap capabilities of Flash 8, the introduction (and subsequent reintroduction) of Flex, the release of ActionScript 3, and the emergence of Silverlight as the first serious competitor in the space.

Over this time, I’ve seen my role morph from a relatively unknown freelancer experimenting with Flash, to an active community member, regular conference speaker, and CEO of one of the top ActionScript development teams on the planet (I refuse to be humble when talking about my team – they rock!). We’ve built a diverse range of successful projects for some really stellar clients, ranging from the Fanbase AIR application for Atlantic records, to the v3 components for Adobe, to camera based installations for BBC and Nissan. It really is a testament to Flash as a technology, and the potential of the platform.

I want to take this opportunity to thank the Flash community for being such an awesome and open group of people. I’ve had so many stimulating conversations, made so many great friends, and been inspired in so many ways by this community. I’m excited to see what the next 5 years brings. Hopefully it will include a new design for gskinner.com (egads, is it really over 4 years old?)!

gTween: A New Tweening Engine for AS3 Developers

gTween: Programmatic Tweening for AS3 Developers

There are a lot of great tweening engines out there. Personally, I’m a huge fan of Jack Doyle’s TweenLite (and he’s been incredibly productive adding new features lately). However, none of these libraries exactly fit the needs of me and my team. I wanted an engine that was small, fast, hugely flexible, and built from the ground up for AS3 and developers.

The result was gTween. gTween is a small (4.5kb), fast (1500 instances, 0.5s duration, ~25fps), instance based tweening class, with a huge number of options and capabilities. You can read about core features of gTween below.

This is certainly not an attempt to displace any of the existing tween engines. Rather, it’s simply an attempt to share another option for managing programmatic tweens with the developer community.

For now, I am releasing this as a public beta. It has been loosely tested, but there is so much capability in gTween that I guarantee there are still bugs and edge cases we haven’t addressed. Likewise, I am soliciting input on additions or modifications to the API (including the names of specific properties or methods), so it is possible that the API may change in the future.

Continue reading →

JavaScript Stalled, AS3 Orphaned – Microsoft to Blame?

As you may have already read, the ECMAScript 4 standard, the standard on which AS3 is based, and the draft proposal for future versions of javascript has been rejected in favour of ECMAScript 3.1, which proposes small incremental changes to javascript for the foreseeable future.

This leaves Adobe in a somewhat awkward position. Firstly, it casts ActionScript back to being a proprietary language. Secondly, it means they have released an extremely valuable chunk of intellectual property (in the form of the Tamarin ES4 execution engine), without gaining the expected benefits for the Flash platform.

It’s also very disappointing for the web at large. This decision means that Javascript will effectively stagnate, and is unlikely to become a robust language for supporting rich/complex client side applications any time soon. Had ES4 become a ubiquitous standard, I would certainly have looked at doing a portion of our work in the AJAX space. I’m sure other Flash developers and traditional programmers would have done the same. I suppose from that perspective, this could be good for the Flash platform, but I prefer competition, options, and thriving innovation.

So why did this happen? When I heard the news, I analysed it in light of who has the most to gain, and in context of previous discussions / information I’ve read. I guessed that the most likely reason that ES4 was dropped, was due to Microsoft. They would have to either write a new execution to support ES4 (which costs money), or swallow their “not built here” pride to use Tamarin. By crushing the standard they would avoid having to do either of these and take a stab at their rival Adobe by pulling the carpet out from under AS3’s standard compliance. Being that they control 80% of the browser market, they are also one of the few groups that could unilaterally block adoption of the standard (having a standard that’s only supported by 20% of browsers isn’t very useful).

So to me, it looks like a power play by Microsoft. And it seems that I’m not the only one – Hank Williams over at whydoeseverythingsuck.com has written an article mirroring my thoughts almost exactly.

These situations are frustrating for developers (well, for almost everyone, I imagine). Standards bodies are so hampered by politics and corporate interests, but of course they are the lesser of two evils (no one wants to return to the wild west of HTML coding). Almost makes you glad that the Flash player is a proprietary product, eh?


UPDATE: Adobe has just made their public response here. Quite candid, and definitely seems to follow the lines of my speculation with mentions of “a morass of bickering, infighting, and sometimes, out and out name calling”.