Posts in Category "Flash"

Feathers 3.0: A New Major Version

Congratulations to Josh Tynjala and the Feathers open source project for the release of Feathers 3.0. Feathers offers a large collection of ActionScript user interface components and layouts for mobile and desktop. It is powered by both Starling Framework and Adobe AIR.


What’s new in this release?

Many of the changes in Feathers 3.0 can be found under the hood, including bug fixes and architecture improvements. This version lays a foundation for new components and features in future versions.

Improved Performance When Idle

Feathers apps benefit greatly from the architecture changes in Starling Framework 2.0. CPU usage in static scenes has dropped to nearly zero with Starling’s new skipUnchangedFrames property. This means that apps built with Feathers should use less battery, which makes them better citizens on mobile devices.

Just take a look at this comparison made by Adobe Scout that shows an idle Feathers 2.3 app compared with the same app running on Feathers 3.0:



In Feathers 3.0, the developer experience gets better too. Let’s look at some of the skinning improvements.

The Scale9Image, Scale3Image, and TiledImage classes are no longer necessary in Feathers 3.0 because Starling 2.0 now supports these capabilities natively in the Image class using the scale9Grid and tileGrid properties.

Here’s an example of using the scale9Grid property with an Image:

var image:Image = new Image( texture );
image.scale9Grid = new Rectangle( 3, 2, 6, 3 );
image.width = 100;
addChild( image );

For components that have more than one state (such as a Button that can be up, down or disabled), Feathers includes a new ImageSkin class that accepts multiple textures.

ImageSkin works a lot like Starling’s Image class, but it adds a new setTextureForState() method that can be used to pass in additional textures. Take a look at this example of using ImageSkin to skin a Button component’s states:

var skin:ImageSkin = new ImageSkin( upTexture );
skin.setTextureForState( ButtonState.DOWN, downTexture );
skin.setTextureForState( ButtonState.DISABLED, disabledTexture );
skin.scale9Grid = new Rectangle( 3, 2, 6, 3 );
button.defaultSkin = skin;

Migrating from Feathers 2.x to 3.0

Feathers 3.0 includes many more improvements, and some of them may require changes to your existing Feathers apps. Please read through the Feathers 3.0 Migration Guide for complete details about upgrading to this new major version.


You may also want to review the Starling 2 Migration Guide because it provides specific hints about upgrading Starling.

Get started with Feathers 3.0.0

You can find the Feathers UI 3.0.0 release notes on the project’s Github page. Developers are encouraged to download the latest stable version from the Feathers website.

How to provide video rotation information to ActionScript as metadata


By Jason Lee

Prior to Flash Player and AIR version 20, the Flash runtime does not correctly process the matrix field values in the Track Header Box and the Movie Header Box, as defined in the ISO specification ISO/IEC 14496-12:2008. As a result, in some instances, the user experiences an incorrectly resized and rotated video when the video is played back with Flash. The problem is particularly pronounced when playing videos that are recorded in portrait mode with old Android or iOS devices. This happens because these devices save video in landscape mode along with a matrix representing rotation transformation, when the users record the video in portrait mode.

Flash Player and AIR version 20 introduce a feature whereby video rotation meta-data is provided through ActionScript. This feature mitigates the problem discussed above by providing the video matrix information to ActionScript as a part of the meta-data object of the onMetaData event, an event handler of the NetStream object. This allows the ActionScript developers to render the video in the intended rotation matrix. It should be noted that the Flash Player engine does not automatically apply the video matrix information to the rendered video output, so as to avoid any resizing or rotation that is not intended by the ActionScript developer.


The ActionScript code example below shows how to apply the rotation matrix to the Video object.

Note: The example assumes that the video is recorded along a matrix representing 90° clockwise rotation.

var video:Video = new Video();
 var nc:NetConnection = new NetConnection();
 var ns:NetStream = new NetStream(nc);
 ns.client = {};
 ns.client.onMetaData = ns_onMetaData;
 ns.client.onCuePoint = ns_onCuePoint;
