Flash Player and AIR 19 are now available!

Where has the year gone?  We had an incredibly busy summer and now, with the days shortening here in California and the season about to end, Flash Player and AIR 19 have been released!

Our focus remains strong and our dedication to our customers is absolute.  We’re committed to the security of the internet and those that use our runtimes.  We’re also prioritizing the needs of our development community and providing the features and support you need to be successful.

I hope to see some of you at MAX this year.  If you’re planning on attending, please let me know if you’d like to sync up!

For more details on today’s release, please visit our Flash Player or AIR announcement pages, or just head on over to our release notes for the full details.  The feature highlights can be found below.

  • iOS Concurrency

Our popular desktop and Android feature, AIR Workers, is now making its debut on iOS! We have added support on iOS devices so that you will be able to execute code in the background without interrupting your application’s main code. Your UI will remain responsive, enhancing the user experience!

  • New insertAt() and removeAt() Vector and Array APIs

With Flash Player and AIR 19, we have introduced two new APIs for element insertion or removal in Vector and Arrays. They are implemented to perform better than existing splice method when used for single element.

  • Improved Stage3D Error Messages

We’ve added new Stage3D error codes to provide developers with additional debugging and error information.  We have also updated the AS3 documentation for various Stage3D APIs to provide more information about the reasons for the errors thrown.

  • Added ability to disable browser zoom factor scaling via HTML

In Flash Player 15, we added code to improve the resolution of Stage3D content when the browser’s zoom factor (BZF) was changed.  This was extended to the PPAPI and Windows XP/Vista/7 Active X control in Flash Player 18.  In Flash Player 19, we’re providing the developer the ability to enabled or disabled this functionality.

BZF is turned on by default but can now be turn on/off by setting a new attribute “browserzoom” to either “scale” or “noscale” in HTML EMBEDSWF and OBJECT tags.

  • iOS 9 Compatibility

We’ve run through a full certification pass and verified that AIR applications work on last week’s iOS9 release.  Look for new iOS 9 specific features in upcoming releases!

Feathers updates to 2.2.0

Congratulations to Josh Tynjala and the Feathers open source project for the release of Feathers 2.2.0 this week. Feathers offers a large collection of ActionScript UI components and layouts for mobile and desktop. It is powered by Starling framework and  Adobe AIR.


What’s new in this release?

In version 2.2.0, Feathers UI includes a new media player framework, new layouts, and new animated transitions to visually enhance your games and apps.

Media player framework

VideoPlayer component uses Texture.fromNetStream() to display video textures, which was added in Starling 1.7.

SoundPlayer is another component in the media player framework intended for playing audio files.


FlowLayout and WaterfallLayout add new layout options to Feathers containers.

Animated transitions

Two new animated transitions have been introduced to enhance screen navigators: Wipe and Iris.

Example: Here is a quick example of VideoPlayer component:

var player:VideoPlayer = new VideoPlayer();
player.layout = new VerticalLayout();
player.setSize( stage.stageWidth, stage.stageHeight );
this.addChild( player );

To play a video file, pass the URL to the videoSource property:

player.videoSource = "http://example.com/video.m4v";

We need to add an ImageLoader component as a child of the VideoPlayer to display the video texture:

var loader:ImageLoader = new ImageLoader();
var loaderLayoutData:VerticalLayoutData = new VerticalLayoutData();
loaderLayoutData.percentWidth = 100;
loaderLayoutData.percentHeight = 100;
loader.layoutData = loaderLayoutData;
player.addChild( loader );

When VideoPlayer dispatches Event.READY, we can pass the video texture to the ImageLoader:

function readyListener( event:Event ):void
    loader.source = player.texture;
player.addEventListener( Event.READY, readyListener );

A number of media player controls such as PlayPauseToggleButton and SeekSlider may be added as children too.

See How to use the Feathers VideoPlayer component for complete details.

Get started with Feathers UI 2.2.0

You can find the Feathers UI 2.2.0 release notes on the project’s Github page.

Developers are encouraged to download the latest stable version from the Feathers website.

Troubleshooting common Adobe AIR installation errors with iOS applications


By Piyush Bagri

