Posts tagged "Adobe AIR"

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.

Issues while downgrading from AIR 20 to a lower version on Mac OS X


By Eric Simenel

This tech note addresses the problems that you may face when attempting to downgrade from AIR version 20 to an older AIR version. Prior to AIR version 20, AIR was provided as a 32-bit Runtime dynamic Library for Mac OS X. However, with the release of AIR 20, only a 64-bit Runtime dynamic Library is provided on Mac OS X. See AIR 20 release notes for details.

Certain users who are running apps that require 32-bit ANEs may want to downgrade to a lower AIR version that supports a 32-bit Runtime dynamic Library. Prior to AIR 20, downgrading AIR to a previous version (let’s say AIR 19) is a simple process:

  1. Download AIR 19 runtime. For downloading any other versions, see Archived Adobe AIR SDK versions.
  2. Uninstall AIR 20 runtime. See Removing Adobe AIR for details.
  3. Install AIR 19 runtime. See Installing Adobe AIR for details.
  4. Run AIR Settings manager utility to disable further updates of the runtime.

However, these steps will not suffice when you are downgrading from AIR 20 to a previous AIR version as there are some additional steps required in this case. To meet this requirement, the additional steps or the solutions are explained below.

Downgrading from AIR 20

Starting with AIR 20, which is a now 64-bit Runtime (instead of the previous 32 bit AIR runtime), the process for downgrading is the same as mentioned above. But there are certain points, which require attention when attempting to downgrade.

After you install AIR 20, any previously installed AIR app using the Shared Runtime that is launched gets updated. So the app’s launcher code will now be a 64-bit binary. The previously used 32-bit launcher gets renamed with a ‘_32’ suffix.

Note: AIR Captive Runtime Apps are unaffected by this upgrade to AIR 20. See AIR 64-bit on Mac OS X for more details.


If you go back to a previous AIR version, for example, AIR 19, then after uninstalling AIR 20 and installing AIR 19, an attempt to launch the updated AIR app fails because the new 64-bit launcher is unable to find the 64-bit AIR Runtime.

This problem occurs only when attempting to downgrade to an older version.


You can use either of the three solutions to resolve this issue:

Solution 1: Move the application to the Trash, empty the Trash, and reinstall it from its .air package or custom installer as you did when you installed it the first time.

Solution 2: Rename the launchers at <AIR application>/Contents/MacOS/.

  1. For the launcher with no suffix, add a ‘_64’ suffix.
  2. For the launcher with the ‘_32’ suffix, remove this suffix.

Note: Here launcher refers to the name of your <AIR application>.

Solution 3: Edit the contents of the info.plist file so that its CFBundleExecutable key has the ‘_32’ suffix. The info.plist file is present at <AIR application>/Contents/.

Downgrading after an initial AIR 20 installation from a SideCar

There is another issue that a few users may face — specifically, those who install an AIR application with a SideCar AIR 20 installation; having never before installed an AIR shared runtime and then downgrading from AIR 20.

Note: An AIR SideCar Installation is one where an .air package is distributed alongside the AIR installer so that both AIR and this application are installed at the same time.

After an Initial AIR 20 installation from a SideCar, launching the .air package results in Mac OS X “blessing” the Adobe AIR Installer that sits next to it. Hence forward, Mac OS X remembers this application as the default launcher for an .air package. If you do not delete this directory after installing, then anytime you launch an .air package, this Adobe AIR Installer is launched. Checking that the AIR Runtime is now present, it goes on with the standard AIR App installation that is done by the AIR Runtime.


Now when you uninstall AIR 20, install AIR 19, and then try to launch an .air package, this attempt fails because the Adobe AIR Installer that is a 64-bit binary is unable to load the AIR Runtime that is now a 32-bit binary again. That Adobe AIR Installer (version 20) keeps its precedence over the Adobe AIR Application Installer (version 19) that is present at /Applications/Utilities because the Adobe AIR Application Installer has not been launched yet and is “invisible” to Mac OS X.


The solution to this issue is to simply delete the directory that contains the SideCar .air package and Adobe AIR Installer so that this 64-bit binary longer exists. Thus, it will not be launched by Mac OS X when .air launches. Instead, the 32-bit Adobe AIR Application Installer will be launched.


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 = "";

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.

Using ADT version or older with iTunes 12.3

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

Solution: With AIR SDK build this issue has been resolved.

Installation error: “PackageInspectionFailed”

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.

Solution: With Flash Builder 4.7, cleaning your project solves this error.

To clean you project, choose Project> Clean > Clean All Projects. See Build projects in Adobe Flash Builder 4.7 documentation for more details.


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.

Happy Holidays from Adobe Gaming

