SlideShare a Scribd company logo
1 of 26
Download to read offline
Getting Started with
Starling and Feathers
HAWAII FLASH USER GROUP - FEBRUARY 11 2014
Introduction


Flash Runtimes – What’s New?



Stage3D Overview



Starling Overview



Feathers Overview



Setting up Starling



Working with Feathers
Joseph Labrecque


Senior Interactive Software Engineer | Adjunct Faculty



Proprietor | Owner



Adobe Community Professional
Adobe Education Leader
Adobe Certified Expert
Adobe Certified Educator
Adobe Influencer



Author



Artist

University of Denver

Fractured Vision Media, LLC

Lynda.com | Peachpit Press | Adobe Press | Packt Publishing |
O’Reilly Media | video2brain
An Early Morning Letter, Displaced | shivervein
Flash Player 12 / AIR 4


Released in December 2013



New number cycle



Quarterly releases



Flash Player 13 / AIR 13 on Labs
What’s new with the Runtimes?


Flash Player 12 / AIR 4



Graphics: Buffer Usage flag for Stage3D



Mobile Workers (concurrency) - Android



Support for native resources access by R* mechanism in ANE - Android





Improved Packaging Engine - iOS - BETA

Stage3D Creation of Context3D with Profile Array

Flash Player 13 beta / AIR 13 beta


Nothing major announced
Stage3D Overview


GPU accelerated graphics



Desktop and mobile



AGAL



3rd Party Frameworks:


Starling



Away3D



Citrus



Many, many others…
What is Starling?


Stage3D Game Engine (2D)



Open Source



DisplayList-like API



Plugin Architecture



Supported by Adobe
What is Feathers?


UI Components for Starling



Open Source



Fully Skinnable



Supported by Adobe
Configure Starling
STARLING


Sets up the GPU stuff for us.



Build a Starling instance.



Load in Feathers!
Starling Setup


Import the Starling classes.

import starling.core.Starling;



Declare a new Starling instance.

private var starling:Starling;



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.

Starling.handleLostContext = true;
Starling.multitouchEnabled = false;

starling = new Starling(Main, stage);
starling.start();
Main Starling Class


Import the Starling Sprite class.

import starling.display.Sprite;



Have the main Starling class extend Starling
Sprite.

public class Main extends Sprite {}



We are now ready for Feathers.
Instantiate Feathers
FEATHERS


Implement a theme.



Apply a ScreenNavigator



Decide upon a Layout or two.



Build out the content.
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.

public class ParticleScreen extends Screen {}



Override the draw function for
managing the size and layout of
objects.

override protected function initialize():void {}

import feathers.controls.Screen;

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
LayoutGroup – so be sure you have
imported the Feathers LayoutGroup class.



Declare and then instantiate a new
LayoutGroup instance.



Set the previously created layout object to
the layout property of your LayoutGroup .



Add the LayoutGroup instance to the
view.

import feathers.controls.LayoutGroup;

private var container:LayoutGroup;

container = new LayoutGroup();
container.layout = layout;

this.addChild(container);
Future Explorations
“StarlingJS”


Away Foundation



TypeScript



Canvas



WebGL
Building a Mobile App with
Feathers and Starling











Downloading the frameworks and
the AIR SDK
Configuring the project
Implementing a theme
Creating the screen classes
Adding a navbar component
Building the classes
Returning saved files
Publishing a project
Installing and running the app

http://www.lynda.com/JosephLabrecque
Emergent Collective Three
Compilation album series produced to
showcase the aural talent which exists within
the general “creative” and “developer”
communities.


Deadline: March 13th 2014



Email: info@fracturedvisionmedia.com



More info:
http://inflagrantedelicto.memoryspiral.com
/2014/01/emergent-collective-three/
Thanks. Questions?
CONTACT JOSEPH


@JosephLabrecque



JosephLabrecque.com



Joseph.Labrecque@du.edu

More Related Content

What's hot

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
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart JfokusLars Vogel
 
Desenvolva um game para android ou iPhone
Desenvolva um game para android ou iPhoneDesenvolva um game para android ou iPhone
Desenvolva um game para android ou iPhoneTiago Oliveira
 
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNAOGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNABuff Nguyen
 
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...Burin Asavesna
 
Making VR games and experiences in Unreal Engine
Making VR games and experiences in Unreal EngineMaking VR games and experiences in Unreal Engine
Making VR games and experiences in Unreal EngineLuis Cataldi
 
