SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
BUILDING GPU-ACCELERATED
MOBILE APPLICATION
INTERFACES WITH STARLING
AND FEATHERS
Joseph Labrecque
360|Stack 2013
JOSEPH LABRECQUE
Senior Interactive Software Engineer | Adjunct Faculty
University of Denver
Proprietor | Owner
Fractured Vision Media, LLC
Adobe Community Professional
Adobe Education Leader
Adobe Certified Expert
Adobe Certified Educator
Adobe Influencer
Author
Lynda.com | Peachpit Press | Adobe Press | Packt Publishing | O’Reilly Media | video2brain
Artist
An Early Morning Letter, Displaced | Shivervein
HERE’S THE PLAN
• Talk about Stage3D – some history
• Introduce some Stage3D frameworks
• Basic Starling project setup
• Feathers setup and theming
• Feathers screens, components, and
layouts
• Advanced explorations
STAGE3D: GPU ACCELERATED FLASH
Flash Player 11.x & Adobe AIR 3.x
SOME HISTORY
• Adobe shows off Molehill at MAX 2010
• Lots of excitement around 3D in Flash!
• MAX 2011 - Stage3D made available with
Flash Player 11 and AIR 3.
• Mobile support for Flash Player was
coming soon.
• November 2011. Fffuuuu…
RECENT HISTORY
• 11.1/3.1 – bugfixes and stuff…
• 11.2/3.2 – Stage3D on mobile AIR
• 11.3/3.3 – Texture Streaming
• 11.4/3.4 – Concurrency & Telemetry
• 11.5/3.5 – Shared ByteArray
• 11.6/3.6 – readGraphicsData()
• 11.7/3.7 – GameInput APIs
FLASH PLAYER 11.0 AND AIR 3.0
11.8/3.8 - RECENT ADDITIONS
• BASELINE_EXTENDED : 4096×4096 texture
support
• Rectangle Textures in BASELINE and
BASELINE_EXTENDED
plus…
• Recursive stop on MovieClip
• StageVideo on AIR desktop
• GameInput APIs
FUTURE EXPLORATIONS
• Mobile Workers – Threading on mobile
• “Molehill 2” – Stage3D Improvements
• Integrated 2D/3D physics
also…
• Improved iOS compile time
• Reduced iOS file sizes
• Android Key Lime Pie and iOS7 support
ADOBE GAMING SDK
Starling, Feathers, and more…
GAMING SDK?
The Adobe Gaming SDK provides an essential
collection of frameworks, code samples, and
learning resources that work together to help
developers create and deliver ActionScript
games across multiple devices.
GAMING SDK 1.2
• AIR SDK 3.8
• Starling
• Feathers
• Away3D & Away Builder
• DragonBones
• FlashCC [CrossBridge]
• GamePad Support, Native Extensions,
& ATF Tools
FLASH IS FOCUSED ON GAMING
But what about apps?
ADOBE ROADMAP FOR THE FLASH
RUNTIMES
Adobe believes that the Flash runtimes are
particularly and uniquely suited for two
primary use cases: creating and deploying
rich, expressive games with console-quality
graphics and deploying premium video.
This focus does not mean that existing content
will no longer run, or that Flash cannot be
used for content other than gaming and
premium video. However, it does mean that
when prioritizing work, gaming and premium
video use cases will take priority.
STAGE3D APPLICATIONS
• Realaxy [facebook.com/Realaxy]
• APEXvj [apexvj.com]
• Messi 2012 Matrix [messimatrix2012.com]
• VisYOUalize Yourself
[hp.denon.com/visyoualize_yourself]
• Sendra Custom Boots
[custom.sendra.com]
• SimplyMpress [simplympress.com]
STAGE3D APPLICATIONS
• Psykopaint (iOS) [psykopaint.com]
• Sense [sense-app.com]
• Bathplanner Pro [app.onlinebadplaner.at]
• Teleport [teleport.io]
• Mizuno Product Customizator
[mizunocustom.com/volleyball/sublimated]
• DeezCovr [deezcovr.com]
• Total Body Fitness [totalbodyfitness.biz]
• Paper Critters [papercritters.com]
BUILDING AN APP WITH STAGE3D
With the Gaming SDK? Yes.
WHAT DO WE NEED?
STARLING
• Sets up the GPU stuff for us.
• Build a Starling instance.
• Load in Feathers!
FEATHERS
• Implement a theme.
• Apply a ScreenNavigator
• Decide upon a Layout or two.
• Build out the content.
STARLING
2D Stage3D Framework
STARLING SETUP
• Import the Starling classes.
• Declare a new Starling instance.
• Optionally set Starling to handle lost context
and multitouch.
• Instantiate a new Starling instance, passing
in both a main class and the stage to bind it
to.
• Start up the instance.
import starling.core.Starling;
private var starling:Starling;
Starling.handleLostContext = true;
Starling.multitouchEnabled = false;
starling = new Starling(Main, stage);
starling.start();
MAIN STARLING CLASS
• Import the Starling Sprite class.
• Have the main Starling class extend
Starling Sprite.
• We are now ready for Feathers.
import starling.display.Sprite;
public class Main extends Sprite {}
FEATHERS
User Interface Components for Starling
FEATHERS SETUP
• Import a Feathers theme for use in the
app.
• Wait for the Stage to become ready.
• Instantiate a new Feathers theme within
the main Starling class once the Stage is
ready.
• Feathers is now ready and skinned.
import feathers.themes.FeathersTheme;
this.addEventListener(
Event.ADDED_TO_STAGE, onStageReady);
new FeathersTheme();
FEATHERS SCREENS
• Similar to mobile Flex Views.
• Many individual Screens.
• Use with a ScreenNavigator.
• Optionally bind Screen controls to
Feathers components like TabBar or
ButtonGroup.
BUILDING A SCREENNAVIGATOR
• Import the Feathers ScreenNavigator class
to hold and manage our screens.
• Declare and instantiate the
ScreenNavigator instance.
• Add the instance to the display.
import feathers.controls.ScreenNavigator;
private var screenNavigator:ScreenNavigator = new
ScreenNavigator();
addChild(screenNavigator);
BUILDING SCREENS
• Create a new class for each screen which
extends the Feathers Screen class.
• Override the initialize function for
instantiating and building objects.
• Override the draw function for managing
the size and layout of objects.
import feathers.controls.Screen;
public class ParticleScreen extends Screen {}
override protected function initialize():void {}
override protected function draw():void {}
POPULATING SCREENNAVIGATOR
• Import the Feathers ScreenNavigatorItem
class and our Screen classes.
• Declare various screens as constants.
• Use ScreenNavigator.addScreen() to
populate the ScreenNavigator with
references to our Screen classes.
• Use ScreenNavigator.showScreen() to
switch screens.
import feathers.controls.ScreenNavigatorItem;
import com.josephlabrecque.demo.screens.MyScreen;
private static const SCREEN:String = “myScreen”;
screenNavigator.addScreen(SCREEN, new
ScreenNavigatorItem(MyScreen));
screenNavigator.showScreen(SCREEN);
FEATHERS COMPONENTS
• Similar to Flex components.
• Buttons, Callouts, Headers, Lists, Loaders,
Labels, Steppers, Panels, Pickers, Radios,
Checkboxes, Containers, Sliders, TabBars,
TextAreas, TextInputs, Toggles, and
more…
• All GPU accelerated through Starling!
USING COMPONENTS
• Import the Feathers component we want
to use – Button, in this example.
• Declare the Button instance.
• Instantiate the instance within the
initialize function.
• Adjust visual properties within the draw
function.
import feathers.controls.Button;
private var myButton:Button;
override protected function initialize():void {
myButton = new Button();
myButton.label = “Click Me";
addChild(myButton);
}
override protected function draw():void {
myButton.validate();
myButton.y = 500;
}
FEATHERS LAYOUTS
• Lots of similarities to Flex layouts.
• Horizontal
• Vertical
• Tiled (rows/columns)
• Anchored
• Lots of options for each!
CREATING LAYOUTS
• Import the specific Feathers layout classes
you intend to use.
• Declare your layout for later use.
• Instantiate your layout and set the
optional properties of that specific layout.
import feathers.layout.VerticalLayout;
private var layout:VerticalLayout;
layout = new VerticalLayout();
layout.horizontalAlign =
VerticalLayout.HORIZONTAL_ALIGN_CENTER;
layout.verticalAlign =
VerticalLayout.VERTICAL_ALIGN_MIDDLE;
layout.hasVariableItemDimensions = true;
APPLYING LAYOUTS
• We’re applying our layout to a
ScrollContainer – so be sure you have
imported the Feathers ScrollContainer class.
• Declare and then instantiate a new
ScrollContainer instance.
• Set the previously created layout object to
the layout property of your ScrollContainer.
• Add the ScrollContainer instance to the view.
import feathers.controls.ScrollContainer;
private var container:ScrollContainer;
container = new ScrollContainer();
container.layout = layout;
this.addChild(container);
ADVANCED FEATHERS
A few other things…
POPUPS
• Import the Feathers PopUpManager class.
• Declare and instantiate an object to use as
the visual popup component.
• Utilize the PopUpManager class to add or
remove a popup using the declared object.
• Options for modal and centered.
import feathers.core.PopUpManager;
private var popUp:Image;
popUp = new Image(texture);
PopUpManager.addPopUp(popUp, true,
true);
FEATHERS AND FLEX
<feathers:PanelScreen xmlns:
fx="http://ns.adobe.com/mxml/2009"
xmlns:
feathers="library://ns.feathersui.com/mxml"
>
<feathers:Button label="Click Me" />
</feathers:PanelScreen>
• Feathers has partial MXML support.
• Components, Containers, Layouts, and
Collections will all work.
• No binding allowed!
• Special build with Flex SDK and not ASC 2.0
for this to work…
FEATHERS EXTENSIONS
• SoftKeyboard
[cote.cc/projects/softkeyboard]
• Logi
[github.com/justpinegames/Logi]
• Feathers Extensions
[wiki.starling-framework.org/feathers/extensions]
THANK YOU
Twitter: @JosephLabrecque
Email: Joseph.Labrecque@du.edu
Web: http://JosephLabrecque.com/

