Introducing Flash Player 11.4/AIR 3.4 beta!

Flash Player 11.4/AIR 3.4I am super happy to announce that we just posted today Flash Player 11.4/AIR 3.4 beta builds, and you guys need to check what we have for you!

ActionScript Workers

We are bringing concurrency to ActionScript developers through ActionScript Workers (Flash Player and AIR desktop only for now).I posted some details about it 2 weeks ago. You can now test this yourself and enjoy the power of multithreading in Flash Player. We believe this will be a big thing for ActionScript developers. Stage3D was huge, but ActionScript Workers do talk to everyone, not only game developers but all ActionScript developers.

We bundled some very simple demos here (mirror) so that you can check the samples and get started. I will try to post more demos in the next days to provide some cool use cases where ActionScript Workers can be super useful. Find here the full source code for the runtime WAV to MP3 encoding demo I sneaked a month ago. It relies on an embedded worker (separate SWF) which is a different approach to leverage workers, more optimized memory wise cause it does not duplicate the primordial worker.

Looking forward to what you guys will be doing with them!
One last thing, to get full support for workers from Flash Builder (for debugging) you will need a preview of the next version of Flash Builder coming publicly in August.

Increased GPU reach (Stage3D constrained mode)

But we are not stopping there. We know that you guys care about reach, and when you are using Stage3D, you want to make sure the largest number of people can see your content HW accelerated. With this release, we first relaxed the drivers gating to 2006, but also focused specifically on getting Stage3D to work on very popular chipsets that we previously blacklisted (specifically the Intel GMA) which should give you a huge boost in terms of GPU reach. To benefit from that, just use the new Stage3D mode, called "constrained mode".

So what we have done is adding a new parameter to Context3D has been introduced called "profile". This parameter is supplied to the Stage3D.requestContext3D() function and you can give it one of two value Context3DProfile.BASELINE ("baseline") which will return the typical Context3D that has existed in previous releases, or Context3DProfile.BASELINE_CONSTRAINED ("baselineConstrained") which will return a new kind of Context3D capable of running with hardware acceleration on previously unsupported GPU's.

Constrained profile enables content authors to create Stage3D content targeting older systems using graphics cards such as Intel GMA 900/950 on Windows. The trade-off for targeting lower end hardware with Constrained profile is that the Stage3D capabilities will be limited in order to guarantee that content runs well with that hardware. Cards such as the GMA 900/950 only support pixel/vertex shader version 2.0 which forces the following limits on Stage3D when in Constrained profile:

  • Limited to 64 ALU and 32 texture instructions per shader.
  • Only 4 texture read indirections per shader.
  • Limited to a smaller amount of constants/varying/temps per shader.
  • No support for predicate register.
  • This affects sln/sge/seq/sne and needs to be replaced with compound mov/cmp instructions which are available with ps_2_0 (this will be done under the hood at the cost of using more instruction slots compared to ps_2_x).
  • The Context3D back buffer must always be within the bounds of the stage.
  • Only one instance of a Context3D running in Constrained profile is allowed within a Flash Player instance.
  • As with mobile the classic Flash Display List elements will not be updated while constrained Stage3D content is visible unless Context3D.present() is called.

'Profile' is the second optional parameter of the requestContext3D method. Developers can request profile "baselineConstained" to get a Context3D in constrained mode, as the api below shows:

function requestContext3D ( context3DRenderMode : String = "auto", profile : String = "baseline" ) : void;


stage.stage3Ds[0].addEventListener(Event.CONTEXT3D_CREATE, createdHandler);
stage.stage3Ds[0].requestContext3D(Context3DRenderMode.AUTO, Context3DProfile.BASELINE_CONSTRAINED);

So what about the frameworks that you may be using already?

Stage3D frameworks and constrained mode

Starling is already today constrained mode ready. Check the latest version on github, without any code changes, you will now run HW accelerated on more hardware. We have been working with Away3D, Flare3D, Minko and Alternativa3D which should be constrained mode ready very soon.

Compressed texture with alpha support

You can now leverage transparency for compressed textures when using ATF textures with Stage3D. You may say, great but how do I create ATF textures? The ATF tools will be posted in the next days on Adobe Labs, stay tuned!


