SlideShare a Scribd company logo
1 of 16
HaXe – An open source
flash workflow
HaXe
From haxe.org:
The idea behind haXe is to let the developer choose
the best platform to do a given job. In general, this is
not easy to do because every new platform comes with
its own programming language. What haXe provides to
you is :
● a standardized language with many good features
● a standard library (including Date, Xml, Math...) that
works the same on all platforms
● platform-specific libraries : the full APIs for a given
platform are accessible from haXe
Haxe
● Based on ECMA script and thus very
similar to ActionScript 3
● Different targets:
– SWF bytecode (Flash)
– ActionScript code (Flash)
– JavaScript
– PHP
– C++
– NekoVM
NekoVM
● Lightweight virtual machine
● Can be used for server side scripting
(mod_neko on Apache)
● Can be used to deploy native applications
on the client side (ScreenweaverHx and
hippoHx)
● Recently gained a experimental LLVM
implementation
HaXeLib
● Used to manage additional HaXe libraries
(similar to ruby gems)
● Easy installation of libraries
● Large number of libraries available
– Physics
– 3D Graphics
– MVC frameworks
– GUI frameworks
– Animation/Tweening
HaxeVideo
● Lightweight server for streaming video
over RTMP.
HaXe wrt. Flash
● Target all the different versions of Flash
(you could target Flash 7/8 and use
Gnash instead of Adobe Flash
Player/Plugin)
● More comparable to Flex rather than the
Flash IDE
● Currently optimizes code better that the
Flash and Flex compilers
● Can control PixelBender
The toolchain
● Make
● Swfmill
● FFMPEG
● HaXe compiler
● Flash debug player or browser plugin
Make
● GNU Make
● Simple bash-like configuration
● Ex.
all: menu.swf lib external
external: buildExternal
make -C external
menu.swf: src/*.hx resource.swf compile.hxml catalogue.xml
haxe compile.hxml
lib:
make -C lib
resource.swf: resource.swfml resources/samusic/*
swfmill simple resource.swfml resource.swf
clean:
rm -f resource.swf menu.swf resource2.swf menu2.swf *~
Swfmill
● Used to embed resources inside SWF files
– Images
– Audio
– Fonts
– Binary
Swfmill (Ex.)
<?xml version="1.0" encoding="iso-8859-1" ?>
<movie width="1024" height="768" framerate="24" version="9" >
<background color="#000000"/>
<font id="Comic" name="Comic" import="resources/comic.ttf" />
<font id="Arial" name="Arial" import="resources/arialn.ttf" />
<font id="Courier" name="Courier" import="resources/cour.ttf" />
<frame>
<library>
<clip id="Arrow" import="resources/arrow.png" />
<clip id="ProgressBar">
<clip id="ProgressOuter" import="res/progress_o.png"/>
<clip id="ProgressInner" import="res/progress_i.png"/>
</clip>
<clip id="play" import="resources/play.png" />
</library>
</frame>
</movie>
FFMPEG
● Used to encode video files to FLV
● Used H.264 codec
● ffmpeg -i filename.extension filename.flv
HaXe Compiler
● Use a text configuration file for compilation
● Ex.
-swf menu.swf
-swf-version 9
-swf-lib resource.swf
-resource catalogue.xml@catalogue
-cp src
-cp lib/src
-main Menu
HaXe Code
class Background extends flash.display.Sprite {}
class Comic extends flash.text.Font {}
class Menu
{
public var width(default,default) : Float;
public var height(default,none) : Float;
public static function main()
{
flash.Lib.current.addChild(new Background());
}
}
A practical example
Requirements:
A platform independent cover DVD with rich
multimedia content
● Photos
● Videos
● Audio
Why Flash?!
● Cross platform – Flash player available for
most platforms
● Familiarity for designers
● Support for Audio and Video codecs

More Related Content

What's hot

Front End Development Automation with Grunt
Front End Development Automation with GruntFront End Development Automation with Grunt
Front End Development Automation with GruntLadies Who Code
 
How to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of DevelopmentHow to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of DevelopmentAcquia
 
20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part ITaien Wang
 
Chapter 1
Chapter 1Chapter 1
Chapter 1Uma Sam
 
蔡学镛 Rebol漫谈
蔡学镛   Rebol漫谈蔡学镛   Rebol漫谈
蔡学镛 Rebol漫谈d0nn9n
 
Makefile for python projects
Makefile for python projectsMakefile for python projects
Makefile for python projectsMpho Mphego
 
WP-CLI Workshop at WordPress Meetup Cluj-Napoca
WP-CLI Workshop at WordPress Meetup Cluj-NapocaWP-CLI Workshop at WordPress Meetup Cluj-Napoca
WP-CLI Workshop at WordPress Meetup Cluj-Napoca4nd4p0p
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesOtto Kekäläinen
 
A New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEsA New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEsDr. Jan Köhnlein
 
PHP in one presentation
PHP in one presentationPHP in one presentation
PHP in one presentationMilad Rahimi
 
Puppet Camp Ghent 2013
Puppet Camp Ghent 2013Puppet Camp Ghent 2013
Puppet Camp Ghent 2013Server Density
 
PBX on a non-specialized distro
PBX on a non-specialized distroPBX on a non-specialized distro
PBX on a non-specialized distroStefanoFancello
 
Build a typo3 website in an hour
Build a typo3 website in an hourBuild a typo3 website in an hour
Build a typo3 website in an hourTony Lush
 
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...Ortus Solutions, Corp
 
Memcached B box presentation
Memcached B box presentationMemcached B box presentation
Memcached B box presentationNagesh Chinkeri
 
Writing and Publishing Puppet Modules
Writing and Publishing Puppet ModulesWriting and Publishing Puppet Modules
Writing and Publishing Puppet ModulesPuppet
 
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5David Voyles
 

What's hot (20)

Front End Development Automation with Grunt
Front End Development Automation with GruntFront End Development Automation with Grunt
Front End Development Automation with Grunt
 
How to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of DevelopmentHow to Use the Command Line to Increase Speed of Development
How to Use the Command Line to Increase Speed of Development
 
20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Eclipse 4
Eclipse 4Eclipse 4
Eclipse 4
 
蔡学镛 Rebol漫谈
蔡学镛   Rebol漫谈蔡学镛   Rebol漫谈
蔡学镛 Rebol漫谈
 
Makefile for python projects
Makefile for python projectsMakefile for python projects
Makefile for python projects
 
WP-CLI Workshop at WordPress Meetup Cluj-Napoca
WP-CLI Workshop at WordPress Meetup Cluj-NapocaWP-CLI Workshop at WordPress Meetup Cluj-Napoca
WP-CLI Workshop at WordPress Meetup Cluj-Napoca
 
Automatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themesAutomatic testing and quality assurance for WordPress plugins and themes
Automatic testing and quality assurance for WordPress plugins and themes
 
A New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEsA New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEs
 
PHP in one presentation
PHP in one presentationPHP in one presentation
PHP in one presentation
 
Puppet Camp Ghent 2013
Puppet Camp Ghent 2013Puppet Camp Ghent 2013
Puppet Camp Ghent 2013
 
PBX on a non-specialized distro
PBX on a non-specialized distroPBX on a non-specialized distro
PBX on a non-specialized distro
 
Build a typo3 website in an hour
Build a typo3 website in an hourBuild a typo3 website in an hour
Build a typo3 website in an hour
 
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
 
Why PhpStorm?
Why PhpStorm?Why PhpStorm?
Why PhpStorm?
 
Memcached B box presentation
Memcached B box presentationMemcached B box presentation
Memcached B box presentation
 
Writing and Publishing Puppet Modules
Writing and Publishing Puppet ModulesWriting and Publishing Puppet Modules
Writing and Publishing Puppet Modules
 
Composer
ComposerComposer
Composer
 
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
Getting started with Emscripten – Transpiling C / C++ to JavaScript / HTML5
 

Similar to An open source flash workflow using HaXe (2009)

Similar to An open source flash workflow using HaXe (2009) (20)

Php Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerPhp Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant Killer
 
Composer Helpdesk
Composer HelpdeskComposer Helpdesk
Composer Helpdesk
 
Hack and HHVM
Hack and HHVMHack and HHVM
Hack and HHVM
 
Php
PhpPhp
Php
 
PHP.ppt
PHP.pptPHP.ppt
PHP.ppt
 
a brief introduction to PHP and how to use it.
a brief introduction to PHP and how to use it.a brief introduction to PHP and how to use it.
a brief introduction to PHP and how to use it.
 
Php hypertext pre-processor
Php   hypertext pre-processorPhp   hypertext pre-processor
Php hypertext pre-processor
 
PHP Dependency Management with Composer
PHP Dependency Management with ComposerPHP Dependency Management with Composer
PHP Dependency Management with Composer
 
Php.ppt
Php.pptPhp.ppt
Php.ppt
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
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
 
Glossary of terms
Glossary of termsGlossary of terms
Glossary of terms
 
Introduction to PHP.pptx
Introduction to PHP.pptxIntroduction to PHP.pptx
Introduction to PHP.pptx
 
unit1 part 1 sem4 php.docx
unit1 part 1 sem4 php.docxunit1 part 1 sem4 php.docx
unit1 part 1 sem4 php.docx
 
Chowdhury webtech
Chowdhury webtechChowdhury webtech
Chowdhury webtech
 
Chowdhury webtech
Chowdhury webtechChowdhury webtech
Chowdhury webtech
 
Chowdhury webtech
Chowdhury webtechChowdhury webtech
Chowdhury webtech
 
Chowdhury webtech
Chowdhury webtechChowdhury webtech
Chowdhury webtech
 
Php verses .net
Php verses .netPhp verses .net
Php verses .net
 
haXe - One codebase to rule'em all
haXe - One codebase to rule'em allhaXe - One codebase to rule'em all
haXe - One codebase to rule'em all
 

Recently uploaded

MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Recently uploaded (20)

MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

An open source flash workflow using HaXe (2009)

  • 1. HaXe – An open source flash workflow
  • 2. HaXe From haxe.org: The idea behind haXe is to let the developer choose the best platform to do a given job. In general, this is not easy to do because every new platform comes with its own programming language. What haXe provides to you is : ● a standardized language with many good features ● a standard library (including Date, Xml, Math...) that works the same on all platforms ● platform-specific libraries : the full APIs for a given platform are accessible from haXe
  • 3. Haxe ● Based on ECMA script and thus very similar to ActionScript 3 ● Different targets: – SWF bytecode (Flash) – ActionScript code (Flash) – JavaScript – PHP – C++ – NekoVM
  • 4. NekoVM ● Lightweight virtual machine ● Can be used for server side scripting (mod_neko on Apache) ● Can be used to deploy native applications on the client side (ScreenweaverHx and hippoHx) ● Recently gained a experimental LLVM implementation
  • 5. HaXeLib ● Used to manage additional HaXe libraries (similar to ruby gems) ● Easy installation of libraries ● Large number of libraries available – Physics – 3D Graphics – MVC frameworks – GUI frameworks – Animation/Tweening
  • 6. HaxeVideo ● Lightweight server for streaming video over RTMP.
  • 7. HaXe wrt. Flash ● Target all the different versions of Flash (you could target Flash 7/8 and use Gnash instead of Adobe Flash Player/Plugin) ● More comparable to Flex rather than the Flash IDE ● Currently optimizes code better that the Flash and Flex compilers ● Can control PixelBender
  • 8. The toolchain ● Make ● Swfmill ● FFMPEG ● HaXe compiler ● Flash debug player or browser plugin
  • 9. Make ● GNU Make ● Simple bash-like configuration ● Ex. all: menu.swf lib external external: buildExternal make -C external menu.swf: src/*.hx resource.swf compile.hxml catalogue.xml haxe compile.hxml lib: make -C lib resource.swf: resource.swfml resources/samusic/* swfmill simple resource.swfml resource.swf clean: rm -f resource.swf menu.swf resource2.swf menu2.swf *~
  • 10. Swfmill ● Used to embed resources inside SWF files – Images – Audio – Fonts – Binary
  • 11. Swfmill (Ex.) <?xml version="1.0" encoding="iso-8859-1" ?> <movie width="1024" height="768" framerate="24" version="9" > <background color="#000000"/> <font id="Comic" name="Comic" import="resources/comic.ttf" /> <font id="Arial" name="Arial" import="resources/arialn.ttf" /> <font id="Courier" name="Courier" import="resources/cour.ttf" /> <frame> <library> <clip id="Arrow" import="resources/arrow.png" /> <clip id="ProgressBar"> <clip id="ProgressOuter" import="res/progress_o.png"/> <clip id="ProgressInner" import="res/progress_i.png"/> </clip> <clip id="play" import="resources/play.png" /> </library> </frame> </movie>
  • 12. FFMPEG ● Used to encode video files to FLV ● Used H.264 codec ● ffmpeg -i filename.extension filename.flv
  • 13. HaXe Compiler ● Use a text configuration file for compilation ● Ex. -swf menu.swf -swf-version 9 -swf-lib resource.swf -resource catalogue.xml@catalogue -cp src -cp lib/src -main Menu
  • 14. HaXe Code class Background extends flash.display.Sprite {} class Comic extends flash.text.Font {} class Menu { public var width(default,default) : Float; public var height(default,none) : Float; public static function main() { flash.Lib.current.addChild(new Background()); } }
  • 15. A practical example Requirements: A platform independent cover DVD with rich multimedia content ● Photos ● Videos ● Audio
  • 16. Why Flash?! ● Cross platform – Flash player available for most platforms ● Familiarity for designers ● Support for Audio and Video codecs