It’s been a whirlwind year, and for our holiday post for 2012, we wanted to highlight a few cleverly designed kids games that were made using Adobe Gaming technology. These gems will definitely keep the little ones glued to their devices to give you time to shovel the driveway, catch up with in-laws, wrap presents or get the turkey ready during this busy holiday season :). Enjoy and we’ll see you next year!

Spell Cubes – This is a gorgeous app created by a Dad for his two-year-old son to bring spelling to life. It is available for the iPad here and is powered by Adobe AIR, Starling and Feathers.

Magical Music Box – From the makers of “Winter On Whale Island,” the team at Pamakids just launched their new kids game, “Magical Music Box” on the iOS App Store. This beautifully designed songbook integrates fun interactions that are powered by Stage3D, Adobe Native Extensions (ANEs) and their own 2D GPU framework.

Frog Fractions – This free-to-play math game inserts some fun into math with its nostalgic 90’s look and playability. By all accounts, this game is not just for kids and will actually drop anyone into a world of weird after level 1.

Land of Me – Three new apps were recently released from Land of Me. Songs and Rhymes, Making Things and Story Time let kids and their parents play around and develop skills like creating songs, developing storylines and building new worlds.

Christmas Crusaders – In this holiday retro game from Nickelodeon, the Elves have rebelled against Santa and are trying to ruin the Christmas by destroying all the children’s presents.

And for more of a big kid challenge, we want to congratulate Botanicula on being chosen as one of the top 10 games by the LA Times!

For more great games, check out

Adobe Delivers New Game Developer Tools in Creative Cloud

We are thrilled to announce the release of our first Game Developer Tools in the Adobe Creative Cloud, giving developers and publishers access to a powerful set of resources in one central location. Adobe’s Game Developer Tools are designed to streamline the game development process from creation to deployment, and help game publishers and developers reach the broadest possible audience worldwide – over 1.3 billion connected Windows and Mac PCs and over 500 million smartphones and tablets – 20 times the reach of the bestselling Xbox 360 gaming console.

The gaming community is already buzzing about Adobe Scout, an advanced next-generation profiling tool that uncovers granular internal information in ActionScript-based mobile and browser content to unlock significant performance optimization opportunities. We’ve received rave reviews from developers who have been using pre-release versions of Scout to gain powerful insights and who are already enhancing their development processes with our Game Developer Tools.

As a special promotion, we’re including this first release of Scout in a free membership to Creative Cloud, along with the rest of our Game Developer Tools, including the Adobe Gaming SDK, Adobe Flash C++ Compiler, and trial versions of Flash Professional CS6 and Flash Builder 4.7 Premium:

–          The Adobe Gaming SDK provides the essential building blocks developers need to create and monetize amazing ActionScript games across browsers and mobile devices, including open source 2D and 3D frameworks (Starling, Feathers, and Away3D), and is a simple starting point for both new and experienced game developers.

–          The Adobe Flash C++ Compiler is a new tool chain that allows game developers to take native games and game engines for PCs, Xbox 360, PlayStation 3, and iOS and compile them to run directly on the web across browsers on over 1.3 billion connected PCs using Adobe Flash Player.

–          Adobe Flash Professional CS6 is an authoring tool to create engaging animation and games, including support for delivering animated assets ready for use with Starling and many other popular frameworks, and Adobe Flash Builder 4.7 Premium is an advanced ActionScript development environment that can be used to develop high-performance mobile and browser-based games. Flash Builder 4.7 Premium also improves productivity and time to market with support for the new ASC 2.0 compiler and the ability to test and debug apps directly on Apple iOS devices through USB or on the iOS simulator.

Creative Cloud paid membership includes full versions of Flash Professional and Flash Builder and will also include future versions of Scout following the introductory promotion. Of course, paid members also get access to all of the Creative Suite 6 apps, including other popular tools for game design, such as Photoshop and Illustrator.

The Adobe Flash Player has been at the forefront of online gaming for years and is used to power the 10 most popular games on Facebook including SongPop, FarmVille2, and Diamond Dash. Adobe’s latest Gaming technologies are the leading choice for social game studios like Zynga, Wooga and KIXEYE and are used by AAA game developers like Ubisoft as well as indie developers like Northway and Damp Gnat to help minimize the cost of targeting multiple platforms and mobile devices – including games for iPhones and iPads. Today’s release of Game Developer Tools makes it much easier for developers to maximize productivity, game quality and reach across PCs and mobile devices.

We’ll be celebrating this launch at our San Francisco office this evening with many local developers and publishers. Please feel free to stop by, or keep an eye out for a recap video in the next few days on Adobe’s Gaming YouTube channel. And, to find out more about the new Game Developer Tools and the Adobe Creative Cloud, visit

Gaming Spotlight: FreshPlanet’s SongPop