Mais conteúdo relacionado

Mais procurados

Making VR with Unreal Engine Luis Cataldi
Making VR with Unreal Engine  Luis CataldiMaking VR with Unreal Engine  Luis Cataldi
Making VR with Unreal Engine Luis CataldiUnreal Engine
 
Unleash 3D games with Babylon.js - JSConf 2014 talk
Unleash 3D games with Babylon.js - JSConf 2014 talkUnleash 3D games with Babylon.js - JSConf 2014 talk
Unleash 3D games with Babylon.js - JSConf 2014 talkDavid Catuhe
 
Responsive Design with Axure 7.0’s Adaptive Views
Responsive Design with Axure 7.0’s Adaptive ViewsResponsive Design with Axure 7.0’s Adaptive Views
Responsive Design with Axure 7.0’s Adaptive ViewsSvetlin Denkov
 
Virtual Presentation using Amazon Sumerian
Virtual Presentation using Amazon SumerianVirtual Presentation using Amazon Sumerian
Virtual Presentation using Amazon SumerianTakanoriTsutsui
 
The tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanetThe tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanetJavier Abud
 
Introductory Virtual Reality in Unity3d
Introductory Virtual Reality in Unity3dIntroductory Virtual Reality in Unity3d
Introductory Virtual Reality in Unity3dBond University
 
HTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.jsHTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.jsDavid Catuhe
 
iOS Development: What's New
iOS Development: What's NewiOS Development: What's New
iOS Development: What's NewNascentDigital
 
Gigigo Workshop - Create an iOS Framework, document it and not die trying
Gigigo Workshop - Create an iOS Framework, document it and not die tryingGigigo Workshop - Create an iOS Framework, document it and not die trying
Gigigo Workshop - Create an iOS Framework, document it and not die tryingAlex Rupérez
 
Unleash 3D rendering with WebGL and Microsoft Edge
Unleash 3D rendering with WebGL and Microsoft EdgeUnleash 3D rendering with WebGL and Microsoft Edge
Unleash 3D rendering with WebGL and Microsoft EdgeDavid Catuhe
 
The new Apple TV and the tvOS
The new Apple TV and the tvOSThe new Apple TV and the tvOS
The new Apple TV and the tvOSMugunth Kumar
 
SUSE Studio - LinuxTag Berlin 2010
SUSE Studio - LinuxTag Berlin 2010SUSE Studio - LinuxTag Berlin 2010
SUSE Studio - LinuxTag Berlin 2010James Tan Y.J.
 
Gaze detection with Virtual Reality and Unity 3d
Gaze detection with Virtual Reality and Unity 3dGaze detection with Virtual Reality and Unity 3d
Gaze detection with Virtual Reality and Unity 3dBond University
 
Iteratively Develop Microservices with Speed on Kubernetes
Iteratively Develop Microservices with Speed on KubernetesIteratively Develop Microservices with Speed on Kubernetes
Iteratively Develop Microservices with Speed on KubernetesMicrosoft Tech Community
 
Creating a browser ready fps mmo in unity ppt-mew_final
Creating a browser ready fps mmo in unity ppt-mew_finalCreating a browser ready fps mmo in unity ppt-mew_final
Creating a browser ready fps mmo in unity ppt-mew_finalAmilton Diesel
 
Introduction to-unity
Introduction to-unityIntroduction to-unity
Introduction to-unityvafa3
 
Getting Started with AWS Device Farm
Getting Started with AWS Device FarmGetting Started with AWS Device Farm
Getting Started with AWS Device FarmAmazon Web Services
 
Creating A Game Using Microsoft’s Next Generation Technologies
Creating A Game Using Microsoft’s Next Generation TechnologiesCreating A Game Using Microsoft’s Next Generation Technologies
Creating A Game Using Microsoft’s Next Generation TechnologiesTamir Khason
 

Mais procurados (20)

Making VR with Unreal Engine Luis Cataldi
Making VR with Unreal Engine  Luis CataldiMaking VR with Unreal Engine  Luis Cataldi
Making VR with Unreal Engine Luis Cataldi
 
Unleash 3D games with Babylon.js - JSConf 2014 talk
Unleash 3D games with Babylon.js - JSConf 2014 talkUnleash 3D games with Babylon.js - JSConf 2014 talk
Unleash 3D games with Babylon.js - JSConf 2014 talk
 
Responsive Design with Axure 7.0’s Adaptive Views
Responsive Design with Axure 7.0’s Adaptive ViewsResponsive Design with Axure 7.0’s Adaptive Views
Responsive Design with Axure 7.0’s Adaptive Views
 
Virtual Presentation using Amazon Sumerian
Virtual Presentation using Amazon SumerianVirtual Presentation using Amazon Sumerian
Virtual Presentation using Amazon Sumerian
 
The tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanetThe tech. behind RoboBlastPlanet
The tech. behind RoboBlastPlanet
 
Introductory Virtual Reality in Unity3d
Introductory Virtual Reality in Unity3dIntroductory Virtual Reality in Unity3d
Introductory Virtual Reality in Unity3d
 
HTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.jsHTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.js
 
iOS Development: What's New
iOS Development: What's NewiOS Development: What's New
iOS Development: What's New
 
Gigigo Workshop - Create an iOS Framework, document it and not die trying
Gigigo Workshop - Create an iOS Framework, document it and not die tryingGigigo Workshop - Create an iOS Framework, document it and not die trying
Gigigo Workshop - Create an iOS Framework, document it and not die trying
 
Unleash 3D rendering with WebGL and Microsoft Edge
Unleash 3D rendering with WebGL and Microsoft EdgeUnleash 3D rendering with WebGL and Microsoft Edge
Unleash 3D rendering with WebGL and Microsoft Edge
 
The new Apple TV and the tvOS
The new Apple TV and the tvOSThe new Apple TV and the tvOS
The new Apple TV and the tvOS
 
SUSE Studio - LinuxTag Berlin 2010
SUSE Studio - LinuxTag Berlin 2010SUSE Studio - LinuxTag Berlin 2010
SUSE Studio - LinuxTag Berlin 2010
 
MoMo Oct Event
MoMo Oct EventMoMo Oct Event
MoMo Oct Event
 
Gaze detection with Virtual Reality and Unity 3d
Gaze detection with Virtual Reality and Unity 3dGaze detection with Virtual Reality and Unity 3d
Gaze detection with Virtual Reality and Unity 3d
 
Iteratively Develop Microservices with Speed on Kubernetes
Iteratively Develop Microservices with Speed on KubernetesIteratively Develop Microservices with Speed on Kubernetes
Iteratively Develop Microservices with Speed on Kubernetes
 
HTML5 Gaming
HTML5 GamingHTML5 Gaming
HTML5 Gaming
 
Creating a browser ready fps mmo in unity ppt-mew_final
Creating a browser ready fps mmo in unity ppt-mew_finalCreating a browser ready fps mmo in unity ppt-mew_final
Creating a browser ready fps mmo in unity ppt-mew_final
 
Introduction to-unity
Introduction to-unityIntroduction to-unity
Introduction to-unity
 
Getting Started with AWS Device Farm
Getting Started with AWS Device FarmGetting Started with AWS Device Farm
Getting Started with AWS Device Farm
 
Creating A Game Using Microsoft’s Next Generation Technologies
Creating A Game Using Microsoft’s Next Generation TechnologiesCreating A Game Using Microsoft’s Next Generation Technologies
Creating A Game Using Microsoft’s Next Generation Technologies
 

Semelhante a Building GPU-Accelerated Mobile Application Interfaces with Starling and Feathers

Using Adobe Gaming Tools for Education
Using Adobe Gaming Tools for EducationUsing Adobe Gaming Tools for Education
Using Adobe Gaming Tools for EducationJoseph Labrecque
 
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...DevClub_lv
 
Develop apps for (Apple) TV
Develop apps for (Apple) TVDevelop apps for (Apple) TV
Develop apps for (Apple) TVCodemotion
 
Getting started with Verold and Three.js
Getting started with Verold and Three.jsGetting started with Verold and Three.js
Getting started with Verold and Three.jsVerold
 
Developing Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay FrameworkDeveloping Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay FrameworkCsaba Toth
 
Building VR Applications For Google Cardboard
Building VR Applications For Google CardboardBuilding VR Applications For Google Cardboard
Building VR Applications For Google CardboardMark Billinghurst
 
Developing VR Experiences with Unity
Developing VR Experiences with UnityDeveloping VR Experiences with Unity
Developing VR Experiences with UnityMark Billinghurst
 
Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Chris Griffith
 
Adobe Flash - Past, Present and Future
Adobe Flash - Past, Present and FutureAdobe Flash - Past, Present and Future
Adobe Flash - Past, Present and FutureIain Lobb
 
BYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineBYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineMichael Sheyahshe
 
Creating Flash Content for Multiple Screens
Creating Flash Content for Multiple ScreensCreating Flash Content for Multiple Screens
Creating Flash Content for Multiple Screenspaultrani
 
Awesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAwesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAmir Barylko
 
HoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOpsHoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOpsSarah Sexton
 
Introduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile DevicesIntroduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile DevicesRyan Stewart
 
Cordova Tutorial
Cordova TutorialCordova Tutorial
Cordova TutorialJacky Chen
 
Flash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen DevelopmentFlash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen DevelopmentRyan Stewart
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Jason Kneen
 

Semelhante a Building GPU-Accelerated Mobile Application Interfaces with Starling and Feathers (20)