In this post, we will explain the possible causes and solutions for some general errors that may occur when installing an AIR application on iOS devices using Flash Builder, Flash Professional, or command-line. This will help you to narrow down the installation error to a specific cause so that it can be resolved easily.

Installation error: “Application verification failed.”

The possible causes for this installation error along with the solutions to rectify it in each case are specified here.

Wildcard characters used in application id

If you are using any wildcard characters in the application id in your project, for example ‘calculator.debug.*‘, you will get ‘application verification failed‘ error.

Solution: The error will be resolved as soon as you remove the wildcard characters from the application id.

Feature listed in application.xml file is not added in the provisioning profile

If you are trying to compile your IPA with aps-environment key in entitlement.plist tags in application.xml file as shown in the example below and push notification service is not enabled in provisioning profile, then also you will get ‘application verification failed‘ error.

Example: Entitlements tag has been added in application.xml file but the push notification service is not enabled in provisioning profile.


Solution: Simply comment the above section of the code in application.xml or else add the feature in the provisioning profile. You will be able to rectify this error and compile your project. For more details, see Using push notifications in AIR iOS apps.

Wrong certificate used for packaging

You can also get ‘application verification failed‘ error if there is something wrong with the developer certificate that you are packaging your AIR application with. Another reason for the error could be that your device UUID is not listed in the provisioning profile.

Solution: You will be able to install your app on the device when you connect the right certificate with your provisioning profile. To know more about applying for an iPhone developer certificate and creating a provisioning profile, see Obtaining and working with iPhone developer files.

Installation error: “iTunes mobile device library not found. Please check your iTunes installation.”

This installation error is mainly related to the version of Adobe Flash Professional CC and/or AIR SDK that you are using to connect with Apple iTunes while installing the AIR application on your device. You may get this error in the following cases:

Using Flash Professional CC 2014 with iTunes 12.1.2

If you are using Adobe Flash CC 2014 and AIR SDK (any version) with iTunes 12.1.2, you may get this installation error when in your Flash Professional CC project you select:

File > Publish >Install application on the connected iOS device

Solution: This issue has been fixed in the latest Adobe Flash Professional CC 2015 version. With this fix, it can now be used with Adobe AIR SDK (any version) and Apple iTunes version 12.1.2 in Windows environment.

Using ADT version 16 or older with iTunes 12.1.2

If you are trying to install your application on the iOS device by command-line using ADT version (same as AIR SDK version) 16 or older, you can encounter this error. ADT is not able to detect iTunes 12.1.2 library in this case.

<AIRSDK Location>/bin/adt –installApp –platform ios –package <package name>

Solution: It is recommended to use Adobe AIR SDK version 16 or newer to resolve this error. iTunes 12.1.2 library is detected by Adobe AIR SDK 16 or newer versions.

Typically, you want to have the latest version of Adobe AIR. To get it, follow the instructions at Download and install Adobe AIR. However, you can get an older version of Adobe AIR here.

Do you still have problem with the installation of Adobe AIR application? Post your question in the Adobe AIR Installation Issues forum.

August Flash Runtime 18, Labs and Documentation Updates

The August update for Flash Runtime is now available!  This monthly update includes both security and functional improvements and is recommended for our Flash Player and AIR customers.

Complete details can be found in our Release Notes.

We’ve also recently released betas for Flash Player and AIR on labs.adobe.com.  With version 19 we’re introducing concurrency on iOS, new vector and array APIs, and more.

Check these features out and let us know what you think in our beta forums!

AIR 19 Beta

Flash Player 19 Beta

Finally, we’re continuing to improve our documentation by releasing new and improved technical articles.  We hope you find these articles useful.

Hello Triangle

Using Advanced Texture Features in Stage3D

Updates to the release and beta AS3 Documentation

In addition, if you’d like some specific topics to be discussed, let us know, and we”ll be happy to cover it.

Flash Runtime 18 and Documentation Updates

The July update for the Flash Runtime is now available!  This monthly update includes both security and functional improvements and is recommended for our Flash Player customers.

Complete details can be found in our Release Notes and the Adobe Security Bulletin.

