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. ;)