function ns_onMetaData(info:Object):void {
 video.x = 0,
 video.y = 0;
 video.width = info.width;
 video.height = info.height;
 varmatrix:Matrix = video.transform.matrix; // Read old transform matrix of video object.
 varoldSize:Point = new Point(video.width, video.height);
 varnewSize:Point = new Point(Math.abs(info.matrix.transformPoint(oldSize).x), Math.abs(info.matrix.transformPoint(oldSize).y));
 matrix.translate(-(oldSize.x / 2), -(oldSize.y / 2));
 if (info.hasOwnProperty("trackHeaderBoxMatrix"))
 matrix.concat(info.trackHeaderBoxMatrix[0]); // Apply the matrix of the Track Header Box of Video Track provided by this feature to video object.
 // trackHeaderBoxMatrix is an array of MatrixObject because there can be one or more video tracks.
 if (info.hasOwnProperty("movieHeaderBoxMatrix"))
 matrix.concat(info.movieHeaderBoxMatrix); // Apply the matrix of the Movie Header Box provided by this feature to video object.
 matrix.translate((newSize.x / 2), (newSize.y / 2));
 video.transform.matrix = matrix; // Set new matrix to transform matrix of Video object.
 function ns_onCuePoint(item:Object):void {

The feature works for NetStream objects using progressive download, which allows Flash runtime to download and directly parse a video file. However, this feature does not handle NetStream using RTMP or appendBytes, in which case, the matrix properties provided by this feature are not available. This feature provides the matrices for all file formats — MP4, M4V, F4V, and 3GPP in accordance with ISO specification ISO/IEC 14496-12:2008, when using progressive download. For all other file formats, such as FLV, the matrix properties provided by this feature are not available.

The matrix information provided by this feature can only be applied to an instance of the Video class. Therefore, with StageVideo, which uses GPU acceleration, for example, the matrix information is not applicable.

This feature introduces the following new properties of the object representing video meta-data, a parameter of onMetaData event handler:

  • Object.movieHeaderBoxMatrix: flash.geom.Matrix
  • Object.trackHeaderBoxMatrix: An array of flash.geom.MatrixtrackHeaderBoxMatrix is an array of MatrixObject because there can be one or more video tracks in a single video file.

If you are a Flash content developer and are having trouble getting a video to display in correct orientation, please try this new ActionScript functionality for handling video rotation meta-data.

Flash Runtime v20 Release Announcement!

We’re pleased to announce the immediate availability of Flash Player and AIR version 20!  With this December release, we’ve added new features, important security updates and functional bug fixes for our customers.  Full details on this release can be found in our release notes and security bulletin.

Updates for Flash Player 20 have automatically started rolling out to those that have enabled “Allow Adobe to install updates (recommended)”.  If you’ve opted into this auto update mechanism there’s no work required on your end.   Over the next 24 hours we’ll be pushing this update out silently and automatically to computers connected to the internet.

Customers using Google Chrome or Windows 8.x/10 Internet Explorer or Microsoft Edge will receive the update through the Google and Microsoft update mechanisms.

Last week we made some exciting announcements around Flash Professional, now Adobe Animate CC, and a new partnership for the Flash Runtime.  The future is very bright for the Animate CC team and for the designers and developers that use this tool.  The changes and improvements they’ve made and have planned for 2016 are inspiring and we’re more than confident that they will continue to deliver the innovation that our customers need to succeed.

On the Flash Runtime side, we’re thrilled to announce our partnership with Facebook.  We know that our customers and developers rely on Flash content to work securely and reliably.  With this new partnership with Facebook, our ongoing collaboration with both Google and Microsoft, and our close work with Apple, Mozilla, Opera and others, we’re committed more than ever to making the Flash Runtime secure, reliable, and compatible for everyone.

As we close out 2015, Flash Player enjoys amazing ubiquity with full support from every major browser and operating system in use today.  Flash Player is built into every version of Google Chrome and ChromeOS.  Flash Player comes as part of both the Windows 8 and Windows 10 operating systems and works seamlessly with both Internet Explorer and Microsoft Edge.  Flash Player has full support from Mozilla Firefox, Apple Safari, and Opera.  This unprecedented level of support allows our developers to be successful and our customers to enjoy the content they want to use, view, and play.  We look forward to great things to come in 2016 and we wish everyone a happy new year!


Read past the break for the highlights of this release!

Continue reading…

Flash Runtime 16 Update – New PPAPI Installers and AIR news!

Flash Player 16 was released today with important bug and security fixes.  In this release, we added stand alone installation and plugin support for the PPAPI (“Pepper”) version of Flash Player!  This version was previously only available as an integrated component of Google Chrome.  With the upcoming changes to Chromium, making the PPAPI version of Flash Player available was critical for our customers and a top priority for our team.  With Flash Player 16, customers can now download Flash Player PPAPI for Chromium based applications and developers have access to the official PPAPI content debugger.  Please note, no changes or additional downloads are required for Google Chrome users.

For additional Flash Player release details, please see our forum announcement.

AIR developers, we haven’t forgotten about you!  It’s been all hands on deck getting support into AIR for iOS 64 bit.  Our plan is to shortly (possibly later this week) release an updated AIR 16 beta with iOS 64-bit compatibility along with an early peek at the videoTexture API for iOS.  We’re counting on getting great feedback from you and quickly making improvements.  We’ll continue updating our beta releases on to make sure you have the latest code available.  We know its going to be tough for everyone as we approach this holiday season, but we’re committed to making sure we have a solution in place before Apple changes their store requirements.

Flash Runtime 15 now available for download!

It’s time for our next quarterly, feature bearing, update of the Flash Runtime!  We’re at version 15 for both Flash Player and AIR and we’ve got some great new features and important bug fixes in store for you.  We recommend everyone checks out the official release notes but feel free to read past the break for the high level description of our new features.  We’ve also added some detailed guides to some of these new features in the blog posts further below.

Flash Runtime Version 15 Release Notes

Flash Player Download

AIR Runtime Download

AIR SDK Download

Continue reading…

Flash Runtime 14 is now available!


Today we’re releasing Flash Player 14 and the AIR 14 Runtime and SDK.  This a major quarterly releases that includes new functionality, bug fixes, and security updates.  We recommend taking a look at our release notes or visiting the Flash Player announcement or AIR announcement page for download links and additional details.


Continue reading…

ActionScript rises to #14 on the Tiobe Index


ActionScript History on the Tiobe Index


Thank you to Jonathan Hart (@jonathanhartsf) and others for the heads up on the recent resurgence of ActionScript on the Tiobe Index.  Last month ActionScript broke into the top 20.  The June numbers are now out and it’s moved up to the 14th spot!  None of this would be possible without the awesome support of our AS developer community, creating and inspiring us with their applications and games for both mobile and desktop platforms!  Thank you!


Latest Updates on the Flash Runtime

There’s been talk recently on different forums regarding Adobe’s position on the Flash Runtime.  Hopefully some of the work we’re doing and items outlined below will help answer these questions.

First, let me introduce myself.  My name is Chris Campbell and I’m the product manager and customer advocate for the Flash Runtime product team.  I’ve been part of the Flash and AIR teams for the last 4 years and prior to that I worked for 14 years as a developer in our digital imaging group.  Some of you might know me from the forums, where I’ve spent a lot of time working with customers to bring issues to the engineering team.  I’m on Twitter @liquidate but you can also reach me via email at

What have we been up to lately?

Improved Packaging Engine – We’ve made massive improvements to our iOS packaging engine (Halfmoon AOT), with reduced packaging times up to 10x.  This work lays the foundation for future features like iOS workers.  This has been in our beta builds for a while (we try to make these publicly available on a regular basis) and was out in our public AIR 4.0 release.

ActionScript concurrency for Android – We knew this would be a hit with the feedback we received with ActionScript Workers on the desktop so getting this over to mobile was a priority for us.  We had an extended beta for this feature and it made its public appearance in AIR 3.9 with additional fixes based on feedback received in our 4.0 release.

Support for new versions of OSX, Windows, iOS and Android – We know that our developers and users want to use the latest OS’s and browsers.  We have made sure that the Runtime supports these targets and we’re committed to making sure that continues in the future.

Here are just a few of the new features that we’re working on this year –

ActionScript concurrency for iOS – Now that we’re finishing up with the Halfmoon packaging work, the next step is to add support for ActionScript Workers on iOS.  We know this is an important feature and we’re looking forward to starting an extended beta for this later this year.

Improvements to Stage3D – Stage3D was a massive game changer for Flash.  We want to add to this with significant efficiency improvements by supporting multiple render targets.  If you’ve been around for a while, you might remember a previous beta for AGAL2.  We’re picking this up again now that we’ve got support for all supported platforms and we should have something to share later this summer.

PPAPI debugging – A long time request has been the ability to debug Flash content on Google Chrome.  We’ve been working to bring our debugger to the PPAPI platform and we’re almost ready for a beta release.  This required a lot of work under the hood and while we’re there we’re also tackling a nagging Stage3D performance problem.  Progress has been going well and we’re optimistic that we’ll have a solution for our customers.

Game discovery – We know that there are a huge number of games available on the market and it’s hard to get the user’s attention.  We believe we can help.  One of our greatest strengths is the reach of our platform.  Flash Player is installed on over a billion computers!  The AIR shared runtime is installed on 50+ million Android devices!  We’re working to figure out how we can leverage these strengths to improve your app’s success.  Look for details on Adobe GameSpace, Playpanel, GamePreviews, and more in the very near future.

It’s certainly true that we have increased our investments on HTML technologies, but Adobe and the Flash product team are dedicated to pushing the Flash runtime platform forward.  We believe that AIR and Flash Player are excellent solutions for both the video and gaming markets.

While most of Adobe’s marketing and PR activities are focused on the Creative Cloud and Marketing Cloud initiatives, we are working on the following items to help improve our messaging around the Flash Runtime.

  • Redesign, refresh and make regular content updates to our game development web site.  We’ll be retiring the microsite and instead updates will be made to our Adobe Developer Connection page found here –
  • Create a new Flash Runtime showcase website that allows for easy showcase project submissions by our development community.
  • Reach out to the community and promote their games and usage of Adobe tools through guest blog posts and case studies that we feature on   If you’re interested, please contact me via email.
  • Find additional and creative ways to allow our passionate development community to evangelize the use of Flash Runtime

Finally, in a recent Adobe post there was some confusion regarding PhoneGap and if this product was supplanting or replacing AIR.  This is not the case.  We believe both of these technologies have merit and we recommend developers pick a solution that best suits their project.  For gaming and video related applications, on either the desktop or mobile platforms, we believe the Flash Runtime continues to be a great choice.

Upcoming changes to Flash Player’s extended support release

Beginning May 13th, 2014, we will be upgrading Flash Player’s extended support release from version 11.7 to version 13.  This change impacts enterprise and IT customers that currently deploy Flash Player using the extended support releases available through our distribution channel.

Adobe makes available the extended support release to organizations that prefer Flash Player stability over new functionality.  We will create a branch of the Flash Player code that we keep up to date with all of the latest security updates, but none of the new features or bug fixes available in our normal release branch.  This allows organizations to certify and stay secure with Flash Player with minimal effort.

To ensure a smooth transition, we encourage IT organizations to thoroughly test our version 13 releases (currently available on over the next couple of months before deploying.

Adobe Flash Player 11.7 and AIR 3.7 Now Available!

Over the past 3 months we have been hard at work on the next version (Code name: Geary) of Flash Player and AIR. Our main focus in this release of Flash Player was to improve the sandboxing feature that was introduced in earlier versions.

In addition to improving Flash Player security through sandboxing enhancements, we’ve also fixed high priority bugs and issues that were reported by our community and partners.

Similarly we have been focusing on making AIR 3.7 a world-class platform to build your apps for Android and iOS platforms. In this release, we are introducing exciting features such as capability to host swf files on an external server which can then be download by your iOS applications at runtime, and support for gamepads on Android devices (like Ouya TV). Amongst a couple of other features, this release also addresses the need of preventing backup of shared objects, if required by your iOS application to comply with Apple guidelines.

Also the Flash Pro team has recently provided a glimpse of their next generation tool. Check out this quick tour:

We encourage you to continue provide your feedback and comments and stay tuned for more exciting features.

Tareq Aljaber
Product Marketing Manager – Web Segment