beefing up air - fitc ams 2012

50
Native extensions in AIR 3.0 BEEFING UP AIR

Upload: wouter-verweirder

Post on 28-Jun-2015

10.276 views

Category:

Technology


0 download

DESCRIPTION

Presentation given at FITC Amsterdam 2012.AIR has been the cross device platform to deploy interactive applications. This session shows you how you can extend the default capabilities and add native interaction and performance to your applications.

TRANSCRIPT

Page 1: Beefing Up AIR - FITC AMS 2012

Native extensions in AIR 3.0

BEEFING UP AIR

Page 2: Beefing Up AIR - FITC AMS 2012

@WOUTER

•Wouter Verweirder

• blog.aboutme.be

• Lecturer @ HOWEST

• Partner @ Happy Banana

• AS3NUI / AIRKinect

Page 3: Beefing Up AIR - FITC AMS 2012
Page 4: Beefing Up AIR - FITC AMS 2012

1.What is a native extension

2.Build a native extension

1. Hello World

2. Working with AS Objects

3. Threading / Communication

4. What about Android

3.Use a native extension

4.AIRKinect extension

5.Q & (hopefully) A

SESSION OVERVIEW

Page 5: Beefing Up AIR - FITC AMS 2012

WHAT IS A NATIVE EXTENSION?

• Extend the features of the AIR runtime !

• For TV, Mobile, Desktop

Page 7: Beefing Up AIR - FITC AMS 2012

Flex

ActionScript

AIR

OS

extension

AS3

DLL

AS3

JAR...

WHAT IS A NATIVE EXTENSION?

Page 8: Beefing Up AIR - FITC AMS 2012

library.swf

ext.dll

library.swf

ext.jar...

extension.xml

catalog.xmllibrary.swf

ANE FILE STRUCTURE

Page 9: Beefing Up AIR - FITC AMS 2012

ANE FILE STRUCTURE

REGULAR SWC FILE

Page 10: Beefing Up AIR - FITC AMS 2012

ANE FILE STRUCTURE

ANE FILE

Page 11: Beefing Up AIR - FITC AMS 2012

WHY?

• access native platform specific code libraries

• Re-use legacy native code

• Increase performance (native performance / threading)

Page 12: Beefing Up AIR - FITC AMS 2012

WRITING AN EXTENSION

• ActionScript: ExtensionContext class

•Native:

• C entry point on Windows, OSX, iOS (& Android)

• Java entry point on Android

Page 13: Beefing Up AIR - FITC AMS 2012

WRITING AN EXTENSION

adt ane file

Page 14: Beefing Up AIR - FITC AMS 2012

1. Create ExtensionContext object

2. Look up link with native code in XML

Page 15: Beefing Up AIR - FITC AMS 2012

3. Link the context initializer

4. Link the native functions in the context initializer

Page 16: Beefing Up AIR - FITC AMS 2012

5. Call a method in native code

Page 17: Beefing Up AIR - FITC AMS 2012

context initializer

context finalizer

function calls & events

extension initializer

extension finalizer

Page 18: Beefing Up AIR - FITC AMS 2012

Demo Hello World

Page 19: Beefing Up AIR - FITC AMS 2012

• Construct new AS3 Objects

• Get AS3 Object Type

• Get / Set properties of AS3 Objects

• Call AS3 Object methods

WORKING WITH AS OBJECTS

Page 20: Beefing Up AIR - FITC AMS 2012

WORKING WITH AS OBJECTSSIMPLE DATA TYPES

Page 21: Beefing Up AIR - FITC AMS 2012

WORKING WITH AS OBJECTSAS CLASS INSTANCES

Page 22: Beefing Up AIR - FITC AMS 2012

WORKING WITH AS OBJECTSEXAMPLE:

Page 23: Beefing Up AIR - FITC AMS 2012

ARRAY / VECTOR METHODS

Page 24: Beefing Up AIR - FITC AMS 2012

BYTEARRAY / BITMAPDATA

acquire

release

memory access No other API methods are allowed here

Page 25: Beefing Up AIR - FITC AMS 2012

BYTEARRAY / BITMAPDATA