You guys remember the post I did a little while ago entitled Flash Player 11.2/AIR 3.2 beta hidden gems? I mentioned at that time camera support for StageVideo, here it comes!


Same as above, those two APIs are going to make all the image processing fellas very happy. Directly grab the pixels from the camera stream, without having to draw it with BitmapData, way more optimized.

LZMA runtime compression/decompression on ByteArray

Leverage the power of runtime LZMA compression and decompression when using the ByteArray class. Claus, enjoy.

AIR iOS Push Notifications

No need to rely on native extensions to leverage push notifications. Adobe AIR now supports it natively.

AIR direct deployment (without iTunes)

Tired of using iTunes or the iPhone configuration utility? The adt tool now directly deploys the application to your iOS device without requiring any other dependency. Simpler, faster, better.

I hope you guys like those improvements. Expect some tooling updates to support those features like ActionScript workers debugging or AIR direct deployment. Some other features like iOS profiler or USB debugging introduced in AIR 3.3 will also be supported through the same tooling updates.

Have fun!

Comments (57)

  1. mbolt wrote:

    Hello – Congratulations on the beta release. I’ve been looking into the AS3 workers, and I had a few questions that weren’t covered in the release notes or ASDocs.

    1. It takes about 65ms to execute start() on a Worker (in the debug player). Is that expected? It seems like developers may want to offload work that takes 50ms, or even 30ms. Or is this the sort of solution where I need to create a Worker to create more Workers? :)

    2. What type of lock is the Mutex class? Synchronized Event based or more like a Spin Lock?

    3. Is this *the* implementation, or just the beginning? Moving towards shared application domain and more of a posix thread implementation would be sickly awesome.

    4. In your last post, I saw that you used a class: Workers – Was this a custom class, or something AS3 native?

    Again, great work – The Flash naysayers have been quiet tonight.

    Tuesday, July 17, 2012 at 4:11 am #
  2. Ali Raza wrote:

    When should we expect Flash Builder update with AIR 3.3+ features support.

    Tuesday, July 17, 2012 at 4:24 am #
  3. thien wrote:

    Really nice!

    It’s is better to let the .requestContext3D() method decide to fallback to Context3DProfile.BASELINE_CONSTRAINED, if Context3DProfile.BASELINE is not supported?
    Why we have to explicit request for it?

    Tuesday, July 17, 2012 at 5:00 am #
  4. thien wrote:

    Really nice!

    It’s is better to let the .requestContext3D() method decide to fallback to Context3DProfile.BASELINE_CONSTRAINED, if Context3DProfile.BASELINE is not supported?
    Why we have to explicit request for it?

    Tuesday, July 17, 2012 at 5:00 am #
  5. Bob wrote:

    Quite happy to see those new Camera methods! Should be quite useful.

    Any updates on some of the Firefox integration bugs?

    Tuesday, July 17, 2012 at 6:35 am #
  6. Great list of new features but what is it with these new camera APIs? Does anyone actually ever use a webcam with Flash? I’d need that API maybe 0.002 times in my development life. Just wondering because there are more important things like e.g. fixing the sound API.

    Tuesday, July 17, 2012 at 6:38 am #
  7. Mark wrote:

    Hexagonstar, almost every facebook project nowadays uses camera (upload/webcam picture, place in gallery, do stuff with it). i think it’s very useful!

    Tuesday, July 17, 2012 at 8:01 am #
  8. Michael wrote:

    Is the gamepad support not in this Beta?

    Tuesday, July 17, 2012 at 8:43 am #
  9. David Q Hogan wrote:

    Very excited about the new camera APIs, thank you!

    I just tested FP 11.4 with my app, and saw that the support for 16:9 camera capture is still broken on OS X, as it has been for the last few releases (used to work). Any chance that someone is working on that?

    Tuesday, July 17, 2012 at 10:57 am #
  10. VisitorG wrote:

    Thanks for your work.

    I am very glad for the iOS Direct deployment.
    Problem is I can’t get it to work.

    When I us:
    adt -installApp -plaform ios -device f084**********************4455d -package thePath\toMy.ipa

    I get the error: Invalid specified.

    But f084**********************4455d (without the stars, obviously) is the DeviceUUID I get from:
    adt -devices -platform ios

    What am I doing wrong?
    ( I am on windows 7 64, I use Flashdevelop and a rooted iPhone3GS with iOS5.1.1 )

    Tuesday, July 17, 2012 at 12:10 pm #
  11. Szymon Brych wrote:

    I was just wondering, are there any clear limitations regarding number of instructions available using context3D in ‘ordinary’ mode? Are there any plans on developing agal? I feel kinda trapped when I want to use functions like atan – you have to implement them on your own end the better approximation you get – the more expensive it is in terms of num of instructions. Or maybe loops will be introduced someday? It would be great if projects like glsl2agal were able to seamlessly convert higher order languages to agal…

    Tuesday, July 17, 2012 at 12:13 pm #
  12. ben w wrote:

    Nice one Thibault!

    @thien I dont think automatic fallback is a good idea because your code might not support it if it does.
    Best to request a context for baseline, and then only request baselineConstrained if it fails, that way you will know for sure what mode you are working in and not be caught out by being put in a mode without you knowing… that’s just my guess by the way.

    Looking forward to the tools for ATF :)

    Any speed improvements? we neeed moaaar SPEEEEEED!!

    Tuesday, July 17, 2012 at 1:41 pm #
  13. Subb wrote:

    Any news about Monocle?

    Tuesday, July 17, 2012 at 1:58 pm #
  14. VisitorG wrote:

    Replying to myself, the -device parameter can be omitted if you have only one plugged in.

    Credits goes to “wrench” from the FlashDevelop forum for being able to read more carefully than me.

    Tuesday, July 17, 2012 at 2:02 pm #
  15. Hugo wrote:

    What about a tool for export to the Mac App Store (improvements introduced in AIR 3.3) like we have now for iOS ?

    Tuesday, July 17, 2012 at 2:02 pm #
  16. mth4 wrote:


    do you have plans in the near future to do analogous thing to support newer shader models rather than older ones for compatibility?

    ATF tools will be greatly appreciated! :)

    Tuesday, July 17, 2012 at 3:25 pm #
  17. Sean wrote:

    Any eta as of when we can expect Workers to be available for AIR? and also, the new SDK for AIR?

    Great release, great Job Adobe.

    Tuesday, July 17, 2012 at 4:02 pm #
  18. Damian wrote:

    Will Workers for AIR be supported in Beta 2?

    Tuesday, July 17, 2012 at 5:29 pm #
  19. Poco wrote:

    This is great news Thibault.
    Makes me wonder, however. Why is the Flash player so restricted in comparison with AIR? We do need more improvements in Flash player! What about the ability to use FileStream in FP? We cannot read/write large files with FileReference. Silverlight and Java can both do this.

    Tuesday, July 17, 2012 at 6:21 pm #
  20. Thibault Imbert wrote:

    Hi Damian,

    Workers are supported in AIR already today in beta 1, but AIR desktop only. Sorry cause this was not clear in the release notes. I will fix that.


    Tuesday, July 17, 2012 at 6:29 pm #
  21. Damian wrote:

    Thanks for clarification, I compiled for mobile. :)

    Tuesday, July 17, 2012 at 7:28 pm #
  22. I’m looking forward not having to use a samba share + fruitstrap on my mac mini to commandline deploy from Windows/Flashdevelop anymore, however it keeps crashing:

    adt -devices -platform ios
    => Works fine

    adt -installApp -platform ios -package application.ipa
    => Crashes iIPA.exe

    I updated java, tried both with and without iTunes open and have only one device connected, but same result. I’ll try later with a different .ipa in case there is something it doesn’t like in that one, but iTunes has nothing against it, so it’s unlikely.

    Any ideas ? :/

    Wednesday, July 18, 2012 at 1:12 am #
  23. tomsamson wrote:

    Will Adobe gpu accelerate the display list before its too late or stick with the nonsense forever of no gpu acceleration for AS1/2/AS3 display list stuff?

    Wednesday, July 18, 2012 at 1:34 am #
  24. Mute Switch ios wrote:

    Hey documentation explains this v3.4 natively suports ios mute switch with 1 line of code! Awesome, that should be in your main post there :)

    Wednesday, July 18, 2012 at 2:41 am #
  25. Mr12Fingers wrote:

    Hey Thibauld,

    Nice release! Quick question. The release notes states that AIR 3.4 for iOS supports iOS 5.0 by default. Does that mean that we can access the the iPad Retina display capabilities on Windows?


    Wednesday, July 18, 2012 at 7:24 am #
  26. Thibault Imbert wrote:

    Hi Mr12Fingers,

    Yes, that is correct :)


    Wednesday, July 18, 2012 at 9:13 am #
  27. ben w wrote:

    hey tomsamson,

    I doubt that the standard display list will ever be GPU accelerated by default due to the very nature of how the display list works, its structure doesn’t tie in very nicely with how GPUs operate.

    I would far rather just a more optimised display list (if possible) and a much faster language/code base… hopefully these things will be with us soooooooooon – make it so Thibauld and many a thousand flash devs would love you long time!!!!!

    Wednesday, July 18, 2012 at 10:07 am #
  28. Arnaud Thion wrote:


    We are having a problem on our game on Firefox (12) since we upgrade to flash player 11.3.300.265.

    Some regions of the screen seem to be redrawn with a serious latency and we end up with chuncks of graphic elements still visible (but not reactive to mouse) for a while in the game even when they are supposed to have disappeared (like for an in-game popup).

    This problem is also quite visible when we drag-and-drop the map in the game.

    The problem is visible at:

    Wednesday, July 18, 2012 at 11:02 am #
  29. Timbo wrote:

    Maybe bit off-topic, but any clue why stage video is ‘unavailable’ within Flash Builder (ADT)? Want to try the new attachCamera function, but with no luck…

    In browser different stage video demo’s works fine..

    Wednesday, July 18, 2012 at 11:50 am #
  30. Rodislav wrote:

    what about camera-fixes for macos and linux (via chrome) ?

    Wednesday, July 18, 2012 at 4:46 pm #
  31. Dimon wrote:

    Hi Thibault,

    Where can I find the complete list of bugs
    fixed in AIR 3.4 ? It’s sure not in release notes.

    Thursday, July 19, 2012 at 4:30 am #
  32. Dmitriy wrote:

    Really great work from you guys! The platform keeps getting better thanks to your hard work.

    There’s still one thing that stops us from making browser-based multiplayer action games, though, it’s the lack of UDP support in browser plugin. Are there any plans at all to bring it in?

    Thursday, July 19, 2012 at 9:11 am #
  33. Hi Thibault, Thanks for your info.

    For the Worker, i just posted a tutorial (in french) a translation will happen to my new blog (coming soon).

    I have a question, the ATF texture is compressed in jpgXR ? and could I use it in 2D for the skin in a simple DisplayList? does the use of 3D stage can bring me a improvement over the use of classical DisplayList for my 2D application?

    Thursday, July 19, 2012 at 9:16 am #
  34. HB wrote:

    Nice to see APNs included in AIR, but when will we have proper iOS network info? yeah, there is an ANE for it, but the same can be said about APNs and the mute switch.

    Thursday, July 19, 2012 at 1:17 pm #
  35. dimitri wrote:

    Great updates. Is drawToBitmapData already available? I’m getting “Error #1069: Property drawToBitmapData not found on” with the SDK iOS Support) and Air 3.4 in an iOS Simulator Project ;-)

    Friday, July 20, 2012 at 8:00 am #
  36. nicolb wrote:

    Hi Thibault, thanks for your explanations!
    I tried to test workers today but I couldn’t make it: I always have the same message when testing in browser: Error #1014: Class flash.system::Worker could not be found
    I have no error when compiling, I put -swf-version=17, I tried with the two versions of FP 11.4 (debug and no debug)… And of course your examples work great! (I’m on Mac OSX, compiling with FDT)
    Do you have any idea about it?

    Sunday, July 22, 2012 at 8:58 pm #
  37. dimitri wrote:

    ah, i need to use -swf-version=17 ;-)

    Monday, July 23, 2012 at 11:19 am #
  38. Polaco wrote:

    Congratulations for this efford!

    Wednesday, July 25, 2012 at 5:25 am #
  39. Alexander wrote:

    Who’s that ‘tomsamson’ who post comment probably on every post, bitching about adding hardware axeleration to regular flash display objects? Kinda funny :) Maybe it’s competition?

    Wednesday, July 25, 2012 at 11:38 pm #
  40. GiG wrote:

    Nice new features!
    Is there a site/manual/resource constantly updated with all the features added to AS3 after its release? I am pretty sure I am missing a lot of interesting features, and my memory is not perfect ;)

    Thank you for the hard work!

    Thursday, July 26, 2012 at 10:17 am #
  41. Polaco wrote:

    Thibault: “It relies on an embedded worker (separate SWF) which is a different approach to leverage workers, more optimized memory wise cause it does not duplicate the primordial worker.”
    Well that’s another drawback of implemting the multithread the way you have done, also the amount of memory consumed just to create it, it seems that is not possible to sleep a worker either and I believe the weight of another swf with the worker will add unnecesary size to the app or loading extra data. I strongly believe workers should have been implemented in a more Java way.
    Regarding to ‘tomsamson’ post, yes he may be a troller but anyway would be great to see more performance improvements on standard display objects and in any other place the performance could be improved.

    Thursday, July 26, 2012 at 7:01 pm #
  42. Searinox wrote:

    It continues to steal focus from firefox. I cannot tell you how big a problem that is.

    Thursday, July 26, 2012 at 8:01 pm #
  43. RJ wrote:

    I think the Worker implementation is a good way to start tackling concurrency issues in Flash. However, there are still fundamental limitations especially when it comes to large enterprise applications running on Flash + Flex.

    Thibault, are there plans for having an option to allow the worker domain to be a child domain of the main application domain or possible improvement of the shared memory concept to allow sharing of class instances besides ByteArray?

    I believe these two improvements will help a lot when it comes to enterprise applications as well as other application which needs to load/serialize huge data sets from an external source. I hope the FP team considers them or any similar improvement to address our issues :)

    Friday, July 27, 2012 at 4:17 am #
  44. RJ Camarillo wrote:

    I think the Worker implementation is a good way to start tackling concurrency issues in Flash now. It’s not perfect or ideal but it IS a start. However, there are still fundamental limitations especially when it comes to large enterprise applications running on Flash + Flex.

    Thibault, are there plans for having an option to allow the worker domain to be a child domain of the main application domain or possible improvement of the shared memory concept to allow sharing of class instances besides ByteArray?

    I believe these two improvements will help a lot to Flash applications which needs to load/serialize huge data sets from an external source. I hope the FP team considers them or any similar improvements to address our issues :)

    Friday, July 27, 2012 at 4:22 am #
  45. X-rus wrote:


    When do you plan to release 11.4?

    Friday, August 3, 2012 at 6:58 am #
  46. hayesmaker wrote:

    Hi Thibault, hi all,
    Is anyone using Context3D in Air for android succesfully? I compile with AIR SDK 3.4 with rendermode=direct in the app xml but it still says Context3D is unavailable… :(

    All forum posts on the subject say this support is coming first half of 2012 (it IS 2nd half of 2012!)

    Wednesday, August 15, 2012 at 9:57 pm #
  47. Gaffkins wrote:

    Wy Workers.current.getSharedPropery retun me undefined?
    And addeventlistener(event.channel_message) Causes Europę #1009? Help

    Saturday, August 18, 2012 at 7:14 am #
  48. Gaffkins wrote:

    Why Worker.current.getSharedProperty retun me undefined and addeventlistener to my message channel causes error #1009?

    Saturday, August 18, 2012 at 7:17 am #
  49. xblaster wrote:

    adt -installApp CRASHES iIPA.exe.
    I reinstalled itunes, etc. but this didnt help!! Any solution????

    Wednesday, August 29, 2012 at 11:32 am #
  50. breign wrote:

    This is great awesome and superb!

    Sunday, September 2, 2012 at 2:21 pm #
  51. Hey, are you planing to implement the Local Notifications for mobile devices as well, not only the PUSHed option?

    Wednesday, September 5, 2012 at 5:54 pm #
  52. @cecile, @xblaster

    Wednesday, September 26, 2012 at 10:18 pm #
  53. Jake wrote:

    Re: Camera.copyToByteArray/Camera.copyToVector/Camera.drawToBitmapData

    Is there a way to quickly resize the bitmap data that’s written with these methods without doing a BitmapData.draw into another BitmapData object or something similar? I’m trying to pass a data from the camera straight into a Stage3D texture with as little overhead as possible, while making sure that its sized to a power of 2. It would be great to be able to pass a matrix into the Camera.drawToBitmapData call… Maybe there’s a more efficient way to do what I’m trying to do?

    Thursday, October 4, 2012 at 3:46 pm #
  54. maliboo wrote:

    Thibault, what about workers and Chrome. I’ve got latest Chrome with 11.4 and workers seems to be dead… (it’s fine on FireFox)

    Is it start of Flash Player HEAVY fragmentation? 11.4 is 11.4 – API should be consistent!

    Tuesday, October 9, 2012 at 9:00 pm #
  55. Mike wrote:

    Can actionscript workers contain alchemy libraries within them?

    Wednesday, October 10, 2012 at 5:12 pm #
  56. Hiroalex wrote:


    I am working on an AIR app with Stage3D (through Away3D4), but it seems that it’s impossible to make custom chrome because my Stage3D doesn’t show up anymore when I set systemChrome to ‘none’… even after setting transparent=false in the app descriptor…
    Any thought about a workaround? Thanks in advance and congrats for the good job you do :)


    Friday, October 12, 2012 at 9:36 pm #
  57. Oussama Gammoudi wrote:

    Mouse Lock is vital for fps games in “non” fullscreen mode, it is available on unity & shiva players, so I think it should be available on flash too

    Friday, October 19, 2012 at 7:58 am #

