All posts by admin

Games developer and motion graphics specialist.

How to embed fonts in pure AS3

On my travels as a contractor, I’ve seen various methods used for embedding fonts in ActionScript 3 projects (code embedded, creating font SWFs, runtime loading, etc). Each of them has its own merits (and limitations), but generally you’re looking for something that’s easy to do, easy to maintain (for others, not just yourself) and of course that works!

So, here’s the method I use for pure AS3 projects I compile with the Flex SDK. I embed the TTF or OTF file in a ‘Style’ class and include those font files in the CVS/SVN repository too – it does my head in when fonts go missing, because a designer can’t remember which font they used:


 

Through experience, this seems to be the most robust and maintainable way of dealing with fonts (not to throw out more flexible, but perhaps less robust ways, such as runtime loading), especially when you need control of the unicode ranges you are embedding – which I have included for reference.


 

Making your own search engine

faviconWell, sort of. I just added an OpenSearch plugin to the site, that adds a ‘spikything’ search option to the search drop-down in FireFox 2+ and IE7+. To add the search plugin on your browser, click the drop down arrow on the search bar in your browser (top-right) and click ‘Add spikything search’.

Here’s more info on how to do this yourself.

Typelight – a freeware font editor

I just stumbled across this rather useful OpenType font editor. Called typelight, there are freeware and business licensing options available and you should certainly consider it before forking out for something like Fontographer.

How to use ExternalInterface to integrate AS3 with JavaScript

Here’s a quick snippet of code for setting up intercommunication between a SWF and JavaScript, using ExternalInterface:

Webcam spherise

I cobbled this Webcam effect together for no other reason than creative curiosity – a digital hall of mirrors thing, I suppose. Best viewed on your laptop, since it requires Flash and a Webcam…

And for the techies, here’s the source code (zipped FLA).

Head tracking in 3D

I started trying to find useful things to do with face detection, but with limited success. I tried using the Libspark Haar Cascades implementation of face detection with Papervision3D to create a sort of head tracking effect, but it’s a little flaky – partly because of poor tracking accuracy and partly because it’s too CPU intensive. You can view it on its own page here.

Synchronising animation across multiple player instances

I’ve been asked a few times how to create effects that require multiple instances of the Flash Player on a page to remain ‘in sync’, even with user interaction. Reading and writing to cookies frequently is inefficient and resource heavy. Also, when you have more than 2 SWFs, deciding which SWF updates who becomes tricky – especially if someone decides to change or remove an instance, or an instance which you picked as ‘master’ is not loaded, for some reason.

So, I came up with this solution, using LocalConnection with a twist, which works pretty well. But, if anyone has a better method, drop it in a comment below 🙂

How Wonderfl

I’ve been playing around a little with the online Flash building tool, Wonderfl. If you haven’t seen it already, I urge you to create an account and have a go. You can browse the weird things that people have created, fork other users’ code, or write you own from scratch and see the results compiled online in realtime. It’s a great way to learn graphics coding in AS3 I reckon.

Wonderfl