While wrapping up a project for a client, I ran into a problem that one of my AIR apps didn’t work on the client’s Mac. This particular project consisted of a ‘suite’ of applications, two AIR apps and one Flex app. The other two apps in the suite worked great, however the problematic AIR app just displayed a gray screen. In case anyone else runs into this – it turned out to be due to the omission of the ‘height’ parameter in the WindowedApplication tag.
I’m posting a small AIR project I did a while back. In fact, this was my first AIR app. To that end, there’s no reason this couldn’t be compiled as a Flex app, the use case made more sense as a desktop app and I wanted to get my feet wet with AIR.
The application allows the user to select the color displayed of some attached (via serial connection) tri-color LEDs. The program also has the ability to randomly pick two colors and “transition” from one color to the next over a user specified amount of time.
Flash / Air doesn’t allow read / writing to serial ports. The program uses a serial proxy by by Stefano Busti(1999) and David A. Mellis(2005) found at http://www.arduino.cc/en/Main/Software to make this possible. The AIR app then can utilize a socket connection to the proxy.
For those interested here’s a list of the parts used for the light itself:
Here’s another issue I recently ran across. I was porting an existing (working) Flex 3 project to AIR. Under AIR my RPC calls (via AMFPHP) stopped working, and would return a 403 Permission denied error.
Using ethereal verified the 403 error. The were minor differences in the headers sent when executing the NetConnection.call() from Flex and AIR. One of those differences happened to be the “user-agent.” My gateway is hosted on a shared webhost, so this was my first guess as to what might be the problem.
I launched charles, and sure enough, the server would reject (via 403) any POSTs made with a user-agent of “Shockwave Flash.” Changing the user-agent (via charles) to pretty much anything else fixed the problem.
I contacted both Adobe and my webhost. The Adobe engineers stated the default user-agent has been changed for the final release of air. My webhost was gracious enough the give me a line to add to my .htacess to revoke this “filter”
Everything is now working.