Starling is a GPU powered 2D Flash API. The library mimics the conventional Flash display tree architecture, however Starling “lives” entirely inside the Stage3D environment. That means that all objects are rendered directly by the GPU, which leads to a significant performance boost.
Starling’s API is not a direct 1:1 port of the Flash API. The classes were streamlined and optimized for working well with the GPU; common tasks in game development were simplified. Starling hides the Stage3D internals from developers, but makes it easy to access them for those who need to create custom display objects.
It has a huge set of features, such as multi-platform workflow (e.g. multi-resolution abstraction), hierarchical display tree, powerful event system, particle system, texture support for a bunch of different formats (including Adobe’s new ATF format), texture atlases, blend modes, tweens, multitouch, bitmap fonts, render texture and extensions.
Sample
package scenes { import flash.media.Sound; import starling.core.Starling; import starling.display.MovieClip; import starling.events.Event; import starling.textures.Texture; public class MovieScene extends Scene { private var mMovie:MovieClip; public function MovieScene() { var frames:Vector. = Game.assets.getTextures("flight"); mMovie = new MovieClip(frames, 15); // add sounds var stepSound:Sound = Game.assets.getSound("wing_flap"); mMovie.setFrameSound(2, stepSound); // move the clip to the center and add it to the stage mMovie.x = Constants.CenterX - int(mMovie.width / 2); mMovie.y = Constants.CenterY - int(mMovie.height / 2); addChild(mMovie); // like any animation, the movie needs to be added to the juggler! // this is the recommended way to do that. addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); } private function onAddedToStage():void { Starling.juggler.add(mMovie); } private function onRemovedFromStage():void { Starling.juggler.remove(mMovie); } public override function dispose():void { removeEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); super.dispose(); } } }
this is the official 2D api for Stage3D (aka Molehill)
Yes, it is, even though there is no mention of the name “Adobe”.
[…] Cadet core library can be used in conjunction with vanilla Starling, Away3D, etc projects in order to add game processes and behaviours. Â Cadet2D and Cadet3D wrap up […]
[…] engine practices and techniques from lower level game engines, hardware acceleration powered by Starling, shaders, physics by Nape the engine aims to push the boundaries of Flash/AIR gaming. Among its […]
[…] or is no longer useful, the button can be completely disposed. The extension is compatible with Starling […]
[…] any tweening engine. The extension has a set of features, such as add layers (any DisplayObject), Starling integration, the ability to control the direction and movement multiplier of each layer,  uses […]
[…] GAF is an open cross-platform format to store Flash animations for further playback in a multitude of game development frameworks and devices. It enables artists and animators to use Flash CS for creating complex animations and seamlessly use them with various game development frameworks. The GAF Converter analyzes the bytecode of each SWF file and creates a GAF file, which can be played in the desired game framework, such as Starling. […]