How fast can you name a song clip? That is the question that SongPop, a game by FreshPlanet, puts out there for music fans looking for a challenge. This wildly popular music trivia game makes the most of social gaming, offering over 5 million daily Facebook and mobile app users the chance to compete to see who can name that song faster.

SongPop delivers a unified experience across desktop browsers on Facebook and extends that experience to mobile apps for iOS and Android. In using Adobe Gaming technologies, FreshPlanet was able to leverage a single code base, instead of having to build native apps for each mobile platform, and was able to easily streamline the workflow between designers, developers and animators.

FreshPlanet CTO and VP of Products Olivier Michon noted that Adobe Gaming technologies, “enabled us to code at top speed in Adobe ActionScript [and] rapidly integrate design assets and animations,” making development so easy that it only took two developers and one designer less than three months to complete SongPop for iOS and Android, and only one more month to launch it on Facebook.

For more on FreshPlanet and SongPop, check out their full story in, “Adobe Gaming & Fresh Planet: SongPop.” You can also get your hands on open sourced Native AIR extensions from FreshPlanet on their GitHub profile:

Developer Spotlight: A Follow Up with Jordan Casey of Casey Games

We had the chance to reconnect with young developer Jordan Casey, who recently released a new gaming app – Greenboy Touch. In our Developer Spotlight back in July, Jordan mentioned that he was going to slow down, but that obviously wasn’t the case! Read up on our latest interview with Jordan to find out more about his inspiration and the making of his latest Android and iOS game submitted to our Flash Rocks gallery.

What was your inspiration behind your new app, Greenboy Touch?

Greenboy Touch was based off a Flash game I developed about 2 years ago. I’m always trying new genres and I love different game concepts. While most of my games are just one specific style of gameplay, Greenboy Touch is made up of tons of different concepts. It is sort of a puzzle game.

We’d love to share more about the making of the app with our readers. What Creative Suite products did you use and did you have any favorite features?

I used Photoshop and Illustrator for graphics – they’re great tools! To develop the game I used Adobe AIR for iOS and for Android. I programmed in ActionScript 3.0, Flash and AIR, which are amazing. With the click of a button, I could switch a Flash game to a desktop app for Mac or PC back to an Android app to an iOS App. The program is great because it’s really visual and really powerful. ActionScript is an amazing language, and though so powerful, quite easy to pick up.

What was your experience like using Flash to create for Android and iOS? Are there any tips you would share with other developers?

The process was great. Like I said, with the click of a button I could go from iOS to Android. It’s just great. It’s the same as making a Flash game – the exact same, and with just a click, you get a native app! Just like that! It’s magic!

You’re juggling school and development. We want to know – what’s your secret? How are you doing it all?

Well, it is tough juggling between school, development, and lots of speaking events. To make up for time I missed while I’m away speaking, I take a 2-hour study course after school to catch up or study for exams. That way, I have my homework done and I can develop for about an hour or so.

Check out Greenboy Touch in action below.

I Didn’t Know Flash Could Do That!

A common refrain at the Adobe booth at GDC Online has been, “wait, that game is running in Flash? I didn’t know Flash could do that!” With games ranging from previews of high-end games running in the browser – like Herokon or Kings Road on Facebook – to great indie games already available in the AppStore like Wonderputt and Super Hexagon for the iPad, we had lots of amazing games to show off, and some great conversations. Developers stopped by to talk, try games out, and exclaim at the possibilities now available to them to get great 2D and 3D games to market.

While the draw was all the great games at the Adobe booth, it also gave the Adobe team a chance to show and tell developers how to deliver their C/C++ and Unity games in the Flash Player, and highlight how the soon to be released Adobe Flash Runtime C++ Compiler (flasCC) can help game developers cross compile their games to reach a global audience of over 1.3 billion desktops and over 500 million smartphones and tablets. Since the Adobe Gaming team took root last year, we’ve been talking to publishers and game developers at conferences and events throughout the country. We still have some more people to impress, but an increasing number of game developers and publishers are looking to Adobe to help with reach, game discovery, and monetization across platforms and devices, including the Apple AppStore, Google Play, and Amazon Appstore.

Adobe Gaming technology was also highlighted at the 2012 GDC Developers Choice Online Awards. Many of our partners were nominated this year, and chose to develop their award winning, cutting edge games using Flash Player and AIR because it works. We’re very proud of the nominees and winners who put their heart and soul into creating visually stunning and rich gaming experiences made possible with Adobe Game Development technology.

It’s been a great GDC Online, and a fantastic opportunity for the Adobe Gaming team to meet some new game developers as well as greet old friends. If you’re looking to build your own titles for Flash Player and AIR, check out our Adobe Gaming site at to find out more, and see what your fellow game developers have already done with Adobe Game Dev technologies!