How to Position Dynamically Loaded Content Based on Browser Resizing

April 20th, 2008
ActionScript 2.0

In one of the recent comments to “How to Position Movie Clips Based on Browser Resizing,” a look at the ActionScript 2.0 Stage.onResize event, reader Eddy asked about adjusting an image loaded at runtime; particularly, about fading in an image set to scale and reposition itself based on the size of the browser.  I was originally going to reply to his comment directly, but this seems to me like something that would make a decent blog entry of its own, so here’s one particular stab at it.  Keep reading »

Using SWFObject for More than Just Embedding SWFs

March 12th, 2008
Flash Web Development

My favorite mechanism for embedding SWFs, hands down, is Geoff StearnsSWFObject.  It’s clean, lightweight, and easy to use.  Since April 2006, SWFObject has been my first choice for working around the “click to activate and use this control” warning in Internet Explorer.  Microsoft has decided to remove this activation behavior from Internet Explorer in April 2008 — right around the corner, as of this writing — but there’s still plenty of reason to keep right on using SWFObject.  Why?  Because it provides an elegant way to detect what version of Flash Player (if any) a website visitor has installed.  If you’re using the On2 video codec, for example, it means your site requires Flash Player 8 or higher.  With SWFObject, you can detect if your visitor has at least 8 and then display the SWF; otherwise, display a stand-in message (or image), such as “This site requires Flash Player 8 or higher.”  But what if you want to redirect to another page instead?  Or what if you want to display two different SWFs, depending on what’s installed?  Read on.  Keep reading »

New O’Reilly Title, Coming Soon!

March 12th, 2008
ActionScript 2.0 ActionScript 3.0 Flash General

I just finished the last of my eleven chapters for a new O’Reilly title, ActionScript 3.0:  The Quick Answer Guide for Flash Professionals, last Wednesday.  This was shortly after lunch, 12:30 on the dot, and a neat thing happened almost as I lifted my hands from the keyboard (more on that in a sec).  The rest of the book is still being written, and it’s shaping up nicely.  I’m pretty excited about this project already!  :)   The aim of this reference is to help developers, even keyframe coders, get up to speed with AS3, so keep your eyes peeled in June!

I took a wild tumble off the grid while I was researching and writing for the past five or six weeks, so I apologize for my late replies to blog comments and email.  I’ve been catching up on my inbox since last Wednesday and plan to reply to everyone as soon as I can.  Thanks, so much, to my friends for all the encouragement!  (Go,!)

I’ll be going over author reviews in the coming weeks, but the heavy lifting is behind me.  The neat thing that happened, on day I finished, is this:  I went downstairs to gaze out the window for a few moments, and right as I did, UPS brought a package to the door.  I opened the box, and inside was a huge tin of Turkish coffee (over a pound!), imported from Turkey, sent by reader Çağatay.  What a way to commemorate the milestone!  Thanks, Çağatay!  This coffee is a real treat!

How to use Font Symbols (Embedded Fonts) with ActionScript

February 28th, 2008
ActionScript 2.0 ActionScript 3.0

You certainly don’t need ActionScript to make use of embedded fonts.  You can always just embed font outlines manually by selecting a text field, then using the Embed button in the Property inspector.  Select your range of characters, type in your text, then publish; you’re good to go (and you only need to do it with dynamic and input text fields:  static text fields embed font outlines automatically).  In fact, if your text field has an instance name — something you can also set in the Property inspector — then you can determine its text content with ActionScript and the embedded font outlines still hold.  But if you’re using ActionScript to create text fields on the fly, the mechanics are a bit different.  Let’s take a look.  Keep reading »

Progressive Enhancement with Flash

February 4th, 2008
ActionScript 2.0 ActionScript 3.0 Flash

One of the main tenets of good Web design is the principle of progressive enhancement.  In general, the idea goes like this:  make sure the user can access a web site’s essential content regardless of browser.  It shouldn’t matter whether the user visits your site with Internet Explorer, Firefox, Safari, Netscape, or pick your favorite flavor.  In fact, the site’s content should be accessible even without JavaScript or peripheral plugins like Flash Player.  Once the basics are covered, use CSS to enhance the visual design.  Then, and only then, introduce the whizz-bang stuff — nifty rollovers, AJAX interactivity, Flash — and do it in a way that doesn’t penalize users who don’t have (or choose to disable) the needed machinery.