In addition to the Runtime update, we’ve also been hard at work improving our ActionScript documentation.  If you have any interest in Stage3D related topics, I recommend taking a few minutes and reading over the following articles:

ATF File Format by Vivek Negi

What is AGAL by Marco Scabia

Improved Resolution of Stage3D Content on Browser Zoom by Channey Park

Flash Runtime 18 has been released!


We’re half way through 2015 and we’ve seen significant progress with the Flash Runtimes.  Since January, we’ve had 7 Flash Player and 5 AIR releases and over 25 different public beta updates!  In that time we’ve made hundreds of bug fixes and implemented important new features requested by the community, like VideoTexture and iOS 64-bit support.

It’s time for our next major update of the Flash Runtime.  We’ve hit version 18 and we’ve got some great new features in store for you!  We recommend that everyone take a few minutes to read our official release notes but please feel free to read past the break for a high level description of what’s included in Flash Player and AIR 18.

Continue reading…

Upcoming changes to Flash Player’s extended support release

Beginning August 11th, 2015, we will be upgrading Flash Player’s extended support release from version 13 to version 18.  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 18 releases (currently available on labs.adobe.com) over the next couple of months before deploying.

Best Practices for High Performing and Efficient Flash Video



Use StageVideo.  Always.

For best video playback performance and to minimize CPU and better battery consumption, using StageVideo for rendering video is strongly recommended.  StageVideo leverages the browser’s hardware accelerated rendering pipeline and GPU wherever available.

Starting with Flash Player 15, and when the swf is compiled for swf version greater than 26, the Flash Player will provide a software version of StageVideo as an automatic failover option when hardware StageVideo is not available.  As such the content does not need to implement a Video object failover.  The Flash Player will always try to use the hardware accelerated StageVideo first and only if the browser version and the GPU version does not support it, then it will automatically fail over to software version without any need to implement any fail overs in the App.

There should no longer be any reason to use the Video object, as StageVideo will always be available.

The StageVideoAvilability in this case will ALWAYS be “available”, the reason will always be “noError”.  If it is not able to support HW StageVideo for some reason and fails over to SW StageVideo, it will indicate that failover with a StageVideoAvailability event, and its property called “driver” will be set to “software”.

Use of wmode=direct is recommended.  For all the newer browsers as mentioned below, all the wmodes will support hardware accelerated StageVideo rendering.  But some older versions of the browsers that do not have hardware rendering support will fail over to software StageVideo if the wmode is not direct.  The only reason to not use wmode=direct will be if the app needs to render html overlays on top of video. Newer browsers will be able to support html overlays on any wModes, but older browsers that do not have hardware rendering support, will not be able to support html overlay for wmode=direct.

On Windows:

IE 11: IE has an accelerated pipeline and the FlashPlayer is HW accelerated in all wmode, so HW StageVideo should always be available.  Note that the decision to use the HW accelerate rendering pipeline reside in IE itself, there are probably cases where it will fallback to older software pipelines when the driver or OS is too old.  It is also possible for the user to disable the HW acceleration in the settings panel.

Firefox: There is currently no HW accelerated pipeline available in Firefox on windows and only wMode direct will have HW StageVideo available all other wMode should failover to SW StageVideo.

Chrome: Pepper has HW acceleration in all wMode, but some restrictions apply.  For example Chrome will refuse to use HW acceleration on Windows XP and it has its own driver blacklisting mechanism.  It is also possible for the user to disable the HW acceleration in the settings panel.  Chrome exposes a somewhat useful page to allow one to see the status of its gpu acceleration: chrome://gpu/

On Mac:

Safari: Apple’s browser uses CoreAnimation to render the HTML pages and all wMode should expose HW StageVideo.

Firefox: This browser also uses CoreAnimation to render the pages and all wModes should expose HW StageVideo.

Chrome: Pepper HW acceleration is available like it is on Windows and all wMode should expose HW StageVideo, with the same limitations as the windows version.

StageVideo should not be used before the availability event is fired.  Before this event, StageVideo is basically not initialized at all.  The timing of this event is somehow dependent on the browser and it should not be guessed.  You cannot base your code on a specific browser/os combination.  This will be true even with the software version of the API.

