Air
January 13th, 2011 | Air, Flex, Geekery, Tech | Matt Bryson
We had a challenging situation on our hands this week.
We are building an AIR application for a client, that has an HTML control in one of the windows and this HTML control loads up an HTML page with an embedded SWF, both locally hosted within the application domain.
In the prototype for the app, all worked fine. However, once we started to build the final application, the external SWFsuddenly failed to load!
The HTML page loaded up fine, and we could execute javascript from it but the SWF would not load at all. For some reason the HTML wrapper was simply refusing to load it.
Read the rest of this entry »
October 8th, 2010 | Air, AS3, Flex, memory management | Matt Bryson
Memory management and garbage collection in Flash Player is a well debated topic. Some think that the Flash player’s garbage collections is, well, useless. Others think that most flash developers simply don’t understand it and their poor code causes memory leaks.
I’m not here to get into all that, its probably a bit of both anyway, but needless to say it will cause even the best Flash / Flex developer a headache or two at some point!
There are some good resources on Flash player garbage collection -How the GC works and How to kick start the GC in Air, so read up on those first if you haven’t already.
Below are our recent experiences with an Air application that did not release memory when a window was closed.
Read the rest of this entry »
September 2nd, 2010 | Air, AS3, Flex, Geekery, Tech | Matt Bryson
Update : Thanks to Paul Robertson for pointing out that as of AIR 2.0.2 released a couple of weeks back, there is native cross platform GZIP support in Air. However, if you need to achieve this in the 1.5 runtime for any reason, the below is still applicable!
To reduce bandwidth many servers compress HTTP responses using GZIP encoding. Pretty much all web browsers support GZIP decoding, so the actual data transfered is a fraction of the final unpacked response. Flex/Flash apps running in a web browser can take advantage of this as the browser handles the HTTP responses.
However, Flex AIR apps which do not run in a browser don’t have this luxury. By default, the headers sent in a request from AIR do not accept GZIP encoding, and even if they did, Flex / AIR runtime has no idea how to handle GZIP de-compression!!
Thanks to the Flex community however, it is possible!
Read the rest of this entry »
Tags: Air, AS3, Flex, Gzip, HTTPService, URLLoader
August 6th, 2010 | Air, AS3, Flex, Releases, Tech | Tim Heyes
Skinkers release cross platform dashboard built in Adobe AIR to help patients choose the appropriate care based on real-time and location-based data.
Today Skinkers announce the launch of the UK’s first digital Urgent Care Desktop Dashboard.
Created by virtue of a joint innovation venture between Skinkers, NHS Choices, Directgov and Businesslink, United Lincolnshire Hospitals NHS Trust and NHS Lincolnshire, the tool is aimed at making the choice of which NHS service to use a little easier.
United Lincolnshire Hospitals NHS Trust patients can now download the cross-platform desktop app for free from the UHLT web site (http://www.ulh.nhs.uk/for_patients/urgent_care_tools.asp) and use it to access information about getting the right treatment in the Lincolnshire area.
Read the rest of this entry »
Tags: Air, AS3, Flash, Flex, Google Maps, Lincolnshire, NHS, NHS Choices
July 26th, 2010 | Air, AS3, Flex | Adam Maloney
Last week I discovered a rather annoying bug with Flex’s implementation of CSS.
When you create a class selector, either the compiler or the VM seems to completely ignore it. Not really really a show stopper, but when you handling multiple components with stylesheets it can be a bit frustrating when they aren’t behaving properly.
These for example:
Component1.header {
color: #ff00ff;
}
Component2.header {
color: #333333;
}
Flex completely ignores ‘Component’ part and just uses ‘header’, so will overwrite and use last one defined for all components using styleName=”header”
Even across separate MXML files and global CSS files the last one specified will overwrite previous ones.
One way to avoid any conflicts is ditching class selectors and stick with using unique names.
Component1-header {
color: #ff00ff;
}
Component2-header {
color: #333333;
}
March 1st, 2010 | Air, AS3, Flex | Matt Bryson
This is the first in a 3 part post about using the Flex Singleton register. This post will deal with what the Flex Singleton register is as well as how and why its used. The second will look at how to register your own classes with the Singleton register (not as easy as it sounds) and the third will be a real life example.
The final post will show you how to give the Alert control the ability to create a modal overlay that supports a custom chrome in Adobe Air. The big pain with a custom chrome (say a splat shape) is that the modal overlay covers the entire bounds of the window – including any transparent areas. So for irregular shapes/chrome – like a splat as a background, you get a big square slapped over the top – not ideal. What you want is ONLY the splat to be overlaid with the modal background.
By using the Singleton register and a custom implementation of the PopupManager we can add this functionality without having to create a custom Alert class. You don’t have to change any of your existing app code where Alerts are used, all existing calls to Alert will now have our new and improved modal background!
Read the rest of this entry »
Tags: Custom Implementations, Custom PopupManager, PopupManager, Singleton
February 5th, 2010 | Air, AS3 | David Spanton
Following on from my previous post concerning dyncamically resizing AIR windows with user resize (based on Daniel Wabyick’s example here), I wanted to cover a further modification I made; that of having the window resize dynamically, but the content stay the same.
To be more specific, I wanted a content area to remain a fixed size when the window resized dynamically, but maintain a percentage width of the area when the window was resized by the user. (If that makes no sense, download the example after the jump.)
Read the rest of this entry »
Tags: dynamic resize, Window
January 21st, 2010 | Air, Flex | David Spanton
I am a big fan of Daniel Wabyick’s dynamically resizing window example. ( http://www.wabysabi.com/blog/2008/01/29/example-air-app-dynamically-resizing-windows-based-on-content-area/ ). A simple and elegant solution to accommodate dynamically expanding and contracting windows in an AIR application.
I’ve since extended this example to fill two extra requirements. The first of these was to add a gripper that allows users to resize the window; the focus of this article. The second was to allow the window to dynamically resize, but to keep it’s content the same, which I will cover in the future.
Read the rest of this entry »
Tags: air window, dynamic window resize, gripper
December 11th, 2009 | Air | David Spanton
There is a bit of an issue in AIR with transparent windows and trying to drag them off the top of the screen when using nativeWindow.startMove(). In Windows XP and Vista you can drag them so that the nativeWindow.y is -17, less than which it will reposition them to -17 when you stop dragging. On Mac OS X and certain Linux setups, it won’t even let you drag the window off the top.
This isn’t much of a problem if your window is transparent merely to accommodate a custom chrome, but is if you have any substantial transparent area above your content any of the time (e.g. A window with controls/tooltips popping out above it, or room for a window to perform animation).
Read the rest of this entry »
Tags: dragging, NativeWindow, transparent, Window