Flash CS3 Components Revealed

FitC Toronto 2007 is just a couple weeks away, and I’m working hard to finish off my talk on the Flash CS3 component set.

I was really excited when my team (gskinner.com) was chosen to develop the component set for Flash CS3 (except FLVPlayback), with Adobe and Metaliq. I had the pleasure (and stress!) of leading the architecture and development of this new set of components.

At FitC Toronto, I will be giving a full tour of the v3 components. I’ll be talking about the goals and philosophy behind the new architecture, skinning, styling, and extensibility (extending or creating new components). I’ll also take a shallow dive (I only have an hour) into the inner workings of the new component architecture. I’m hoping to provide content for both designers working with components, and developers that are interested in building new components or extending existing ones.

FitC looks like it’s going to be one of the best conferences in 2007, with a really stellar speaker roster. If you’re going to be there, and want to learn about the latest set of components in Flash, check out my session “Components and AS3” right after lunch on the second day. Also, feel free to pop in on my panel with some really smart dudes (Mike Downey, Aral Balkan, Keith Peters, and Chris Allen) on “AS3, Flex & Apollo: What They Mean For You” on the first day of the conference right before lunch.

Back from Japan

I just got back from 16 awesome days in Japan. My wife and I spent a week in Kyoto, and a week in Tokyo, checking out the sights, eating amazing food, experiencing the culture and hanging out with friends.

There’s way too much to talk about here, so I’ll stick to super brief disjointed thoughts: Kyoto is really beautiful, and an excellent place to experience the more traditional side of Japan. Tokyo is a huge, crowded, and rather ugly city (aren’t all big cities?), but the people and culture make it amazing. The amount of respect, decency, and politeness Japanese people show others gives me hope for the rest of the world. Cherry blossom season is a great time to go to Japan – it’s so beautiful under the Sakura, and there’s so much happening. Hanging out with Marcos and Glyn (who flew up from Korea) was awesome – great company, and we got to experience parts of Tokyo that we never would have otherwise (thanks guys!). Japanese gardens are absolutely unsurpassed in beauty and detail – every step reveals a new, perfect photo opportunity. There’s a lot of super cool stuff to buy in Japan (we certainly got our fair share), including some really neat toys. Heated toilet seats are kind of nice (I suppose moreso for female types), but I’m not a fan of “posterior washes” (it’s kind of violating). You must have sushi at the tsukiji fish market at least once in your life (it’s soooo good).

We were there mostly for vacation, but I also squeezed in a little time to meet up with Mariko and Teiichi from Adobe Japan, as well as to show some of my recent work and hang out with some Tokyo Flashers. It was really great meeting everyone, and getting to see and hear about some of the cool work that’s going on over there.

Overall, one of the best trips I’ve been on. I’d strongly recommend it to anyone. I took a ton of photos, and might post some here when I have time. I’m going to have to do some re-working of my Sakura experiments to match all the photos I took.

Now I have to get busy and finish preparing for FitC Toronto (which I also highly recommend)!

Extension Melee (Part 3)

Looking over all our extensions, it is clear that the #1 thing we automate is quick access to files. gProject was initially created to give us a quick-open file listing. OpenBoundClasses and FindInLibrary also find us symbols and classes with a keystroke. Even gSearch helps us find the files or symbols we are looking for.

To round off the “Quick-Open” extensions (part 1, part 2), here are two small commands that give us two more ways to open and find files.

IV. QuickOpen

The QuickOpen panel is a proxy to your recent files. Apparently we thought click “File > Open Recent” menu wasn’t enough, so we created a popup list that you can bind to a keyboard shortcut. QuickOpen is an easy access, keyboard-accessible shortcut to the recent files. Unfortunately flash will not give focus to XUL dialogs on the Mac, so you have to click it in order to use your keyboard. Works great on PC though.

Download this extension

V. QuickOpenImport

