Apr 2010

Thoughts on Apple

Off the bat you can guess where this is going

Today, Apple released something truly amazing– Steve Jobs’s personal opinion regarding the Flash platform. Like Apple’s other releases, it’s sleek, substantial, and loses much of its charm once Steve’s left the room.

Many of Steve’s criticisms are legitimate, but most of them have a valid counterargument that should be presented before the Grubers and Pogues of the world do their dance of exaltation.

Update: Apparently Steve’s triggered an impromptu Flash apologist essay writing contest. Here’s one of the more extensive responses.

[ More ]


Crisp Rasterizations with Flash 10’s 3D

Preserve your designer's hard work

My last post was about guaranteeing beautiful vector graphics in Flash. Unfortunately, the project I’m working on that uses these graphics (which again I’ll talk about at length some other time) transforms them in 3D space. Unsurprisingly this leads to some complications.

Most people forget that Flash can do native 3D, and when they see it in use usually they think it’s “innovative”. Frankly it’s not; Flash has had a 3D API since late 2008, but there are reasons why most people don’t see much of it:

  • Most designers and developers aren’t taught much about 3D transformations, or even 3D aesthetics.
  • The tools Adobe’s released to design 3D Flash content are in their first lifecycle, and are only in one product (Flash CS4), which has a ton of other new features too, competing for user’s attention.
  • There are plenty of classic techniques for producing 3D media that does not require Flash’s 3D API
  • Perspective projection of objects means that a 3D object has to be redrawn each time it is moved in 2D space, unlike a 2D object

And the sneaky one which I’ll be talking about,

  • Flash’s beautiful vector graphics may become fuzzy or pixelated when you transform them in 3D.

Thus a skilled and determined designer-developer team who find themselves in the right scenario could end up producing 3D Flash content. But if they ignore the last issue, their output might have a lower visual quality than what they’d like. Let’s look at why that is. [ More ]


Getting good vector shapes out of Flash embeds

mxmlc's use of transcoders is more complicated than you might think

A recent project I’ve been working on utilizes a couple faces from M+, a beautiful FOSS font set. There are several ways to embed fonts in Flash, and I prefer using the [Embed] meta-tag, which plays nice with the majority of the IDEs out there. However, a straight-up font embed tag wasn’t working well at all for me. The text that appeared onscreen was broken and misshapen in places.

It turns out that mxmlc, the Flash compiler, employs several “font managers” for taking embedded font files and “transcoding” them into Flash fonts. The primary manager relies on a Java library called Batik to convert the letterforms of the font file into Flash-friendly curves. I’m not sure why this was the case, but Batik was flummoxed by some of the faces in M+, specifically with the capital ‘O’ letterform.

I mean, you could trace a big O by hand if you wanted to. It’s cake. I can’t imagine why M+’s ‘O’ is so difficult to process, but if it can happen with this font, it could happen to any font.

I only managed to get good shaped text with one font manager- the one that also handles transcoding OpenType fonts and such, which uses the new Compact Font Format (CFF) system in Flash 10. (To learn more about this subject, here’s a post about the new CFF embedding system.)

It might seem subtle, but when you compare the text side by side, I think you’ll agree that all this CFF stuff I had to do was worth it. Below is the same SWF, one with M+ text imported with Batik, the other with CFF. [ More ]

No Comments
Oct 2009

Messing with things

Oh hey, now the subtitles work

(Nobody will be reading this post until months or years after it was written, so I’ll write it from a future perspective.)

In October ’09 I started taking my site’s design and navigation more seriously, in the hopes of making it a more successful site and increasing my motivation to write posts.

Before then, rezmason.net pointed to my portfolio site. My blog was accessible only by entering its URL; there was no link to it, because it was ugly and off-brand, and wasn’t updated frequently.

By throwing everything into WordPress pages and making a custom theme, I can now direct visitors straight to the blog. My portfolio was redesigned to fit in with the rest of the site, though it can still stand on its own.

I’m now much happier with the way things are. I think October was a turning point.

1 Comment

Caching timeline objects in Flash

Grant Skinner‘s talking about a Flash feature request that seems to make a lot of sense. It got me thinking about a problem I’ve experienced with Flash in the past, and whether it deserved anyone’s attention at Adobe. I decided that it did.

A lot of programmers new to AS3 reach a point, as I did, when they get very jumpy about their projects’ memory usage. It’s kind of a rite of passage, and during mine, I discovered that a set of animated buttons I incorporated into a GUI were spewing out gobs of display list garbage. (Display list garbage consists of DisplayObject instances, whose references to parents and children make them difficult for the garbage collector to quickly eliminate, kind of like digesting cellulose. For more on garbage collection, I’d suggest you conduct a hexosearch.)

Imagine your Flash animator friend makes you a MovieClip that represents a flashing bulb. She has probably made it go on and off by having a blank keyframe (lightbulb off) and a filled keyframe (lightbulb on) in a top layer in the Flash timeline, with the lightbulb outline in a bottom layer. Because the timeline is short, it will loop frequently, causing the bulb to flicker. [ More ]

No Comments
Older Posts Newer Posts