Posts Tagged ‘AIR’
FlashPlayer 10 and loading AVM1 content
November 20th, 2008 • 2 comments ActionScript, AIR, Flash
Tags: AIR, AS3, Flash
I’m using some swf assets directly exported from Illustrator CS3. You can export Flash 9 swfs, but as you can’t add any code there you will always get AVM1 content (AS2.0). So it’s basically just an information in the header and maybe Adobe will put an option in the export-settings to actually publish AVM2 swfs. I haven’t tried CS4 so far, maybe it’s in there already?!
Anyway, loading this swfs and moving it to another part of the displayList didn’t cause any problems using FlashPlayer 9. In FlashPlayer 10 I get the runtime error 2180:
Error #2180: It is illegal to move AVM1 content (AS1 or AS2) to a different part of the displayList when it has been loaded into AVM2 (AS3) content.
There are a few options to avoid this error:
- Don’t load AVM1 content respectively create the assets in Flash to get AVM2 swfs
- Don’t move the assets in a different part of the displayList
- Change the SWF header on-the-fly
The last solution seemed to be perfect and remembering the AVM2Loader class someone created in the upcoming AS3 times it was the easiest solution without changing the workflow. Even if the author Fladdict removed the class, you can still find it on the internet at Troy Gardners blog.
Update 20.11.2008
To use this workaround in an AIR application you have to set allowLoadBytesCodeExecution = true in your LoaderContext otherwise you aren’t allowed to load the bytes of the swf.
... var loader:Loader = new AVM2Loader(); var loaderContext:LoaderContext = new LoaderContext(); loaderContext.allowLoadBytesCodeExecution = true; loader.load("file.swf", loaderContext); ...
Compiling AIR or what is the right SDK
November 17th, 2008 • AIR
Tags: AIR
This is no tutorial about creating ant build files and so on. you can find a good one with a sample project at the FDT blog. It’s for AIR 1.0 but you just have to change the descriptor xml to the new format and it should work.
This post is all about using the right SDK. With the release of AIR 1.5 some of you might switch and run into the same problems I did when I set up my first AIR project. Compiling for AIR is a little bit more strict and bound to the SDK than compiling for FlashPlayer. If you want to target for instance FlashPlayer 9 you could use Flex SDK 3.0, 3.2 or even a beta release of Gumbo (4.0), as long as you don’t use any of the classes or functions that are related with FlashPlayer 10 (e.g. the Vector class).
Compiling for AIR is a little bit different. The SDK is more or less bound to the version you want to target, so you have to use the right SDK in combination with the right definition in the application descriptor file.
<application xmlns="http://ns.adobe.com/air/application/1.1"> ... </application>
As you can see this descriptor is for AIR 1.1. If you try to compile with the SDK 3.2 which targets AIR 1.5 you will get a compile error (“error while loading initial content”).
Just keep that in mind and use the right SDK:
- AIR 1.0 – Flex SDK 3.0
- AIR 1.1 – Flex SDK 3.1
- AIR 1.5 – Flex SDK 3.2
You can find a list of milestone releases, stable and nigthly builds at the Adobe Open Source site.

