Posts in Category "Frameworks"

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.

Thoopid, a Garden Snail, and Adobe AIR

Snailboy!Updated 10/31/2013. We are always excited to see the fantastic examples of what can be accomplished by our Adobe Game Developer Tools customers.  The creative capacity of Adobe customers is always amazing, but the folks at Thoopid have really garnered my attention with Snailboy, a fun, physics based, puzzle platform game with rich graphics, killer sound and over 45 levels of intoxicating game play.  When I first saw this game, I thought I was watching a movie or a cut scene.  I was wrong; this game is just visually stunning!

RW Liebenberg, Managing Director and Lead Developer at Thoopid, took a few minutes to talk to me about their company, their unconventional hero, Snailboy (yep, he’s a garden snail!), and their experiences with Adobe products in building this breathtaking experience, which, incidentally, is their first iOS game.
Continue reading…

Away3D makes its way to Typescript!

10-9-2013-11-27-12-AM1Today our partners at Away3D have introduced their first official alpha release of Away3D for Typescript!  Away3D is an open source 3D framework available in Adobe’s Gaming SDK.  Initially available for ActionScript developers, this new alpha available on Away3D’s website opens the framework up to the Typescript language and Javascript developers everywhere.

We’d like to congratulate the team at Away3D!  This is a major milestone and a huge leap forward for hardware accelerated graphics on the web for both desktop and mobile platforms!

For full details, please see the Away3D Typescript 4.1 Alpha blog post by Rob Bateman.  For examples, test tools, and source files please visit

Video tutorials are available here:

Getting Started
Recompiling the core
Live debugging with Google Chrome

Writing a Secure Plugin Architecture for AIR Applications

If you’ve ever wondered about plugins for AIR applications, I just published a article called Extending AIR Applications With Plugins which hopefully should answer most of your questions.

The trick to writing a plugin architecture for AIR applications isn’t really so much plugin management (installing, loading, deleting, etc.) as it is plugin security. Plugins that are privileged enough to be really powerful also have enough power to be potentially dangerous, so before an end user installs one, he or she needs to know not only who wrote it, but also that the plugin wasn’t somehow modified prior to installation. That’s where code signing and validation come in.

The sample plugin architecture I wrote addresses both plugin management and security. The article contains plenty of background on plugin security as well as sample code for an application called "Pluggable SearchCentral" which you can see in action below:

For more on how to write your own secure plugin architecture, see Extending AIR Applications With Plugins. Updates Toolkit for Adobe AIR and Flex Updates Toolkit for Adobe Flex and AIR


Ryan Marples of announced on the developer blog that an update is available to the Toolkit for Adobe Flex and AIR. This toolkit is designed from the ground up to make it easy to build engaging applications with Flex and Adobe AIR that, for example, allow users to access their data and business processes when they are offline. published a tutorial titled Taking Salesforce Data Offline Using Adobe AIR that describes how to build an AIR application that interfaces with using this toolkit.

From the Toolkit for Adobe Flex and AIR wiki:

With the toolkit, Flex developers now have direct access to the Web services API, allowing the easy creation of new user experiences and web applications that connect directly to’s database, logic and workflow capabilities. And using the Adobe AIR component in the toolkit, information from can automatically be made available offline, allowing developers to extend their applications with offline and desktop applications.

Build real-time social apps using Adobe AIR, Flex and the Cocomo Beta


Adobe made several announcements at MAX a few months back related to new projects that were in the works. One of the projects announced that I thought was particularly compelling for AIR developers is code-named "Cocomo." To help provide some additional insights into Cocomo, I sent Nigel Pegg, senior engineering manager on the project, a few questions over email.

Rob: Hi Nigel. First question — what is "Cocomo"?

Nigel: Cocomo is the codename for a new Platform as a Service that lets Flex developers easily add real-time social and collaboration features to their applications… OK, that was a pretty "markety" sentence. In real-life terms, Cocomo is:

  1. A framework of client-side components for Flex that make it easy to build real-time multi-user apps. This includes really high-level components like full-on multi-user whiteboards, chat, etc, as well as foundation classes for building your own features, like data messaging classes and webcam and VoIP pubsub components. We’ve baked a lot of solutions to common problems into the framework, like user roles and permissions, room management, reconnect/failover, persistence and more.
  2. A service, hosted by Adobe, which acts as “the pipe” that connects your users. The client framework and the service work seamlessly together and because Adobe is hosting it, it means that the operations problems like availability, capacity, deployment, and maintenance are taken care of by Adobe. Cocomo is currently in beta.

Rob: Why should AIR developers care about Cocomo?