Brighttalk: SUSE Lösungen für die Public Cloud
Brighttalk: SUSE Lösungen für die Public CloudBrighttalk: SUSE Lösungen für die Public Cloud
Brighttalk: SUSE Lösungen für die Public CloudRalf Dannert
 
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesUnreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesEpic Games China
 
Applico Android Info Session at Columbia University
Applico Android Info Session at Columbia UniversityApplico Android Info Session at Columbia University
Applico Android Info Session at Columbia UniversityApplico
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 
Flutter beyond Hello world talk
Flutter beyond Hello world talkFlutter beyond Hello world talk
Flutter beyond Hello world talkAhmed Abu Eldahab
 

What's hot (13)

Introduction to Phaser.js
Introduction to Phaser.jsIntroduction to Phaser.js
Introduction to Phaser.js
 
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
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart Jfokus
 
Hello Flutter
Hello FlutterHello Flutter
Hello Flutter
 
Desenvolva um game para android ou iPhone
Desenvolva um game para android ou iPhoneDesenvolva um game para android ou iPhone
Desenvolva um game para android ou iPhone
 
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNAOGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
 
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
 
Making VR games and experiences in Unreal Engine
Making VR games and experiences in Unreal EngineMaking VR games and experiences in Unreal Engine
Making VR games and experiences in Unreal Engine
 
Brighttalk: SUSE Lösungen für die Public Cloud
Brighttalk: SUSE Lösungen für die Public CloudBrighttalk: SUSE Lösungen für die Public Cloud
Brighttalk: SUSE Lösungen für die Public Cloud
 
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile GamesUnreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
Unreal Open Day 2017 UE4 for Mobile: The Future of High Quality Mobile Games
 
Applico Android Info Session at Columbia University
Applico Android Info Session at Columbia UniversityApplico Android Info Session at Columbia University
Applico Android Info Session at Columbia University
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Flutter beyond Hello world talk
Flutter beyond Hello world talkFlutter beyond Hello world talk
Flutter beyond Hello world talk
 

Viewers also liked

Starling Deep Dive
Starling Deep DiveStarling Deep Dive
Starling Deep DiveLee Brimelow
 
Adobe AIR Seminar
Adobe AIR SeminarAdobe AIR Seminar
Adobe AIR SeminarYoss Cohen
 
Starling Framework
Starling FrameworkStarling Framework
Starling FrameworkKrylover
 
Adobe AIR for mobile games
Adobe AIR for mobile gamesAdobe AIR for mobile games
Adobe AIR for mobile gamesJames Wrightson
 
Sergey Gonchar - Fast rendering with Starling
Sergey Gonchar - Fast rendering with StarlingSergey Gonchar - Fast rendering with Starling
Sergey Gonchar - Fast rendering with StarlingFlash Conference
 
Adobe AIR Programming to Desktop and Mobile
Adobe AIR Programming to Desktop and MobileAdobe AIR Programming to Desktop and Mobile
Adobe AIR Programming to Desktop and MobilePasi Manninen
 
Neha Gupta - AIR Mobile: Cross promotion
Neha Gupta - AIR Mobile: Cross promotionNeha Gupta - AIR Mobile: Cross promotion
Neha Gupta - AIR Mobile: Cross promotionFlash Conference
 
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011Jesse Warden
 

Viewers also liked (9)

Starling Deep Dive
Starling Deep DiveStarling Deep Dive
Starling Deep Dive
 
Adobe AIR Seminar
Adobe AIR SeminarAdobe AIR Seminar
Adobe AIR Seminar
 
Starling Framework
Starling FrameworkStarling Framework
Starling Framework
 
Adobe AIR for mobile games
Adobe AIR for mobile gamesAdobe AIR for mobile games
Adobe AIR for mobile games
 
Intro To Starling Framework for ActionScript 3.0
Intro To Starling Framework for ActionScript 3.0Intro To Starling Framework for ActionScript 3.0
Intro To Starling Framework for ActionScript 3.0
 
Sergey Gonchar - Fast rendering with Starling
Sergey Gonchar - Fast rendering with StarlingSergey Gonchar - Fast rendering with Starling
Sergey Gonchar - Fast rendering with Starling
 
Adobe AIR Programming to Desktop and Mobile
Adobe AIR Programming to Desktop and MobileAdobe AIR Programming to Desktop and Mobile
Adobe AIR Programming to Desktop and Mobile
 