Using Adobe Gaming Tools for Education
Using Adobe Gaming Tools for EducationUsing Adobe Gaming Tools for Education
Using Adobe Gaming Tools for Education
 
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
Cross Platform Mobile Development using Flutter by Wei Meng Lee at Mobile foc...
 
Develop apps for (Apple) TV
Develop apps for (Apple) TVDevelop apps for (Apple) TV
Develop apps for (Apple) TV
 
Develop apps for (Apple) TV
Develop apps for (Apple) TVDevelop apps for (Apple) TV
Develop apps for (Apple) TV
 
Getting started with Verold and Three.js
Getting started with Verold and Three.jsGetting started with Verold and Three.js
Getting started with Verold and Three.js
 
Developing Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay FrameworkDeveloping Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay Framework
 
Building VR Applications For Google Cardboard
Building VR Applications For Google CardboardBuilding VR Applications For Google Cardboard
Building VR Applications For Google Cardboard
 
Developing VR Experiences with Unity
Developing VR Experiences with UnityDeveloping VR Experiences with Unity
Developing VR Experiences with Unity
 
Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5
 
Adobe Flash - Past, Present and Future
Adobe Flash - Past, Present and FutureAdobe Flash - Past, Present and Future
Adobe Flash - Past, Present and Future
 
BYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal EngineBYOD: Build Your First VR Experience with Unreal Engine
BYOD: Build Your First VR Experience with Unreal Engine
 
Creating Flash Content for Multiple Screens
Creating Flash Content for Multiple ScreensCreating Flash Content for Multiple Screens
Creating Flash Content for Multiple Screens
 
Awesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAwesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescript
 
Mobile AR Tutorial
Mobile AR TutorialMobile AR Tutorial
Mobile AR Tutorial
 
Make it compatible
Make it compatibleMake it compatible
Make it compatible
 
HoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOpsHoloLens Unity Build Pipelines on Azure DevOps
HoloLens Unity Build Pipelines on Azure DevOps
 
Introduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile DevicesIntroduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile Devices
 
Cordova Tutorial
Cordova TutorialCordova Tutorial
Cordova Tutorial
 
Flash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen DevelopmentFlash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen Development
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014
 

Mais de Joseph Labrecque

Producing Quality Video Content for Online Learning
Producing Quality Video Content for Online LearningProducing Quality Video Content for Online Learning
Producing Quality Video Content for Online LearningJoseph Labrecque
 
Interactive Animation with Adobe Animate CC
Interactive Animation with Adobe Animate CCInteractive Animation with Adobe Animate CC
Interactive Animation with Adobe Animate CCJoseph Labrecque
 
Cinematic Interactives with Animate CC
Cinematic Interactives with Animate CCCinematic Interactives with Animate CC
Cinematic Interactives with Animate CCJoseph Labrecque
 
Getting Familiar with Animate CC
Getting Familiar with Animate CCGetting Familiar with Animate CC
Getting Familiar with Animate CCJoseph Labrecque
 
Animate CC and the Flash Runtimes at Adobe MAX
Animate CC and the Flash Runtimes at Adobe MAX Animate CC and the Flash Runtimes at Adobe MAX
Animate CC and the Flash Runtimes at Adobe MAX Joseph Labrecque
 
Don't Fear the SWF! (Adobe MAX Community Summit)
Don't Fear the SWF! (Adobe MAX Community Summit)Don't Fear the SWF! (Adobe MAX Community Summit)
Don't Fear the SWF! (Adobe MAX Community Summit)Joseph Labrecque
 
Adobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and InteractivityAdobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and InteractivityJoseph Labrecque
 
Adobe Animate CC: Tool for the Changing Tech Landscape
 Adobe Animate CC: Tool for the Changing Tech Landscape Adobe Animate CC: Tool for the Changing Tech Landscape
Adobe Animate CC: Tool for the Changing Tech LandscapeJoseph Labrecque
 
Surviving Industry Disruption in Higher Education
Surviving Industry Disruption in Higher EducationSurviving Industry Disruption in Higher Education
Surviving Industry Disruption in Higher EducationJoseph Labrecque
 
Designing Short, Simple, and Effective Video Content for Online Consumption
Designing Short, Simple, and Effective Video Content for Online ConsumptionDesigning Short, Simple, and Effective Video Content for Online Consumption
Designing Short, Simple, and Effective Video Content for Online ConsumptionJoseph Labrecque
 
Introducing Adobe Animate CC
Introducing Adobe Animate CCIntroducing Adobe Animate CC
Introducing Adobe Animate CCJoseph Labrecque
 
Flash Professional CC for Mobile
Flash Professional CC for MobileFlash Professional CC for Mobile
Flash Professional CC for MobileJoseph Labrecque
 
Flash Professional CC 2015: A New Era in Animation and Interactivity
Flash Professional CC 2015: A New Era in Animation and InteractivityFlash Professional CC 2015: A New Era in Animation and Interactivity
Flash Professional CC 2015: A New Era in Animation and InteractivityJoseph Labrecque
 