Despite the similar name, QuickOpenImport is completely different. Often, when working on a class file (or FLA), we come across a class that we would like to open, but are unsure where it is. This extension pops up a dialog with a TextInput, and opens the class path you enter.

Download this extension

QuickOpenImport requires that you have your classes in a normal class path, since flash 7 and 8 will not tell us where it looks when compiling. Supported paths are relative to your FLA (“./”), “./classes”, “../classes”, and the flash classes directory (for components, etc). You can add paths by manually editing the JSFL, which is located in the configuration directory in the Commands folder.

That’s it for today. Look forward to more extension goodness next week!

Apollo Time Tracking Application: Codenamed gTimer

Our development team is in a mixed environment of Mac OSX and PCs (mostly WinXP), and one of the challenges we’ve always faced is time tracking and reporting. There are plenty of decent, low-cost options on either platform, but we were never able to find a single time tracker that worked on both that met our needs. When I started playing with Apollo, I realized that it would be a great technology to build a cross platform time tracking application that did everything we needed. We’ve been working on it for awhile, and the result is a cool Apollo app we’ve code named gTimer (the name will change). If you’ve attended any Adobe keynotes or conference sessions about Apollo you may have seen it demoed.

I think it’s somewhat unique, in that it leverages Apollo’s potential in a different manner than the one Adobe is promoting. Rather than taking an existing web property, and moving it onto the desktop, we have created a new desktop application that takes advantage of the web, the Flash platform’s capabilities for rich UIs, and Apollo’s cross-platform support.

Continue reading →

Using Flash Symbols with ActionScript in Flex

Normally Flex will strip all ActionScript from an embedded Flash symbol. We’ve developed a technique called Shake’n’Bake SWFs (yes, I did watch Talladega Nights before coming up with the name), which allows you to utilize Flash symbols in Flex projects with all AS intact. I mentioned this technique at 360Flex, but didn’t go into much detail because there are better options available when using Flash CS3. A couple of people mentioned that they would like to learn about the technique, so I thought I’d blog about it.
Continue reading →

Extension Melee (Part 2)

To continue the extension goodness (see part 1), here is another handy extension that’s sure to boost your productivity.

Find In Library

One of the most common workflows when working in FLAs is the need to find the library item for a symbol on the stage. Simply select a symbol on stage, and run the Find in Library command, and the appropriate library symbol is selected. This command is most useful when bound to a keyboard shortcut, such as CTRL-E.

Download the FindInLibrary Extension

To add an extra bit of functionality, install the OpenBoundClasses extension as well: if a class is bound to the symbol, it will automatically open when you run the FindInLibrary command.

You must have your library open for this extension to work. Additionally, Flash will not scroll the library to the selected symbol.

If you’re looking for an opposite workflow, finding stage instances with a specific symbol or linkage, I recommend checking out gSearch, part of our first Panel Pack, which includes a powerful Timeline search tool.

Bitmap Fonts in Flex (via Flash)

I’m not a big fan of working with fonts in Flex overall. Truetype font file embedding is hit or miss, and even embedding system fonts seems a little unreliable. Likewise, managing character sets (ie. the glyphs to embed) in Flex is quite rudimentary (unicode character codes? editing the global config XML? blech!). These features are manageable within Flex though, even if they are a little ugly.

One font related feature that’s completely missing from Flex though is support for creating bitmap fonts. This is a shame, because bitmap fonts are sharp and aliased, and look great at small sizes (ex. 9pt Arial is quite readable as a bitmap font).
Continue reading →

We got Dugg.

Puki 3D made the front page of Digg…. cool! I think this is our first front page Digging, and I somehow missed it (it hit the front page 2 days ago). 50,000 visitors in one day, and as far as I can tell the server stayed up – kudos to Media Temple! Here’s a link to the Digg topic.

While I’m blogging about Puki, here’s a trick: Type “oldskool” before you start a game (make sure you’ve clicked to focus the game first), and you’ll get classic arcade graphics.

One day I’d like to revisit this game. Maybe with Papervision3D.