Trackbacks/Pingbacks (11)

  1. concurrency: Worker-klasse im FP 11.4 - Flashforum on Tuesday, July 17, 2012 at 9:56 am

    [...] [...]

  2. [...] on Share this:TwitterFacebookLike this:LikeBe the first to like [...]

  3. [...] be 4X as fast if it can take advantage of all the cores.  I am happy to report that as of today, Adobe has released a beta version of Flash Player with multithreading.  When they ship the final version and move out of Beta, we’ll have everything we need from [...]

  4. [...] I guess you might have saw the news on the release of Adobe Air 3.4 beta. It’s totally fantastic for those who are having heavy development on Air mobile development. If you don’t have any clue on Adobe Air 3.4 beta, Thibault Imbert published a very nice feature list of the beta release here [...]

  5. The Away Foundation | In Flagrante Delicto! on Tuesday, July 17, 2012 at 7:16 pm

    [...] of related note: the Flash Player 11.4 and AIR 3.4 public betas are now available on Adobe Labs! What’s new? ActionScript Workers, Stage3D constrained mode, ATF textures, [...]

  6. [...] I got the amazing news that flash player 11.4 beta has been released. And when I read Thibault Imberts blog I was very glad to see that Camera.copyToByteArray() and Camera.copyToVector() are finally out. [...]

  7. [...] you want to find out more about the new features of Flash Player 11.4/AIR 3.4 check this great article by Thibault [...]

  8. Бета версии FlashPlayer и AIR 3.4 | Flash Notes on Thursday, September 27, 2012 at 5:01 pm

    [...] новшествах (полную версию на англ. вы можете почитать здесь) Параллелизм Как вы знаете несколько месяцев тому [...]

  9. Hello world! | glyf design on Sunday, December 16, 2012 at 2:39 am

    [...] a viable platform, at least on mobile. Recent developments like the new Falcon compiler and AS workers are nice but Adobe is going to have to make more radical changes to the language and VM to be a [...]

  10. [...] a viable platform, at least on mobile. Recent developments like the new Falcon compiler and AS workers are nice but Adobe is going to have to make more radical changes to the language and VM to be a [...]

  11. AIR 3.4 : quelles nouveautés pour le mobile ? | on Wednesday, March 20, 2013 at 11:25 am

    [...] reporter à l’article de Thibaud Imbert, à la description de la version sur Adobe Labs ou encore à cette synthèse sur [...]