The AIR namespace number found in xmlns is only half the battle. This determines the minimum version of the runtime required to display the content. The other half of the story is what the -swf-version was compiled with.
If the SWF file is compiled with a newer -swf-version than -swf-version AIR can handle, you will receive a message -swf-version "error while loading source content."
I took this table from another answer and added the AIR version information ( source ):
SWF Version | Flash Player Version | AIR Version ---------------+------------------------+--------------- 9 | 9.0.115.0 | N/A 10 | 10.0, 10.1 | 1.5, 2.0 11 | 10.2 | 2.6 12 | 10.3 | 2.7 13 | 11.0 | 3 14 | 11.1 | 3.1 15 | 11.2 | 3.2 16 | 11.3 | 3.3 17 | 11.4 | 3.4 18 | 11.5 | 3.5 19 | 11.6 | 3.6 20 | 11.7 | 3.7 21 | 11.8 | 3.8 22 | 11.9 | 3.9 23 | 12 | 4 24 | 13 | 13 25 | 14 | 14 26 | 15 | 15 27 | 16 | 16 28 | 17 | 17 29 | 18 | 18 30 | 19 | 19 31 | 20 | 20 32 | 21 | 21 33 | 22 | 22 34 | 23 | 23 35 | 24 | 24 36 | 25 | 25 37 | 26 | 26 38 | 27 | 27 39 | 28 | 28 40 | 29 | 29 41 | 30 | 30 42 | 31 | 31
You can define the -swf-version SWF file from the swfdump utility swfdump included in the Flex SDK and AIR.
> swfdump example.swf | grep -i '<swf' <swf xmlns='http://macromedia/2003/swfx' version='18' framerate='24' size='10000x7500' compressed='false' >
The above SWF file is compiled with the -swf-version=18 option and therefore requires AIR 3.5 or more -swf-version=18 , and xmlns="http://ns.adobe.com/air/application/3.5"
Also note that new tools may still target more -swf-versions . Thus, you can create SWF files compatible with old AIR and Flash Player. Just be careful to check the APIs you use in the documentation. Some newer APIs (such as BitmapData.drawWithQuality ) list the minimum player version requirements in the Runtime Versions section.
source share