Neha Gupta - AIR Mobile: Cross promotion
Neha Gupta - AIR Mobile: Cross promotionNeha Gupta - AIR Mobile: Cross promotion
Neha Gupta - AIR Mobile: Cross promotion
 
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
 

Similar to Getting Started with Starling and Feathers

Developer Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for BeginnersDeveloper Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for BeginnersJiaxuan Lin
 
java presentation on Swings chapter java presentation on Swings
java presentation on Swings chapter java presentation on Swingsjava presentation on Swings chapter java presentation on Swings
java presentation on Swings chapter java presentation on SwingsMohanYedatkar
 
Game Project / Working with Unity
Game Project / Working with UnityGame Project / Working with Unity
Game Project / Working with UnityPetri Lankoski
 
Eo gaddis java_chapter_14_5e
Eo gaddis java_chapter_14_5eEo gaddis java_chapter_14_5e
Eo gaddis java_chapter_14_5eGina Bullock
 
Eo gaddis java_chapter_14_5e
Eo gaddis java_chapter_14_5eEo gaddis java_chapter_14_5e
Eo gaddis java_chapter_14_5eGina Bullock
 
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
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Mikkel Flindt Heisterberg
 
22Flutter.pdf
22Flutter.pdf22Flutter.pdf
22Flutter.pdfdbaman
 
UNIT 5-JavaFX Event Handling, Controls and Components.pdf
UNIT 5-JavaFX Event Handling, Controls and Components.pdfUNIT 5-JavaFX Event Handling, Controls and Components.pdf
UNIT 5-JavaFX Event Handling, Controls and Components.pdfSakkaravarthiS1
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyJames Williams
 
AIR2.5 Hands On - Flash on the Beach 2010
AIR2.5 Hands On - Flash on the Beach 2010AIR2.5 Hands On - Flash on the Beach 2010
AIR2.5 Hands On - Flash on the Beach 2010Mark Doherty
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textToma Velev
 
Top Tips for Android UIs - Getting the Magic on Tablets
Top Tips for Android UIs - Getting the Magic on TabletsTop Tips for Android UIs - Getting the Magic on Tablets
Top Tips for Android UIs - Getting the Magic on TabletsMotorola Mobility - MOTODEV
 

Similar to Getting Started with Starling and Feathers (20)

Developer Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for BeginnersDeveloper Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for Beginners
 
Awt and swing in java
Awt and swing in javaAwt and swing in java
Awt and swing in java
 
pebble - Building apps on pebble
pebble - Building apps on pebblepebble - Building apps on pebble
pebble - Building apps on pebble
 
Cloud Messaging Flutter
Cloud Messaging FlutterCloud Messaging Flutter
Cloud Messaging Flutter
 
java presentation on Swings chapter java presentation on Swings
java presentation on Swings chapter java presentation on Swingsjava presentation on Swings chapter java presentation on Swings
java presentation on Swings chapter java presentation on Swings
 
Adobe MAX Recap
Adobe MAX RecapAdobe MAX Recap
Adobe MAX Recap
 
Game Project / Working with Unity
Game Project / Working with UnityGame Project / Working with Unity
Game Project / Working with Unity
 
Eo gaddis java_chapter_14_5e
Eo gaddis java_chapter_14_5eEo gaddis java_chapter_14_5e
Eo gaddis java_chapter_14_5e
 
Eo gaddis java_chapter_14_5e
Eo gaddis java_chapter_14_5eEo gaddis java_chapter_14_5e
Eo gaddis java_chapter_14_5e
 
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
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
22Flutter.pdf
22Flutter.pdf22Flutter.pdf
22Flutter.pdf
 
UNIT 5-JavaFX Event Handling, Controls and Components.pdf
UNIT 5-JavaFX Event Handling, Controls and Components.pdfUNIT 5-JavaFX Event Handling, Controls and Components.pdf
UNIT 5-JavaFX Event Handling, Controls and Components.pdf
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java Technology
 
Griffon Presentation
Griffon PresentationGriffon Presentation
Griffon Presentation
 
AIR2.5 Hands On - Flash on the Beach 2010
AIR2.5 Hands On - Flash on the Beach 2010AIR2.5 Hands On - Flash on the Beach 2010
AIR2.5 Hands On - Flash on the Beach 2010
 
Flutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - textFlutter vs Java Graphical User Interface Frameworks - text
Flutter vs Java Graphical User Interface Frameworks - text
 
Top Tips for Android UIs - Getting the Magic on Tablets
Top Tips for Android UIs - Getting the Magic on TabletsTop Tips for Android UIs - Getting the Magic on Tablets
Top Tips for Android UIs - Getting the Magic on Tablets
 