Nigel: They should care because it provides a way for AIR developers to build new classes of applications. We believe that the general progression of the Internet is making real-time interaction commonplace. Social features are already becoming a staple of a lot of applications on and off the web, but these are still largely asynchronous. We think that bringing social immediacy to applications, via features like live voice and video streaming as well as real-time collaborative workflows, can make applications that much more effective and compelling.

The other reason they should care is that it takes a lot to get this sort of thing right. The fundamental technology for building these kinds of features with Flash or AIR has existed for a while, and yet you don’t see as many applications as there could be out there. And we believe a big reason for that is that it’s hard to develop for, and even harder to deploy and maintain. The folks on the Cocomo team have decades of combined experience building apps like Adobe Acrobat Connect, as well as tons of experience building component frameworks. We spent a lot of time refining the framework, and so far the feedback has been really outstanding – people are building things in a weekend that would have taken weeks before. More importantly, developers are starting to try things they otherwise wouldn’t have bothered with, because the barrier to entry was just too high. The risk/reward is much more in developers’ favor now.

Rob: What are some examples of applications people are building on it?

We’ve been in public beta for around two months now, so we weren’t really expecting a huge amount of activity yet. But it’s been pretty surprising how much has been happening. For example, Acesis has taken its AIR application for medical peer reviews and added the ability for doctors across the country to perform these reviews together in real-time, without having to leave the application or travel to meet each other. We have a bunch of companies building some really exciting stuff, still early going. One company is building long distance learning where the teacher is able to interact with the students using peer-to-peer voice. Another is working on an online gaming site, where webcam streaming and voice are crucial to the gameplay.

 The developer community is really starting to pick up and run with it too. We’re working on an application “gallery” so all our links will be in one place, but check out multiplayer Sudoku: “Sudocomo”. Also, ShareFlickr is pretty cool; it lets you co-browse Flickr slideshows. And for the “what-the?” factor, you can’t beat the Cocomo-enabled Wiibot.

Rob: How to developers get started?

Nigel: It’s really easy. Literally minutes from getting an account, you’ll have your first app built and running. The Cocomo homepage has a bunch of resources to get started. Another way to get started might be to check out this blog post where you can find a link to an article from Ryan Stewart, the Cocomo Developer’s Guide, and links to several AdobeTV videos from my MAX sessions that have a lot of supporting information as well.

Rob: When will it be shipping?

Nigel: We’re currently in public beta, which started in November of 2008. We have a little ways to go yet. Rest assured that the Cocomo team is moving as fast as possible to get to a commercial launch. We are aware that depending upon the entity (e.g., enterprise, government, ISV, individual developers), service requirements such as support, compliance, and uptime may vary and we are discussing approaches to addressing these requirements. In addition, we recognize that developers expect flexible and predictable pricing and soon we’re going to start sharing our proposed pricing model with the community. If people want to stay up to date, follow the Cocomo team blog and my twitter stream includes Cocomo updates as well. Lastly, if anyone has questions, the Cocomo forums are the best place to reach the team.

Rob: Thank you, Nigel!

New Text and Layout Framework for Adobe AIR

Adobe Flash Player 10 added support for an amazing new text and layout engine bringing print-quality publishing to the web. With the release of Adobe AIR 1.5, this new engine is also available to developers building desktop applications since Flash Player 10 is included inside of the AIR runtime.

To make it even easier to work with this new text and layout engine, Adobe has released the Text Layout Framework on our Labs website, which delivers advanced, easy-to-integrate typographic and text layout features for advanced and creative typography. This framework works inside of the browser using Flash and outside of the browser using Adobe AIR. It is also extensible. There is a great sample application at the top of the Labs page that demonstrates some of the new features of this library (see screen shot below).

Features of the Text Layout Framework include:

  • Bidirectional text, vertical text and over 30 writing systems including Arabic, Hebrew, Chinese, Japanese, Korean, Thai, Lao, the major writing systems of India, and others.
  • Selection, editing and flowing text across multiple columns and linked containers, and around inline images
  • Vertical text, Tate-Chu-Yoko (horizontal within vertical text) and justifier for East Asian typography
  • Rich typographical controls, including kerning, ligatures, typographic case, digit case, digit width and discretionary hyphens
  • Cut, copy, paste, undo and standard keyboard and mouse gestures for editing
  • Rich developer APIs to manipulate text content, layout, markup and create custom text components.

For more information on this technology, be sure to visit the Labs website where you can find release notes and download information. This is a Labs release and the team would appreciate hearing your feedback.
I’m looking forward to seeing how developres and designers take advantage of this powerful new library.