Adobe AIR: Why won't my SWF load?!

If you develop Adobe AIR applications using AJAX, you may eventually come across a strange bug. Adobe says you can embed external SWF files in your HTML application, and from that example code it's simple! So why do SWFs seem to load fine in some HTML AIR apps, but in others they don't show up at all?

    <!-- 
        Whether the window is transparent. 
        Only applicable when systemChrome is false. 
        Optional. Default false. 
    -->
    <transparent>true</transparent>

There's the culprit. One of the controversially cool features in AIR is that you can abandon system chrome to make your application transparent. Problem is, even in parts of your page that are visible, SWFs do not seem to appear when your application.xml file sets transparent to true. Set it to false and everything works again!

A side effect of this workaround is that if your application has a non-rectangular background, or parts of the application are supposed to be see-through, your users won't be able to click what's "beneath" the app on their screen.

So is this feature tradeoff a bug? I think so, as it seems of all the things that play nicely with Adobe AIR, Adobe Flash should be one. Note that this problem may not apply to AIR apps created in Flex or Flash.

This lesson brought to you by one very frustrating work day.

Tags




blog comments powered by Disqus
search blog
random posts
  • WEB-ANALYTICS-HOUR-Avinash-Kaushik
  • Performance-JavaScript-Faster-Application-Interfaces
categories & tags
about hb stone

I'm a Front-End Engineer at Yahoo! working on the Mail and Messenger teams. I blog about web design and development topics including accessibility, usability, performance, and developing HTML / CSS / JavaScript applications on Appcelerator Titanium and Adobe AIR.

If you're a web developer, you might enjoy Jelo, my JavaScript library.

@hbstone follows:
@hbstone tweets:
  • Web-Design-Nutshell-Desktop-Reference
  • High-Performance-Web-Sites-Essential
copyright

All original work on this site is covered by a Creative Commons Attribution 3.0 license unless otherwise specified.

You may share or use any code or images from this site in any manner, for free, so long as reasonable effort has been made to give credit where due.

The views expressed in the posts and comments on this blog do not necessarily reflect the views of Yahoo!