Making fonts in AS3 is fun

The instructions that come with the FIVe3D font making utility are pretty clear overall but on OS X 10.4 it can be confusing to find which WindowSWF folder to use. Is it /Applications/Adobe Flash CS4/en/Configuration/WindowSWF/ ? Or is it /Applications/Adobe Flash CS4/Common/First Run/WindowSWF/ ?

Actually, the place to put “Make a new typography file.swf” is here: /Users/youruserhandle/Library/Application Support/Adobe/Flash CS4/en/Configuration/WindowSWF/.

I used a font called Roadkill. When the font was created, the Flash CS4 Output window said: ‘”Roadkill.as” is in the current folder.’

Since my hard drive is partitioned, it wasn’t immediately clear what was meant by “current folder” in this case. The font.fla file I used to create Roadkill.as via the font-making utility was on the 2nd partition, i.e. not on the main partition.

It turns out “current folder” meant the top most directory on the main partition on my OS X machine, right next to Users, Developer, Library, Applications, System.

A quick note about compiling FIVe3D examples in Flex

One of my favorite FIVe3D examples is this AS3 banner by Bartek Drozdz.

I downloaded the source code graciously provided by the author but when I tried to compile in Flex Builder 3 w/ SDK 3.4, I kept getting errors that told me Flex can’t find classes found in the “fl.motion.*” package. Since that particular package only works in the Flash IDE, I had to make some small adjustments to the FIVe3D banner code to get it to compile as a Flex Builder Actionscript application. Basically, I had to substitute all “fl.motion” package classes with their equivalents from the TweenLite library. For example, when an easing function, such as “import fl.motion.Elastic” was required by line 6 of Screenplay.as, it was quick and easy to change that to “import gs.easing.Elastic,” while making sure the relevant “gs” packages are actually at the location you’re telling the application they’re located.

In Sprite3D.as and Shape3D.as I commented out these lines and most of the banner example’s functionality remained unaffected:

/* ... */ 
import fl.motion.Color;
/* ... */ 
var color:Color = new Color();
color.brightness = brightness;
color.alphaMultiplier = alpha;
transform.colorTransform = color;
/* ... */