Issues with utility windows in Adobe AIR

In Adobe AIR there are three different window types available when you create a new NativeWindow. One of the types is the NativeWindowType.UTILITY type: The flash help says: “Utility windows use a slimmer version of the system chrome and do not appear on the Windows task bar and the Mac OS-X window menu.”

Some issues you should bear in mind when working with them are:

read more…

Two convenient ways to update your AIR applications

Our recent AIR application MiniTask has built-in support for application updates via web. In the very first version we used Claus Wahler’s AIR Remote Updater for this which is a really smart solution as it “grabs the version number directly from the remote .AIR file without having to download the entire file” (using FZip). It is a “data only” class so you have to implement all UI logic yourself by listening for events and calling methods on the class…

read more…

MiniTask - free AIR application

MiniTask

After having developed one commercial and one internal Adobe® AIR™ application MiniTask is our first free app. It has its own website at www.minitask.org with screenshots and further information.
We developed it using the PureMVC framework for AS3 and it turned out to work really well! Give it a try…

Unloading AS3 content

Grant Skinner has posted a very informative article about the issues of unloading content in AS3.
Currently we’re facing the same problems (loading / unloading third-party content) in our main application. We handle unloading by providing some API events (”onRemove” etc.) and clearly stating in the API docs that it is the developer’s responsibility to clean everything up there (basically this is the second option in his article under “Workarounds and strategies”). Far from perfect - especially if content developers aren’t aware of these issues - but probably the best thing you can do for now.

Flash v3 component issues

After working on a project with Flash’s CS3 component set I think it’s safe to say that they’re much better than their predecessor (after all they’re based on ActionScript 3 now…). Some useful components are missing but that’s not too bad as you could create your own based on the v3 core, use Yahoo’s free additions to the v3 set (Astra) or consider using flex if you’re doing heavy component work.
Despite this fact there are some problems I’ve encountered while working with some of the existing v3 components (please correct me if I’ve missed something):

read more…

stage.invalidate() and Event.RENDER for UI elements

We’ve been doing lots of ui stuff lately using ActionScript 3 and the new methods available for redrawing. Unfortunately there’s a Flash Player Bug with Event.RENDER which you should keep in mind when using this approach. Before talking about the bug, here’s a short introduction to redrawing models in general (just in case you’re not already familiar with that topic. If you’re interested in the AS3 stuff, just skip the next paragraphs…):

read more…

Runtime font loading with AS3 / Flash CS3 (not Flex!)

If I never really got something in Flash it was font embedding and runtime font loading. The bad news is: We have ActionScript 3.0 now and Flash CS3 and I haven’t completely understood it yet. The good news is: It works - somehow - if you keep in mind some things. After all articles about this topic I’ve read until now I have the feeling that nobody really understands what’s going on with fonts in different use cases. Trial and error…
As the headline suggests this article deals with font embedding in Flash CS3 and not in Flex. With Flex and mxmlc there’s the embed metatag where you can even define font character ranges which should be embedded. You don’t have this option if compile with the Flash IDE…

read more…

Tip for using SWFAddress and GoogleAnalytics together

Just a quick tip to save you a few minutes if you plan to use SWFAddress (as far as I know currently the best browser-back-button solution for flash) and GoogleAnalytics (for tracking) in a flash project:

read more…

Flash Video Tip 3: Stopping a FLV from downloading

When you set the contentPath property of a FLVPlayback component in Flash 8 it immediately starts (progressively) downloading the flv. Normally this is the desired behaviour but sometimes you don’t want the flv to take up bandwidth because there are currently other loading processes. Some time ago I read an article at Flashcomguru on how to generate a thumbnail preview of a video and stop the download process. While this should work if you manually create your NetConnection/NetStream object the technique described there (trying to load a non-existent flv) doesn’t seem to work with a FLVPlayback component.

Here’s another approach: (code is just on frame 1 for this demo, should be put into a class…)

read more…

Flash Video Tip 2: Syncing a FLV between two SWFs

Here’s the next flash video tip: It’s about how to synchronize a flv file between two separate swf files. First question is: Why would you want to do this? Honestly I can’t think of too many cases where you would do this but there’s one case where it can be appropriate (and coincidentally it has happened in one of our last projects ;):
Flipping book applications - you certainly know what I mean with flipping book applications (they seem to be quite popular with lots of companies): online magazines where you can interactively turn pages by dragging the book corners to flip through the pages. Most of them consist of two separate swf files for the left and right page and it can be quite challenging to load / initialize / time things if you have much communication and interactivity going on between the two pages.

What options are there if you want to show a flv which runs synchronous on separate swfs (or in the special flipping book case: the left half of the flv runs on the left page and the right half on the right page)?

read more…