Grant Skinner

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

@gskinner

Variable Scrollbar Width for CS3 Components

I’ve seen a few people asking for the ability to have variable scrollbar widths in the Flash CS3 component set. Unfortunately, it wasn’t something we were able to get in for the release, but since then I have put a bit of time into the feature, and believe I have it working satisfactorily with all components. I added two styles: scrollBarWidth and scrollArrowHeight. The former controls the width of the scroll bar (or height in a horizontal scroll bar), the latter controls the height of its arrows (allowing you to have irregularly sized arrows).

It’s important to note that this modification has not seen comprehensive testing, and it is not connected with Adobe in any way. Any mistakes are my own, and I’d appreciate if you can let me know about them in the comments.

Continue reading →

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 →