Just before the StageVideoAvailability event is fired, the StageVideo array is populated with a fixed amount of planes, usually 4.  At that time a stream can be attached to the plane for rendering.

The app should continue to listen for StageVideoAvailability event, if it wants to track HW or SW version of StaegVideo, as the event might be fired again when the status changes.

Once attached to a StageVideo entry, you can play the content and use its properties to move it around, zoom, pan…


StageVideo FAQs

  1. Is stageVideos.length>0 even if it’s software StageVideo?
    Yes, length is for stageVideo in general, either hardware or software.  Also, the length of the vector can sometimes be zero.  Rather than polling the length of the stageVideos vector manually, to implement stage video correctly, you should always listen to theStageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY event.  This will inform you about stage video ability.  SW StageVideo is enabled when the swf is compiled for swf version 26 and above, and is supported since Flash player 15.  If so the StageVideoAvilability will ALWAYS be “available”, the reason will always be “noError”.
  2. Is there an API to check if hardware acceleration is enabled (boolean value) or is the presence of stageVideos.length>0 enough?
    Stage video availability event has a property called driver that will be “software” when it is using Software StageVideo.stageVideo.length is not representative of HW or SW StageVideo and should not be used.  With SW StageVideo you can always expect this to be > 0.
  3. How does the value of HW Acceleration in right-click Settings panel impact StageVideo availability?
    It will disable HW acceleration and HW decode. Stage video software and software decode will be used.
  4. What is the best way to check for StageVideo availability before trying to load video content?
    The StageVideoAvailability event is called independent of video playback, so it can be checked at any time.  It is recommended to be checked before it’s used, so it should be checked before it is attached to NetStream.
  5. Is StageVideo available to all streaming formats ?
    Yes, StageVideo rendering is available for progressive, rtmp, appendBytes, or HLS formats.
  6. Where can I find more information on StageVideo?
    Getting started with StageVideo

Clean up NetStream after use

In order to conserve memory usage for video applications, its very important that any GPU or memory resources being consumed by the app are released and cleaned up.

NetStream object holds the buffered video data and handle to HW decoders so its very important that the object is cleaned up after its used.  This is specially important in the case of applications which create multiple NetStream objects and switch between them for displaying ads or to implement video playlists.

To clean up NetStream resources call Netstream.close() which will release all buffers and HW decoders and is ready for re-use if it needs to be recycled for another stream.  If the NetStream isn’t needed anymore, call NetSteam.dispose() instead.  In both the cases, detach the attached StageVideo object to it, by calling StageVideo.attachStream(null) which will also stop video playback and release the StageVideo object for another stream.

Special thanks to Abhinav Kapoor for putting together this article.

April Flash Runtime Updates

Both Flash Player 17 and AIR 17 were updated on April 14th during our planned April release.  This release focuses on security and functional improvements and does not include new functionality.  Flash Player customers that have opted into our automatic update process will receive this release within 24 hours.  AIR runtime customers will see a notification update dialog within 7 days (or the next time you run your AIR based application).  Full details for this release can be found in the our release notes and security bulletin.

Flash Player and AIR 17 Release Notes

Security Bulletin APSB15-06

Attention AIR iOS developers – If you would like to learn how you can use the Adobe Gaming SDK ANE’s in your universal iOS applications, please check out this recent article by our own Abhinav Dhandh!

Gaming SDK ANE’s – Universal 64-bit support

Abhinav provides the reader a high level overview of the included ANE’s and then step by step instructions on how you can modify and rebuild these ANE’s for your projects.

Finally, for those that read the Get AIR blog post by Philomena Dolla back in January, you might have noted that we were at 2.5 billion installations of AIR applications.  A monumental achievement to say the least!  It’s a little less than 3 months later and we’re now at 3.3 billion installations (and over 4 billion installs and updates!)  Congratulations to all of the amazing AIR developers and the enormous success your applications have had across the globe!

Flash Runtime 17 and more!

Flash Player and AIR 17 have arrived!  With this new release we’ve added some excellent features requested by our development community.  We recommend everyone check out the official release notes but I’ll cover some of the highlights below.  We’re also in the process of updating our public roadmap, for those interested in checking out an early preview read past the break!

Continue reading…