Home

Follow Skinkers.

Recieve all the updates from Skinkers via email:

 

Air

0

Adobe AIR window won’t show external HTML/SWF in HTML Component

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 »

4

Memory Management in AIR / AS3 / Flash Garbage Collection.

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 »

3

Adding Gzip support for Flex/AIR HTTPService/URLLoader

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 »

1

Skinkers Develop Urgent Care Dashboard for NHS

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 »

0

Flex stylesheet namespacing issues

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;
}
0

Using the Flex Singleton register Pt 1/3

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 »

0

Dynamically resizing AIR windows with non-resizing content.

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 »

2

Dynamically resizing AIR windows with user resize (gripper).

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 »

2

Transparent window dragging in AIR.

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 »