Sound pretty neat?  I’ve seen a few examples of this online and at conferences, so I delved into this topic myself to see how much fun it might be.  Turns out it can be somewhat challenging, but definitely fun to see the results.  I put together an example in order to explore the basic mechanics of this form of progressive enhancement — a slideshow SWF that takes its cue from the HTML in which it appears — and turned it into a three-part series on  The first part is free and covers how to get the HTML from the Web page itself into the SWF.  The follow-up articles go into how to parse that HTML in AS2 and AS3.  CommunityMX offers free trial memberships, so if you aren’t interested in becoming a subscriber, you can wait until the follow-up that interests you gets posted (not sure yet when that will be), then sign up for the trial membership.  Of course, if you want to subscribe, that would be cool too!

Working with asfunction in AS2 Class Files

January 29th, 2008
ActionScript 2.0

Flash Player has supported a limited subset of the HTML specification since version 6 — just set a text field’s htmlText property to an HTML-formatted string and you’re good to go.  Fortunately, <a> (anchor) tags are among the supported few, which means you can even put working hyperlinks inside your text.  Not only that, but Flash includes a special protocol, asfunction, that allows you to trigger functions from those hyperlinks, in case you prefer to do that instead of visiting URLs.  ActionScript 3.0 uses a different approach, but if you’re coding in AS1 or 2, just replace with asfunction:someFunction,someParam, as described elsewhere on this blog.  If you’re coding in timeline keyframes, it’s all pretty straightforward.  But asfunction can seemingly break when used in custom class files.  Here’s what’s going on and how to fix it.  Keep reading »

Moock’s Pitch for AS3 (It’s a Good One!)

January 21st, 2008
ActionScript 3.0 Flash

O’Reilly and Adobe have teamed up on a new website dedicated to Rich Internet Applications (RIA).  Among the first featured articles is a comparative look at ActionScript 3.0 and its predecessors, 2.0 and 1.0, in which Colin Moock offers a number of solid insights (and encouragements) toward learning the new language.

How to Play a Timeline Backwards (with Easing!)

January 2nd, 2008
ActionScript 2.0 ActionScript 3.0

Reader James Colvin wrote me in mid-December to ask if I had any thoughts on playing a timeline backwards.  As it turns out, this question comes up every now and then on the Adobe forums, where longtime regular kglad usually posts his very handy custom function in reply.  In kglad’s version, the MovieClip.nextFrame() and prevFrame() methods are used in cahoots with setInterval() to accomplish the goal.  He often assigns the function to the Object.prototype property of the MovieClip class, which makes the new functionality available to all movie clips (a pre-AS3 technique).

My initial reaction was to search the forums and send back a link, but James’ question had an interesting twist:  could this non-standard timeline movement include easing?  Wow, what a cool challenge!  So I thought about it off and on over the holidays, and a neat solution occurred to me just this morning.  Keep reading »

Flash CS3 (9.0.2) Supports New Video and Audio Codecs; FLVPlayback Works, But …

December 13th, 2007
ActionScript 3.0 Flash

If you want to be able to deliver non-FLV video in Flash (how cool is that?!), head over to the Adobe Flash Support Center and download the Adobe Flash Player Update for Flash CS3 Professional (9.0.2).  The result?  At runtime, you’ll be able to load MOV and MP4 files encoded in the H.264 hi-def codec.  This is in addition to the usual FLV, and we’re talking Flash Player 9 only (specifically, version or higher).  You’ll also be able to load M4A audio instead of only MP3.  The upgrade to the IDE allows you to view such content as you test and debug SWFs right in the authoring environment.  I’ve already installed and tested, and the update works … but I have seen one stumbling block.  You can work around it — in fact, you can work right through it — but it isn’t especially obvious.  Keep reading »

MP3 Cue Points Article Updated on Adobe Developer Connection

December 4th, 2007
ActionScript 2.0 ActionScript 3.0

I wrote a cue points article last year (October, 2006) for what was then called the Adobe Dev Center.  One of the editors recently asked me to update that article for Flash CS3, which I was happy to do.  It’s now available on the Adobe Developer Connection at the following URL.

If you’re looking for a way to assign cue points to audio files (especially MP3 files loaded at runtime), I hope you find this article useful.  It steps through a custom SoundSync class in ActionScript 2.0 and 3.0.