Adobe MAX 2015 - Giving Flash Professional Another Look
Adobe MAX 2015 - Giving Flash Professional Another LookAdobe MAX 2015 - Giving Flash Professional Another Look
Adobe MAX 2015 - Giving Flash Professional Another LookJoseph Labrecque
 
Why Flash Professional Still Matters for the Web and Beyond
Why Flash Professional Still Matters for the Web and BeyondWhy Flash Professional Still Matters for the Web and Beyond
Why Flash Professional Still Matters for the Web and BeyondJoseph Labrecque
 
Mobile Application Development Technology Roundup
Mobile Application Development Technology RoundupMobile Application Development Technology Roundup
Mobile Application Development Technology RoundupJoseph Labrecque
 
Adobe Generation Professional: Animation
Adobe Generation Professional:AnimationAdobe Generation Professional:Animation
Adobe Generation Professional: AnimationJoseph Labrecque
 
Flash Professional CC: Multiplatform Creativity Engine
Flash Professional CC: Multiplatform Creativity EngineFlash Professional CC: Multiplatform Creativity Engine
Flash Professional CC: Multiplatform Creativity EngineJoseph Labrecque
 

Mais de Joseph Labrecque (20)

Producing Quality Video Content for Online Learning
Producing Quality Video Content for Online LearningProducing Quality Video Content for Online Learning
Producing Quality Video Content for Online Learning
 
Interactive Animation with Adobe Animate CC
Interactive Animation with Adobe Animate CCInteractive Animation with Adobe Animate CC
Interactive Animation with Adobe Animate CC
 
Cinematic Interactives with Animate CC
Cinematic Interactives with Animate CCCinematic Interactives with Animate CC
Cinematic Interactives with Animate CC
 
Getting Familiar with Animate CC
Getting Familiar with Animate CCGetting Familiar with Animate CC
Getting Familiar with Animate CC
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
Animate CC and the Flash Runtimes at Adobe MAX
Animate CC and the Flash Runtimes at Adobe MAX Animate CC and the Flash Runtimes at Adobe MAX
Animate CC and the Flash Runtimes at Adobe MAX
 
Don't Fear the SWF! (Adobe MAX Community Summit)
Don't Fear the SWF! (Adobe MAX Community Summit)Don't Fear the SWF! (Adobe MAX Community Summit)
Don't Fear the SWF! (Adobe MAX Community Summit)
 
Adobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and InteractivityAdobe Animate CC: Introduction to Animation and Interactivity
Adobe Animate CC: Introduction to Animation and Interactivity
 
Adobe Animate CC: Tool for the Changing Tech Landscape
 Adobe Animate CC: Tool for the Changing Tech Landscape Adobe Animate CC: Tool for the Changing Tech Landscape
Adobe Animate CC: Tool for the Changing Tech Landscape
 
Surviving Industry Disruption in Higher Education
Surviving Industry Disruption in Higher EducationSurviving Industry Disruption in Higher Education
Surviving Industry Disruption in Higher Education
 
Designing Short, Simple, and Effective Video Content for Online Consumption
Designing Short, Simple, and Effective Video Content for Online ConsumptionDesigning Short, Simple, and Effective Video Content for Online Consumption
Designing Short, Simple, and Effective Video Content for Online Consumption
 
Introducing Adobe Animate CC
Introducing Adobe Animate CCIntroducing Adobe Animate CC
Introducing Adobe Animate CC
 
Bootstrap Fundamentals
Bootstrap FundamentalsBootstrap Fundamentals
Bootstrap Fundamentals
 
Flash Professional CC for Mobile
Flash Professional CC for MobileFlash Professional CC for Mobile
Flash Professional CC for Mobile
 
Flash Professional CC 2015: A New Era in Animation and Interactivity
Flash Professional CC 2015: A New Era in Animation and InteractivityFlash Professional CC 2015: A New Era in Animation and Interactivity
Flash Professional CC 2015: A New Era in Animation and Interactivity
 
Adobe MAX 2015 - Giving Flash Professional Another Look
Adobe MAX 2015 - Giving Flash Professional Another LookAdobe MAX 2015 - Giving Flash Professional Another Look
Adobe MAX 2015 - Giving Flash Professional Another Look
 
Why Flash Professional Still Matters for the Web and Beyond
Why Flash Professional Still Matters for the Web and BeyondWhy Flash Professional Still Matters for the Web and Beyond
Why Flash Professional Still Matters for the Web and Beyond
 
Mobile Application Development Technology Roundup
Mobile Application Development Technology RoundupMobile Application Development Technology Roundup
Mobile Application Development Technology Roundup
 
Adobe Generation Professional: Animation
Adobe Generation Professional:AnimationAdobe Generation Professional:Animation
Adobe Generation Professional: Animation
 
Flash Professional CC: Multiplatform Creativity Engine
Flash Professional CC: Multiplatform Creativity EngineFlash Professional CC: Multiplatform Creativity Engine
Flash Professional CC: Multiplatform Creativity Engine
 

