Skip to content

Instantly share code, notes, and snippets.

@joshtynjala
Last active May 12, 2026 23:47
Show Gist options
  • Select an option

  • Save joshtynjala/22f4837b46dea4b71a187f362a428125 to your computer and use it in GitHub Desktop.

Select an option

Save joshtynjala/22f4837b46dea4b71a187f362a428125 to your computer and use it in GitHub Desktop.
swf-version chart for Flash Player, AIR, mxmlc, and Haxe

The following chart shows the relationships between Adobe AIR versions, Adobe Flash Player versions, and swf-version compiler option values.

AIR Version Flash Version mxmlc swf-version Haxe swf-version
51.0 N/A 51 40
50.0 N/A 50 39
33.1 N/A 44 33
32.0 32.0 43 32
31.0 31.0 42 31
30.0 30.0 41 30
29.0 29.0 40 29
28.0 28.0 39 28
27.0 27.0 38 27
26.0 26.0 37 26
25.0 25.0 36 25
24.0 24.0 35 24
23.0 23.0 34 23
22.0 22.0 33 22
21.0 21.0 32 21
20.0 20.0 31 20
19.0 19.0 30 19
18.0 18.0 29 18
17.0 17.0 28 17
16.0 16.0 27 16
15.0 15.0 26 15
14.0 14.0 25 14
13.0 13.0 24 13
4.0 12.0 23 12
3.9 11.9 22 11.9
3.8 11.8 21 11.8
3.7 11.7 20 11.7
3.6 11.6 19 11.6
3.5 11.5 18 11.5
3.4 11.4 17 11.4
3.3 11.3 16 11.3
3.2 11.2 15 11.2
3.1 11.1 14 11.1
3.0 11.0 13 11
2.7 10.3 12 10.3
2.6 10.2 11 10.2
1.5, 2.0 10.0, 10.1 10 10
N/A 9.0.115.0 9 9

Notes

The SWF version number stored in a binary .swf file is an integer. Before Flash Player 10.2, the major version of Flash Player always matched the integer SWF version. With Flash Player 10.2, Adobe wanted to make a breaking change to behavior that wouldn't work in Flash Player 10.0 or 10.1. However, they didn't want to increase the Flash Player version to 11.0 yet. So they increased the integer SWF version for Flash Player 10.2 from 10 to 11.

Later, duing the Flash Player 11 release cycle, Adobed continued increasing the integer SWF version each time that they increased the minor version of Flash player. All of the way up to Flash Player 11.9, which was integer SWF version 22.

Starting with Flash Player 12, Adobe started increasing the major version more often and did not release minor versions anymore. So the integer SWF version increased by 1 with each new major version again. The difference of 11 between the Flash Player and integer SWF versions continued through Flash Player 32.0, which used integer SWF version 43.

When Harman took over development of Adobe AIR, their AIR 33.1 release used integer SWF version 44. However, they later decided to increase the AIR version to 50.0. At the same time, they brought the integer SWF version back into sync with the AIR version, so the integer SWF version also became 50.

The mxmlc swf-version compiler option expects the integer SWF version values. To target a specific version of Flash Player or AIR with mxmlc or compc, use the chart above to find the integer value that you need.

The Haxe compiler swf-version compiler option does not accept the same values as mxmlc. It mostly expects a Flash Player version number (which could contain both a major and minor version), and Haxe will automatically map to the integer SWF version when generating the .swf file. However, the Haxe compiler does not account Harman's AIR 50.0 re-synchronizing to integer SWF version 50. To target AIR version 50.0 with Haxe, you should tell the Haxe compiler that you are targeting AIR 39, even though that version of AIR never actually existed. Similarly, to target AIR 51, the Haxe swf-version should be 40. The offset is 11.

Sources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment