Adobe Flash Player 10.3 is live, and some Incubator refreshments! by Thibault Imbert

WasabiA few months ago, I was announcing the availability of Flash Player 10.2 and Flash Player 10.3 beta. Here we are with Flash Player 10.3 live on desktop and Android, introducing many features covered through this post.

I am also super happy to announce that we just released a new Incubator build introducing features we are currently working on (in bold the ones we introduce with this Incubator refresh) :

  • "Molehill" 3D APIs — A new set of low-level, GPU-accelerated 3D APIs that enable advanced 3D experiences across devices through the Adobe Flash Platform runtimes.
  • Cubic Bezier Curves — Using the cubicCurveTo drawing API, developers can easily create cubic Beziers without requiring custom ActionScript code.
  • Async bitmap decoding — http://www.bytearray.org/?p=2931
  • LZMA compression - http://blog.kaourantin.net/?p=124
  • G.711 audio compression for telephony — Save costs by using existing phone infrastructure to build telephony applications with industry standard audio compression for improved audio quality. The feature supports interoperability with legacy phone system (through Flash Media Gateway, FMG) and other third-party clients (through open RTMP protocol) without the need of transcoding.
  • H.264/AVC SW Encode for camera encoding — Build richer and more engaging applications with improved real time and non-real time (web-casting, and live casting) communications performance.  Industry standard support results in improved compatibility lowers cost of application deployment.
  • Native JSON Support (JavaScript Object Notation) — Save development cost and time by reusing existing JSON code for an Actionscript project. This feature enables Actionscript programmers to take advantage of fast parsing and generation of JSON-formatted text to represent their data through JSON.parse() and JSON.stringify() or describeTypeJSON.
  • Pause/sleep/resume Events — Improve application performance and reliability through a new ThrottleEvent.  This feature provides AS3 new event notifications by exposing an event to inform the content of the throttling, the content can send a message to the server so that server and client are kept in sync. For example, using Flex and LiveCycle with the Flash Player, a customer tries to use Flash Player to display reports. When the user switches to another tab and hides the Flex app, the Flash Player throttles the Flex app. The content is not informed of this change, so the server continues pushing data to the client Flex app. Eventually the application breaks under the load of data coming from the server while the app is throttled down.
  • Garbage Collector Advice — Provides a simple facility with which AS3 code can advise the GC on when to schedule the disruptive end-of-GC pause. Use System.pauseForGCIfCollectionImminent for this.
  • Socket Progress Events — A much awaited feature, provide a means by which content can determine how many bytes remain in the AS Socket's write buffer. Provide an event which will inform content whenever data is removed from the AS Socket's write buffer so that it may easily monitor the status of the write buffer without having to set up a timer and manually poll the size remaining in the AS Socket's write buffer.
  • Secure random number generator — Develop more secure client/server applications for the enterprise and end users. This feature will generate secure random numbers that are cryptographically as strong as the underlying operating system. Utilizing native OS APIs this feature will be used by Flash Player (eventually AIR) applications on the desktop and mobile platforms (Android) by Flash Platform Services.

As you can see, there is some really cool stuff coming up. We also fixed some stuff related to Molehill (bugs and little changes), we also fixed HW acceleration for Molehill in Chrome (it was disabled in the previous builds).

Remember to use -swf-version=13 compiler argument to unlock the Incubator features and -swf-version=12 for 10.3 features.

To author for 10.3 today, you will need also the 10.3 playerglobal.swc, available here.

To author for Incubator today, you will need also the Incubator playerglobal.swc, available here.

The documentation for latest Incubator builds (11.0.1.3) are located here.

Now, let's see the little improvements we brought, here is a list of little things you guys will appreciate too (in bold the ones we introduce with this Incubator refresh) :

  • DisplayObjectContainer.removeChildren — Removes all the children from a container.
  • MovieClip.isPlaying — Informs you if the MovieClip is currently playing.
  • Large Bitmap Support — No limitations in BitmapData sizes! Yes, really cool :)
  • Sound.loadCompressedDataFromByteArray and Sound.loadPCMFromByteArray — Allows you to inject compressed or PCM sound stream to the Sound object.
  • Added matrix goodies, with :
  • Matrix3D.copyFrom()
  • Matrix3D.copyRawDataFrom(), Matrix3D.copyRawDataTo()
  • Matrix3D.copyRowFrom(), Matrix3D.copyRowTo()
  • Matrix3D.copyColumnFrom(), Matrix3D.copyColumnTo()
  • Matrix3D.copyToMatrix3D()

Those little improvements are decided based on discussions we have with you guys on the Jira or just during conferences or even Twitter lately. We are actively working on a lot of other little improvements like those, stay tuned! I hope you guys will have fun with all this. I am back on my side on a new feature for super bad-ass profiling, more on this soon. ;)

Comments (62)

  1. James wrote::

    Really nice stuff…
    but
    No Incubator preview for mobile yet?

    Friday, May 13, 2011 at 12:11 am #
  2. Matt Shaw wrote::

    Awesome stuff. What’s up with “stringify”? Why not good ol’ encode/decode?

    Friday, May 13, 2011 at 12:12 am #
  3. Great job! Can we get a list what was fixed/updated in the Molehill API? Thanks!
    P.S. when can we begin to store files on people’s hard-disk? When some big games come out it’ll be annoying having to re-load the data every time the game is opened.

    Friday, May 13, 2011 at 12:20 am #
  4. It feels good to see that the flash player team is addressing urgent issues. Has not always been that way – so: Way to go!

    MovieClip.isPlaying is overdue since Flash Player 5. Thanks for that one!

    I recently recognized that the Firefox Flash integration becomes worse with every new Flash Version and every new Firefox. Just a suggestion: maybe some time talking to your friends at Mozilla might be a good idea.

    Small thing: “Random Number Generator” – Is it too much to ask to throw in a native Random generator based on a seed.

    Friday, May 13, 2011 at 12:25 am #
  5. Héctor wrote::

    Wow, this made my night. Will have to look deeper into these new Flash 10.3 features at the morning, it’s around 1am here, and still have some things to check before getting back to work at 7am heh.

    Keep up the great work, Thibault and the rest of the Flash Player development team, I didn’t expect this “minor” release to have so many things.

    Friday, May 13, 2011 at 12:43 am #
  6. focus wrote::

    Nice. Very nice.

    Friday, May 13, 2011 at 1:42 am #
  7. Thibault Imbert wrote::

    Hi James,

    Yes sorry not much date I can give for now, Incubator for mobile soon, but not for now.

    Hi Matt,

    Because this is the ECMAScript 5 specification, implemented in most browsers, so for consistency, we decided to respect the naming convention. Easier for developers to discover and adapt their code.

    Hi Jón,

    I will try to post this soon, we basically fixed bugs, enabled HW acceleration in Chrome, and became stricter in shaders. For caching, we are thinking about this ;)

    Thibault

    Friday, May 13, 2011 at 1:42 am #
  8. Matt Rix wrote::

    Matt Shaw, stringify and parse are standard for JSON. It’s the same thing in Javascript, for example: http://www.json.org/js.html

    Friday, May 13, 2011 at 1:47 am #
  9. Tekool wrote::

    A good load of a long-awaited improvements that will ease a lot developments! Thank you for that to the Flash Player team and you Thibault.

    Friday, May 13, 2011 at 5:27 am #
  10. Tannoy wrote::

    Great job. Thanks Thibault.

    Friday, May 13, 2011 at 7:17 am #
  11. RetroModular wrote::

    Great improvements!

    It would be good to know a bit more about the “secure random number generator”. Would this only be useful for client>server data transfers, or could it also used to help prevent in-memory data (like game scores etc) from being hacked?

    Anyway, great work guys :)

    Friday, May 13, 2011 at 8:13 am #
  12. Héctor wrote::

    Lol, I thought all these features were introduced in the Flash 10.3 release. So bad for me…

    Anyway, as I already said, great work. Little things like the new removeChildren method are really appreciated.

    Friday, May 13, 2011 at 8:38 am #
  13. fr wrote::

    “Cubic Bezier Curves” : YEEEEEES I can make flash do the illustrator :)
    And so happy for the MovieClip.isPlaying :)
    But there remains one question : why the wasabi ? (codename ?)

    Friday, May 13, 2011 at 9:31 am #
  14. drunkcat wrote::

    From Flash Player 10.3 Release Notes site: “Adobe Flash Professional CS5.5 (…) will not be updated for the new runtime.” – why? This is not a good idea, especially since the ActionScript 3 reference documentation site does not work at the moment :/

    Friday, May 13, 2011 at 9:32 am #
  15. joeydee wrote::

    JSON is great!
    Any langref for the new Incubator build available? I didn’t find any link on the adobe site.

    Last one was this:
    http://download.macromedia.com/pub/labs/flashplatformruntimes/incubator/flashplayer_inc_langref_022711.zip

    Friday, May 13, 2011 at 9:44 am #
  16. abiyasa wrote::

    Cool! Hope to see those features get released soon.

    and what’s next, Flash Wasabi? :-)

    Friday, May 13, 2011 at 9:59 am #
  17. VirtualMaestro wrote::

    Great news.
    Finally you added MovieClip.isPlaying
    Will be super if you will add method removeAllListeners to EventDispatcher class , it’s will be real cool stuff.

    Great work!

    Friday, May 13, 2011 at 10:01 am #
  18. RetroModular wrote::

    @VirtualMaestro

    removeAllListeners() is a bad idea.

    If a framework or component (e.g Flex) or anything else is listening for events on an object, and your code removes all of the event listeners from that object, then lots of things are going to break.

    If your code is managing object references etc correctly then there shouldn’t be any need for a native removeAllListeners() function.

    :)

    Friday, May 13, 2011 at 10:49 am #
  19. Fabio wrote::

    new API documentation ?

    Friday, May 13, 2011 at 11:22 am #
  20. telemaque wrote::

    I’ve searched in the langref for a JSON class, for Event pause/play… without success.

    Friday, May 13, 2011 at 11:30 am #
  21. szataniol wrote::

    Any chance for more information about secure random number generator?

    Friday, May 13, 2011 at 11:59 am #
  22. Vernon Morris wrote::

    Glad the max size of bitmapdata has been lifted–any chance something similar will happen for max dimensions for rendering filters on display objects? (For instance, we are working on a game that draws large display objects with filters to bitmapdatas..but the filter limitation has been an issue)

    Friday, May 13, 2011 at 12:16 pm #
  23. wonderwhy-er wrote::

    isPlay, ouh boy how long I was waiting for this :)
    Many great changes.

    Anyone noticed that 10.3 dropped IE6/IE7 and now requires IE8 as minimal requirement browser? I wonder what that means for Flash ubiquity.

    Friday, May 13, 2011 at 1:50 pm #
  24. Great news, Thibault! Especially interested in the H.264 encoding. Can you tell us what profiles are supported, and if/what encoding settings will be configurable?

    Friday, May 13, 2011 at 1:57 pm #
  25. Berzy wrote::

    @RetroModule

    I’m guessing that means cryptographically secure which makes the pattern harder to predict making them more secure.

    But not positive :S

    Friday, May 13, 2011 at 2:33 pm #
  26. i.o. wrote::

    Hi, Thibault
    Thats improvements is very nice!
    Also what about display list improvement you think (last comment) – http://bugs.adobe.com/jira/browse/FP-2011

    Friday, May 13, 2011 at 3:06 pm #
  27. VirtualMaestro wrote::

    @RetroModular
    I guess this is great idea, in reality it is not comfortably and many people have a trouble because of this (memory leaks etc.). You should think not about any frameworks but about as3, more people working with pure as3. There are many situation when remove every listeners manually very hard. Ofcourse we can wrap all necessary classes and implement own method to remove (e.g. http://elromdesign.com/blog/2010/07/16/easy-way-to-store-event-listeners-reference-prevent-memory-leaks/), but for what this headache ?
    And in any case this is (removeAllListeners) just instrument and everybody can use it as want.

    Friday, May 13, 2011 at 3:28 pm #
  28. Alex wrote::

    @Thibault
    The feature supports interoperability with legacy phone system (through Flash Media Gateway, FMG) and other third-party clients (through open RTMP protocol) without the need of transcoding.
    Do you mean RTP open protocol ?

    Friday, May 13, 2011 at 7:54 pm #
  29. mihnea wrote::

    Wow, nice update, congrats Incubator team.

    But can you give us a stand-alone player that supports Molehill? …. pretty please.

    Because I know you have one :)

    Friday, May 13, 2011 at 9:56 pm #
  30. Matt Shaw wrote::

    Thanks for the clarification on parse/stringify! I always used eval to parse JSON, which I guess is bad practice.

    Friday, May 13, 2011 at 10:22 pm #
  31. devu wrote::

    Good stuff. I was surprised to see Flash 10.3 update 2 days ago on my Android device. You doing great work up there. Now can’t wait for mobile version of incubator. Not for now, I know, but more or less? ;>

    Friday, May 13, 2011 at 11:27 pm #
  32. Héctor wrote::

    I see the post has been updated an the async bitmap decoding has been added. Nice to see this addition as well.

    I’d love to see a Flash Incubator release without the watermark tho. If it works without problems in one of my projects I’d be crazy enough to make it require Flash 11.

    Saturday, May 14, 2011 at 12:23 am #
  33. Sean Fujiwara wrote::

    Wow, H.264 encoding is ridiculously awesome. Can’t wait to use it, and thanks!

    Saturday, May 14, 2011 at 3:18 am #
  34. Helder wrote::

    We shouldn’t have to wait for things like native JSON parsers. But is better than never… =)

    When will be available the update for Flash CS5/5.5 so we can publish to 10.3? What will be necessary to 10.3?

    Saturday, May 14, 2011 at 1:56 pm #
  35. Helder wrote::

    @ Héctor I think is for that exact reason the water mark will not disappear until the final version! =P

    Saturday, May 14, 2011 at 2:06 pm #
  36. Héctor wrote::

    @Thibault:
    I’ve been thinking that now we are getting a removeChildren method, why not to add a lock/unlock or addChildren method as well? It would bring some benefits under some circumstances.

    Saturday, May 14, 2011 at 2:35 pm #
  37. sascha wrote::

    I’d love to see an AIR incubator build. Seems that we always have to wait for a new AIR runtime until beta or even release stage.

    Sunday, May 15, 2011 at 5:41 am #
  38. maliboo wrote::

    removeChildren should return Vector. instead of void. This provide consistency with removeChild():DisplayObject method.

    Monday, May 16, 2011 at 10:29 am #
  39. maliboo wrote::

    I mean Vector.>DisplayObject< :)

    Monday, May 16, 2011 at 10:30 am #
  40. Ali Tan Ucer wrote::

    Great updates!!

    quick question about H.264/AVC SW Encode for camera encoding. Can someone encode a video,(or even a playing displayobject) on the fly and send it to the server/ or make it downloadabe?

    Thanks.

    Monday, May 16, 2011 at 3:13 pm #
  41. Sean Fujiwara wrote::

    Here’s some sample code for H.264 encoding: https://magicalhobo.wordpress.com/2011/05/14/publishing-h-264-encoded-video-using-flash-player/

    I’m also wondering the same thing as Ali. The post says non-realtime, which I assume means encoding a video into memory. But, I don’t see any APIs to support that.

    Monday, May 16, 2011 at 9:44 pm #
  42. jlressia wrote::

    Incubator, not HW acceleration in Chrome and Firefox. But in IE8 runs very smooth.. :-(

    Google chrome 11 and Firefox 4. With Intel HD Integrated graphics card. Some body knows what’s happens?

    Tuesday, May 17, 2011 at 3:19 am #
  43. Héctor wrote::

    @Helder
    I know why the watermark is there :P . However, it would be nice if developers could be able to disable it, after all, it would be me who could lose some clients by requiring them to use Flash 11. Anyway, this is not a complain at all, it’s just I love the new features and I’m eager to use them.

    @maliboo
    I guess that it may be because removeChildren has been written with performance in mind, and marshaling back all removed elements would impact negatively. OTOH, it could be just an oversight, of course.

    Tuesday, May 17, 2011 at 9:54 am #
  44. Thibault Imbert wrote::

    hi fr,

    Yes, Wasabi was the code name ;)

    Thibault

    Tuesday, May 17, 2011 at 5:17 pm #
  45. Fabien A. wrote::

    Socket Progress Events -..

    @Thibault
    Does this impact PROGRESS_EVENT of urLoader.load() when uploading ?

    Tuesday, May 17, 2011 at 6:14 pm #
  46. Thibault Imbert wrote::

    Hi Fabien,

    Unfortunately not. We will keep investigating this, it is an addition we would like to see coming.

    Thibault

    Tuesday, May 17, 2011 at 6:19 pm #
  47. why wrote::

    hey,

    that’s an awesome update. Btw, before adding new features, could you please close tickets you were assigned for ?

    http://bugs.adobe.com/jira/browse/FP-1044

    Thx.

    Wednesday, May 18, 2011 at 11:35 am #
  48. Mehdadoo wrote::

    It’s a pity though,
    Flash Player can’t be installed on 100% of PC’s, because Adobe has banned people living in Iran to use it!

    Unity haven’t banned us, so on paper they have the chance to have 100% user base!

    Remember Flash Player doesn’t only belong to you, it belongs to the world. So release it, un-bane Iranians!

    Wednesday, May 18, 2011 at 12:55 pm #
  49. Jerry S wrote::

    I have searched extensively and this is the only place I have found a link to non-RC 10.3 playerglobal SWC. Is this the true production release of it? If so, bless you, sir!

    Saturday, May 21, 2011 at 11:44 pm #
  50. Thibault Imbert wrote::

    Hi Jerry S,

    Yes this is one is hard to find for now. Yes, it is the final production release SWC. We will post it too on the Flash Runtime Release blog.

    Thibault

    Sunday, May 22, 2011 at 12:03 am #
  51. Jason wrote::

    OGG audio support, please??! :)

    Monday, May 23, 2011 at 3:03 am #
  52. abc@abc.com wrote::

    This is great , you guys fixed awaiting throttling issue.

    but still need to test it how it will work for my reporting tool.

    Wednesday, May 25, 2011 at 6:27 pm #
  53. al wrote::

    What about DisplayObjectContainer.children returning a Vector. containing all children ?

    Saturday, May 28, 2011 at 2:19 pm #
  54. maliboo wrote::

    al & all: please vote for enhancement:
    http://bugs.adobe.com/jira/browse/FP-7078

    Thursday, June 2, 2011 at 11:18 am #
  55. earl wrote::

    How can I use describeTypeJSON? I am authoring for FP11 using the Incubator playerGlobal.swc and I have declared “-swf-version=13″ as an additional compiler arguent.

    When I compile I get the following error:

    [core (Flex)] Call to a possibly undefined method describeTypeJSON.

    Friday, June 24, 2011 at 2:53 pm #
  56. Antti H. wrote::

    Hi, any chance of having standalone debugger soon for incubator?

    I’d like to test the large bitmap support without web browser’s ugly memory limit ;)

    Saturday, June 25, 2011 at 3:51 pm #
  57. Pascal wrote::

    Is it possible to include into the new API some functionalities, such as degree elevation or flattening function…, for converting quadratic and cubic Bezier curves on the fly?

    Tuesday, June 28, 2011 at 7:13 pm #
  58. Steven Johnson wrote::

    Hi, as an engineer on the Flash Player team, I’d like to point out that describeTypeJSON is *not* an officially supported public API; it’s intended for internal use for the Player only, so we’d advise against using it.

    That said, we hear the demand for a JSON-based describeType; you can track the progress and/or comment on it here: https://bugzilla.mozilla.org/show_bug.cgi?id=643455

    Thursday, July 21, 2011 at 7:58 pm #
  59. Hardik wrote::

    Hello,

    I am quite new to Flash Environment, i am using flash CS4 for my flash projects. now how can i export swf for Flash player 10.3 i have downloaded flashplayer_inc_playerglobal_051211.swc
    but i dont know how to use it. will you pls guide me.

    Thanx.

    Tuesday, August 9, 2011 at 12:01 pm #
  60. Hardik wrote::

    please guide me how can i update my flash player 10 to 10.3 for flash cs4, so i can export swf for latest flash player.

    Tuesday, August 9, 2011 at 7:01 pm #
  61. Wim wrote::

    “Large Bitmap Support — No limitations in BitmapData sizes!” I’ve tested this with Flash Builder 4.5 and Flash Player 10.3 installed and this seems not to be the case!

    Saturday, August 13, 2011 at 9:38 pm #
  62. Damien Dessagne wrote::

    Hi there !

    Am I missing something or the MovieClip.isPlaying property only equals true when MovieClip.play() has been called ?

    I mean, when an instance of a MovieClip is put on stage through the Flash IDE, and so is “autoplaying”, isPlaying equals false … is this really intented to work like that ?

    Thanks !

    Damien.

    Sunday, February 12, 2012 at 1:00 am #