Page 26: Beefing Up AIR - FITC AMS 2012

BYTEARRAY / BITMAPDATA

EXAMPLE:

Page 27: Beefing Up AIR - FITC AMS 2012

Demo ByteArray Access

Page 28: Beefing Up AIR - FITC AMS 2012

THREADING• Is allowed in the native extension :-)

•NO FRE API calls allowed outside the main thread

• except for : FREDispatchStatusEventAsync

Page 29: Beefing Up AIR - FITC AMS 2012

THREADING

Page 30: Beefing Up AIR - FITC AMS 2012

Demo Threading

Page 31: Beefing Up AIR - FITC AMS 2012

WHAT ABOUT ANDROID ?

• C API for Windows, OSX & iOS

• Java Wrapper for Android:

• com.adobe.fre.FREExtension

• com.adobe.fre.FREContext

• com.adobe.fre.FREFunction

create instance of...

returns collection of...

Page 32: Beefing Up AIR - FITC AMS 2012

WHAT ABOUT ANDROID ?

EXAMPLE:

Page 33: Beefing Up AIR - FITC AMS 2012

EXAMPLE:

WHAT ABOUT ANDROID ?

Page 34: Beefing Up AIR - FITC AMS 2012

WHAT ABOUT ANDROID ?

EXAMPLE:

Page 35: Beefing Up AIR - FITC AMS 2012

Demo Mobile UDP extension

Page 36: Beefing Up AIR - FITC AMS 2012

library.swf

ext.dll

library.swf

ext.jar...

extension.xml

catalog.xmllibrary.swf

PACKAGING AN ANE

Page 37: Beefing Up AIR - FITC AMS 2012

1.Compile SWC of your AS3 code

2.Unzip SWC file, get library.swf file

3.Put swc, library.swf, extension.xml & native builds (dll, ...) in one directory

4.Run adt command

PACKAGING AN ANE

Page 38: Beefing Up AIR - FITC AMS 2012

adt -package -storetype pkcs12 -storepass p@ssw0rd -keystore key.p12 -tsa none -target ane HelloWorldExtension.ane extension.xml -swc helloworldas.swc -platform MacOS-x86 library.swf HelloWorld.framework -platform Windows-x86 library.swf HelloWorld.dll

http://help.adobe.com/en_US/air/build/WS789ea67d3e73a8b22388411123785d839c-8000.html

PACKAGING AN ANE

Page 39: Beefing Up AIR - FITC AMS 2012

BUILDING APPS WITH ANE’S

Page 40: Beefing Up AIR - FITC AMS 2012

BUILDING APPS WITH ANE’S

Page 41: Beefing Up AIR - FITC AMS 2012

BUILDING APPS WITH ANE’S

Page 42: Beefing Up AIR - FITC AMS 2012

AIRKINECT

•Native extension to use the Kinect in your AIR apps

• Current version: 1.7.1

• Full skeleton Data

• Camera Streams: RGB & Depth

• Point Cloud info

Page 43: Beefing Up AIR - FITC AMS 2012

Created By Tim Camerlinckx - http://vimeo.com/34614887

Page 44: Beefing Up AIR - FITC AMS 2012

Created By Yannick Van der Goten - http://vimeo.com/34563640

Page 45: Beefing Up AIR - FITC AMS 2012

Created By Laurents Laire - http://vimeo.com/34264122

Page 46: Beefing Up AIR - FITC AMS 2012

Created By Simon Pertz - http://vimeo.com/34681243

Page 47: Beefing Up AIR - FITC AMS 2012

AIRKINECT 2.0

• Simplified API

•New features:

• Skeleton Joint Rotations

• User center-of-mass

• Point Cloud Regions

• IR Camera Stream

Page 48: Beefing Up AIR - FITC AMS 2012

Time for some Kinect coding!

Page 49: Beefing Up AIR - FITC AMS 2012

Questions(and hopefully some answers...)

Page 50: Beefing Up AIR - FITC AMS 2012

Thank you!

@wouterhttp://blog.aboutme.behttp://www.as3nui.com

http://www.happy-banana.be