Transcript of 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.)
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