Trackbacks/Pingbacks (10)

  1. [...] More details: http://labs.adobe.com/technologies/flashplatformruntimes/incubator/ http://corlan.org/2011/05/13/flash-player-10-3-for-desktop-and-mobile-is-out/ http://www.bytearray.org/?p=3066 [...]

     
  2. Anwendungen internationalisieren - Flashforum on Thursday, May 19, 2011 at 8:56 am

    [...] [...]

     
  3. [...] Flash Player 11 also brings us Native JSON [...]

     
  4. [...] Adobe Flash Player 10.3 is live, and some Incubator refreshments! [...]

     
  5. Industry News: Week 20 2011 | All of Cyber on Tuesday, May 31, 2011 at 5:54 am

    [...] Adobe Flash Player 10.3 is live, and some Incubator refreshments! [...]

     
  6. [...] by Thibault Imbert [...]

     
  7. [...] changing if Adobe put even just this (Box2D) natively into Flash Player 11.1? Examples include the JSON just added (although… that’s in Corona today as well… hrm…). Those kind of [...]

     
  8. Getting Started with Vanilla - JonnyReeves.co.uk on Sunday, August 14, 2011 at 6:24 pm

    [...] lot of people are excited about the news that Native JSON support is coming with Flash Player 11; however, I’ve also seen a lot of people get a bit confused by what this actually means [...]

     
  9. Prototyping: ActionScript’s best kept secret | JanJorissen.be on Thursday, October 13, 2011 at 2:55 pm

    [...] classes, without extending them. Let’s take a look at another example. In Flash Player 10.3, the method “removeChildren” was introduced. If you want to use this functionality without worrying about the Flash player version, you can add [...]

     
  10. Getting Started with Vanilla | Jonny Reeves on Sunday, March 25, 2012 at 8:15 pm

    [...] lot of people are excited about the news that Native JSON support is coming with Flash Player 11; however, I’ve also seen a lot of people get a bit confused by what this actually means – if [...]