Demystify Accessibility
Demystify AccessibilityDemystify Accessibility
Demystify Accessibility
 
Unit 7 Java
Unit 7 JavaUnit 7 Java
Unit 7 Java
 

More from 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
 

More from 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
 

Getting Started with Starling and Feathers

  • 1. Getting Started with Starling and Feathers HAWAII FLASH USER GROUP - FEBRUARY 11 2014
  • 2. Introduction  Flash Runtimes – What’s New?  Stage3D Overview  Starling Overview  Feathers Overview  Setting up Starling  Working with Feathers
  • 3. Joseph Labrecque  Senior Interactive Software Engineer | Adjunct Faculty  Proprietor | Owner  Adobe Community Professional Adobe Education Leader Adobe Certified Expert Adobe Certified Educator Adobe Influencer  Author  Artist University of Denver Fractured Vision Media, LLC Lynda.com | Peachpit Press | Adobe Press | Packt Publishing | O’Reilly Media | video2brain An Early Morning Letter, Displaced | shivervein
  • 4. Flash Player 12 / AIR 4  Released in December 2013  New number cycle  Quarterly releases  Flash Player 13 / AIR 13 on Labs
  • 5. What’s new with the Runtimes?  Flash Player 12 / AIR 4   Graphics: Buffer Usage flag for Stage3D  Mobile Workers (concurrency) - Android  Support for native resources access by R* mechanism in ANE - Android   Improved Packaging Engine - iOS - BETA Stage3D Creation of Context3D with Profile Array Flash Player 13 beta / AIR 13 beta  Nothing major announced
  • 6. Stage3D Overview  GPU accelerated graphics  Desktop and mobile  AGAL  3rd Party Frameworks:  Starling  Away3D  Citrus  Many, many others…
  • 7. What is Starling?  Stage3D Game Engine (2D)  Open Source  DisplayList-like API  Plugin Architecture  Supported by Adobe
  • 8. What is Feathers?  UI Components for Starling  Open Source  Fully Skinnable  Supported by Adobe
  • 9. Configure Starling STARLING  Sets up the GPU stuff for us.  Build a Starling instance.  Load in Feathers!
  • 10. Starling Setup  Import the Starling classes. import starling.core.Starling;  Declare a new Starling instance. private var starling:Starling;  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. Starling.handleLostContext = true; Starling.multitouchEnabled = false; starling = new Starling(Main, stage); starling.start();
  • 11. Main Starling Class  Import the Starling Sprite class. import starling.display.Sprite;  Have the main Starling class extend Starling Sprite. public class Main extends Sprite {}  We are now ready for Feathers.
  • 12. Instantiate Feathers FEATHERS  Implement a theme.  Apply a ScreenNavigator  Decide upon a Layout or two.  Build out the content.
  • 13. 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();
  • 14. 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.
  • 15. 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);
  • 16. Building Screens  Create a new class for each screen which extends the Feathers Screen class.  Override the initialize function for instantiating and building objects. public class ParticleScreen extends Screen {}  Override the draw function for managing the size and layout of objects. override protected function initialize():void {} import feathers.controls.Screen; override protected function draw():void {}
  • 17. 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);
  • 18. 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!
  • 19. 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; }
  • 20. Feathers Layouts  Lots of similarities to Flex layouts.  Horizontal  Vertical  Tiled (rows/columns)  Anchored  Lots of options for each!
  • 21. 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;
  • 22. Applying Layouts  We’re applying our layout to a LayoutGroup – so be sure you have imported the Feathers LayoutGroup class.  Declare and then instantiate a new LayoutGroup instance.  Set the previously created layout object to the layout property of your LayoutGroup .  Add the LayoutGroup instance to the view. import feathers.controls.LayoutGroup; private var container:LayoutGroup; container = new LayoutGroup(); container.layout = layout; this.addChild(container);
  • 24. Building a Mobile App with Feathers and Starling          Downloading the frameworks and the AIR SDK Configuring the project Implementing a theme Creating the screen classes Adding a navbar component Building the classes Returning saved files Publishing a project Installing and running the app http://www.lynda.com/JosephLabrecque
  • 25. Emergent Collective Three Compilation album series produced to showcase the aural talent which exists within the general “creative” and “developer” communities.  Deadline: March 13th 2014  Email: info@fracturedvisionmedia.com  More info: http://inflagrantedelicto.memoryspiral.com /2014/01/emergent-collective-three/