Último

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Último (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Building GPU-Accelerated Mobile Application Interfaces with Starling and Feathers

  • 1. BUILDING GPU-ACCELERATED MOBILE APPLICATION INTERFACES WITH STARLING AND FEATHERS Joseph Labrecque 360|Stack 2013
  • 2. JOSEPH LABRECQUE Senior Interactive Software Engineer | Adjunct Faculty University of Denver Proprietor | Owner Fractured Vision Media, LLC Adobe Community Professional Adobe Education Leader Adobe Certified Expert Adobe Certified Educator Adobe Influencer Author Lynda.com | Peachpit Press | Adobe Press | Packt Publishing | O’Reilly Media | video2brain Artist An Early Morning Letter, Displaced | Shivervein
  • 3. HERE’S THE PLAN • Talk about Stage3D – some history • Introduce some Stage3D frameworks • Basic Starling project setup • Feathers setup and theming • Feathers screens, components, and layouts • Advanced explorations
  • 4. STAGE3D: GPU ACCELERATED FLASH Flash Player 11.x & Adobe AIR 3.x
  • 5. SOME HISTORY • Adobe shows off Molehill at MAX 2010 • Lots of excitement around 3D in Flash! • MAX 2011 - Stage3D made available with Flash Player 11 and AIR 3. • Mobile support for Flash Player was coming soon. • November 2011. Fffuuuu…
  • 6. RECENT HISTORY • 11.1/3.1 – bugfixes and stuff… • 11.2/3.2 – Stage3D on mobile AIR • 11.3/3.3 – Texture Streaming • 11.4/3.4 – Concurrency & Telemetry • 11.5/3.5 – Shared ByteArray • 11.6/3.6 – readGraphicsData() • 11.7/3.7 – GameInput APIs
  • 7. FLASH PLAYER 11.0 AND AIR 3.0
  • 8. 11.8/3.8 - RECENT ADDITIONS • BASELINE_EXTENDED : 4096×4096 texture support • Rectangle Textures in BASELINE and BASELINE_EXTENDED plus… • Recursive stop on MovieClip • StageVideo on AIR desktop • GameInput APIs
  • 9. FUTURE EXPLORATIONS • Mobile Workers – Threading on mobile • “Molehill 2” – Stage3D Improvements • Integrated 2D/3D physics also… • Improved iOS compile time • Reduced iOS file sizes • Android Key Lime Pie and iOS7 support
  • 10. ADOBE GAMING SDK Starling, Feathers, and more…
  • 11. GAMING SDK? The Adobe Gaming SDK provides an essential collection of frameworks, code samples, and learning resources that work together to help developers create and deliver ActionScript games across multiple devices.
  • 12. GAMING SDK 1.2 • AIR SDK 3.8 • Starling • Feathers • Away3D & Away Builder • DragonBones • FlashCC [CrossBridge] • GamePad Support, Native Extensions, & ATF Tools
  • 13. FLASH IS FOCUSED ON GAMING But what about apps?
  • 14. ADOBE ROADMAP FOR THE FLASH RUNTIMES Adobe believes that the Flash runtimes are particularly and uniquely suited for two primary use cases: creating and deploying rich, expressive games with console-quality graphics and deploying premium video. This focus does not mean that existing content will no longer run, or that Flash cannot be used for content other than gaming and premium video. However, it does mean that when prioritizing work, gaming and premium video use cases will take priority.
  • 15. STAGE3D APPLICATIONS • Realaxy [facebook.com/Realaxy] • APEXvj [apexvj.com] • Messi 2012 Matrix [messimatrix2012.com] • VisYOUalize Yourself [hp.denon.com/visyoualize_yourself] • Sendra Custom Boots [custom.sendra.com] • SimplyMpress [simplympress.com]
  • 16. STAGE3D APPLICATIONS • Psykopaint (iOS) [psykopaint.com] • Sense [sense-app.com] • Bathplanner Pro [app.onlinebadplaner.at] • Teleport [teleport.io] • Mizuno Product Customizator [mizunocustom.com/volleyball/sublimated] • DeezCovr [deezcovr.com] • Total Body Fitness [totalbodyfitness.biz] • Paper Critters [papercritters.com]
  • 17. BUILDING AN APP WITH STAGE3D With the Gaming SDK? Yes.
  • 18. WHAT DO WE NEED? STARLING • Sets up the GPU stuff for us. • Build a Starling instance. • Load in Feathers! FEATHERS • Implement a theme. • Apply a ScreenNavigator • Decide upon a Layout or two. • Build out the content.
  • 20. STARLING SETUP • Import the Starling classes. • Declare a new Starling instance. • Optionally set Starling to handle lost context and multitouch. • Instantiate a new Starling instance, passing in both a main class and the stage to bind it to. • Start up the instance. import starling.core.Starling; private var starling:Starling; Starling.handleLostContext = true; Starling.multitouchEnabled = false; starling = new Starling(Main, stage); starling.start();
  • 21. MAIN STARLING CLASS • Import the Starling Sprite class. • Have the main Starling class extend Starling Sprite. • We are now ready for Feathers. import starling.display.Sprite; public class Main extends Sprite {}
  • 23. FEATHERS SETUP • Import a Feathers theme for use in the app. • Wait for the Stage to become ready. • Instantiate a new Feathers theme within the main Starling class once the Stage is ready. • Feathers is now ready and skinned. import feathers.themes.FeathersTheme; this.addEventListener( Event.ADDED_TO_STAGE, onStageReady); new FeathersTheme();
  • 24. FEATHERS SCREENS • Similar to mobile Flex Views. • Many individual Screens. • Use with a ScreenNavigator. • Optionally bind Screen controls to Feathers components like TabBar or ButtonGroup.
  • 25. BUILDING A SCREENNAVIGATOR • Import the Feathers ScreenNavigator class to hold and manage our screens. • Declare and instantiate the ScreenNavigator instance. • Add the instance to the display. import feathers.controls.ScreenNavigator; private var screenNavigator:ScreenNavigator = new ScreenNavigator(); addChild(screenNavigator);
  • 26. BUILDING SCREENS • Create a new class for each screen which extends the Feathers Screen class. • Override the initialize function for instantiating and building objects. • Override the draw function for managing the size and layout of objects. import feathers.controls.Screen; public class ParticleScreen extends Screen {} override protected function initialize():void {} override protected function draw():void {}
  • 27. POPULATING SCREENNAVIGATOR • Import the Feathers ScreenNavigatorItem class and our Screen classes. • Declare various screens as constants. • Use ScreenNavigator.addScreen() to populate the ScreenNavigator with references to our Screen classes. • Use ScreenNavigator.showScreen() to switch screens. import feathers.controls.ScreenNavigatorItem; import com.josephlabrecque.demo.screens.MyScreen; private static const SCREEN:String = “myScreen”; screenNavigator.addScreen(SCREEN, new ScreenNavigatorItem(MyScreen)); screenNavigator.showScreen(SCREEN);
  • 28. FEATHERS COMPONENTS • Similar to Flex components. • Buttons, Callouts, Headers, Lists, Loaders, Labels, Steppers, Panels, Pickers, Radios, Checkboxes, Containers, Sliders, TabBars, TextAreas, TextInputs, Toggles, and more… • All GPU accelerated through Starling!
  • 29. USING COMPONENTS • Import the Feathers component we want to use – Button, in this example. • Declare the Button instance. • Instantiate the instance within the initialize function. • Adjust visual properties within the draw function. import feathers.controls.Button; private var myButton:Button; override protected function initialize():void { myButton = new Button(); myButton.label = “Click Me"; addChild(myButton); } override protected function draw():void { myButton.validate(); myButton.y = 500; }
  • 30. FEATHERS LAYOUTS • Lots of similarities to Flex layouts. • Horizontal • Vertical • Tiled (rows/columns) • Anchored • Lots of options for each!
  • 31. CREATING LAYOUTS • Import the specific Feathers layout classes you intend to use. • Declare your layout for later use. • Instantiate your layout and set the optional properties of that specific layout. import feathers.layout.VerticalLayout; private var layout:VerticalLayout; layout = new VerticalLayout(); layout.horizontalAlign = VerticalLayout.HORIZONTAL_ALIGN_CENTER; layout.verticalAlign = VerticalLayout.VERTICAL_ALIGN_MIDDLE; layout.hasVariableItemDimensions = true;
  • 32. APPLYING LAYOUTS • We’re applying our layout to a ScrollContainer – so be sure you have imported the Feathers ScrollContainer class. • Declare and then instantiate a new ScrollContainer instance. • Set the previously created layout object to the layout property of your ScrollContainer. • Add the ScrollContainer instance to the view. import feathers.controls.ScrollContainer; private var container:ScrollContainer; container = new ScrollContainer(); container.layout = layout; this.addChild(container);
  • 33. ADVANCED FEATHERS A few other things…
  • 34. POPUPS • Import the Feathers PopUpManager class. • Declare and instantiate an object to use as the visual popup component. • Utilize the PopUpManager class to add or remove a popup using the declared object. • Options for modal and centered. import feathers.core.PopUpManager; private var popUp:Image; popUp = new Image(texture); PopUpManager.addPopUp(popUp, true, true);
  • 35. FEATHERS AND FLEX <feathers:PanelScreen xmlns: fx="http://ns.adobe.com/mxml/2009" xmlns: feathers="library://ns.feathersui.com/mxml" > <feathers:Button label="Click Me" /> </feathers:PanelScreen> • Feathers has partial MXML support. • Components, Containers, Layouts, and Collections will all work. • No binding allowed! • Special build with Flex SDK and not ASC 2.0 for this to work…
  • 36. FEATHERS EXTENSIONS • SoftKeyboard [cote.cc/projects/softkeyboard] • Logi [github.com/justpinegames/Logi] • Feathers Extensions [wiki.starling-framework.org/feathers/extensions]
  • 37. THANK YOU Twitter: @JosephLabrecque Email: Joseph.Labrecque@du.edu Web: http://JosephLabrecque.com/