Flash Player 9 / AS3 Sound Crashing Bug

Here’s a simple bug in Flash Player 9 that crashes every browser I’ve tested it in. Simply call Sound.play(position) with an out of range position. For instance, the example below plays a 25 second sound with a starting position of 30,000 milliseconds.

This bug wasted an hour of my time while I tried to figure out why short tracks were crashing a computeSpectrum demo I built, but long tracks weren’t. It turned out I had set a starting position of 2 minutes to jump to a particularly dramatic part of one of the tracks I tested, and I had forgotten about it. Hopefully this post will save someone else the same pain.

This will almost definitely crash your browser, so check to make sure you don’t have anything important open. If it doesn’t crash, post in the comments with your browser / OS / player version.

Click here to turn off the internet (err, view the crash demo)

UPDATE Feb 29, 2008: This bug was fixed in a player 9 update (r60 I believe). Be aware that it can still affect your users, who may not have updated!

gskinner.com Hits 3 Years and 10 People

I’m pretty excited that my little company recently reached 10 full time people. We’re just entering our fourth year as a company, and it’s been a wild ride. I have an awesome team, we have a lot of fun, and we get the opportunity to work on great projects in addition to building out some of our own internal ideas.

Our continued growth means we can tackle bigger and more interesting projects, as well as broaden the scope of the services we offer. But, it is a little weird to be running a company that offers benefits. 🙂

It is also kind of cool to finally be able to select the second option on those “company size” dropdowns (10-50), though I’m not that interested in ever making it to the third option (51-500?).

Thanks to my team (present and past) for being such all round great people to work with, our clients for challenging us to push the boundaries and giving us such awesome projects, Adobe (and the not to be forgot Macromedia) for the tools/platform and the openness with developers, and everyone in the community that has helped make it such a cool space to work in. Cheers!

It’s an exciting time in this industry, and I’m really looking forward to the next 3 years.

Free Extension: gAlign Panel

When doing design work in Flash (or laying out design elements), one of the most common panels to have open is the Align panel. It’s great for relative alignment and distribution, but we thought we could kick it up another couple notches. The result is the gAlign panel.

UPDATE

We have uploaded a new version of the gAlign panel, which works with shapes, drawing objects, and groups. Note that shapes will not work with the new drawing options.

VII. gAlign Panel

This panel has all the functionality of the Align panel (the top 3 rows), but with some much needed absolute spacing commands along the bottom. The “Distribute Spacing” commands use custom JSFL calls to distribute your elements based on the edges of the elements, rather than the registration points. For instance, refer to this image:

If you were to “Distribute” the items horizontally using Flash’s built in distribute, you would end up with the following result:

Using the new “Distribute Spacing” option in gAlign (and a spacing amount of “Auto”), you would get horizontal distribution based on the size of the elements.

Further, using the numeric spacing options, You can specify an absolute space between items. Applying a spacing of “2” to the first example would yield this result:

Download the gAlign Panel

Please feel free to let us know if you have any comments or suggestions.

There are a couple things to note.

  1. Apparently, the new align functions do not work with shapes. This is a limitation in flash.
  2. The “To Stage” toggle does not apply to the new align modes
  3. Flash treats each individual symbol position change as a seperate UNDO, instead of as a combined UNDO, since we use seperate JSFL calls to move each element.
  4. In order to align objects flush up against one another, you can distribute their spacing with a value of zero!
  5. This panel was developed for flash 7 and 8, but works in Flash 9.

A Flash of Silverlight? My Analysis.

By now, everyone has heard of Silverlight (previously WPF/E), Microsoft’s answer to the Flash player. There have been a lot of posts on the topic of Flash versus Silverlight, but I thought I would chime in with my own thoughts on the subject. I have not played with Silverlight in much depth, so please feel free to correct me if there are mistakes.

From my perspective, the discussion can be broken into four categories: opportunity, runtime, tools, and intent.

Continue reading →

Free Extension: AS3 String Utils

To continue the Extension goodness, here is an uber-handy AS3 class that we built the second we had access to AS3.

VI. AS3 String Utils

With the advent of regex in Actionscript, string methods become easier, and in some cases a lot faster. It also gave us a good exercise in AS3. This class is found in the com.chewtinfoil.utils package.
Oddly, Macromedia released a string utils class around the same time we built this, but we found that not only was there less methods, but they made no use of regex, and basically ported an AS2 version.
We have intended on releasing this one for some time, so without further ado, here it is:
Download this AS3 String Utils!
Please let us know if you find any problems, or have any other ideas for fancy string-abusing methods. See a complete API and example after the jump!
Continue reading →

Flex + Apollo + Digg API = DiggTop!

When we were invited to build a sample application for the Digg API contest, my first thought was to do something cool with another new release. We’ve been doing a ton of work with Apollo (our “gTimer” time management app for example), and I decided it would be fun to do something more “creative” with it.

The concept was to build a desktop Digg reader that I would personally want to use (I’m fussy). I wanted it to be something really functional and useful. I wanted an Apollo application that added value to the Digg experience, and skipped the seemingly obligatory cube flip effect (fast becoming the hallmark of Apollo apps). This wasn’t planned to be an application that wowed you at first sight, but rather be an application you’d want to keep using after the first day or two.

The end result was DiggTop. It’s a nice, small (<500kb), unobtrusive (especially in mini mode), cross-platform application (Mac OSX and Windows XP) that lets you view a custom blended Digg feed on your desktop. We mainly aimed to keep it simple and usable, but we also threw in a few cool features, like keyword feed support, custom article notifications, video preview, application update notification, and image slideshows.

I’d love to go into depth about it’s features and how we built it, but I’m catching a plane to FitC Toronto in the morning, and should probably finish packing. Instead, I’ll leave you with a screenshot, and a link to the DiggTop home page, where you can learn more, and download the alpha application for free.

Continue reading →

Extension Melee (Part 4)

To mix things up a bit, this extension is not actually an extension, but a component. However, I think it’s fair to group it in our series of flash extensions (see part 1,2,and 3), due to its obvious usefulness 😛

VI. SimpleTabBox

The SimpleTabBox is an AS2 component we built a while back – as evidence, here is a screenshot of it in action in gProject. This is one of the components that I have always felt should have been part of the V2 component set, but for some reason, the closest Macromedia came was the release of the TabBar in one of the Devnet CDs (which was not very useful as all).
Download the Extension. Included is the component MXP, as well as the source classes, and an FLA with the skin assets.
This TabBox was designed with one thing in mind: An easy way to create a pleasant simple looking ViewStack in flash. I’m sure there are others out there, in fact Paul Ortchanian released an implementation a couple weeks ago.
I hope someone out there finds this useful. As with all of our other free extensions, feel free to let us know if you find bugs or have feature requests.
Continue reading →