SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0


Published on

February 13th - In-the-Brain session at Skillsmatter on ActionScript 3.0

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0

  1. What's new in ActionScript 3.0? Saying goodbye to 'skip intro'
  2. Who is Peter Elst? <ul><li>Freelance Flash Platform Consultant </li></ul><ul><li>Active in the Flash community since 1998 </li></ul><ul><li>Adobe Community Expert, Adobe Certified Professional, Adobe Certified Instructor </li></ul><ul><li>Author of Flash MX Most Wanted Components, Object-Oriented ActionScript for Flash 8, Object-Oriented ActionScript 3.0 </li></ul><ul><li>Speaking engagements at Adobe MAX, FlashForward, FITC, Flash on the Beach, webDU,, Multi-Mania, Scotch on the Rocks,… </li></ul>
  3. Who are you? <ul><li>Designer/Developer? </li></ul><ul><li>Experience in JavaScript, ActionScript, Java, nothing…? </li></ul><ul><li>Flash is good/bad? </li></ul>
  4. What will we talk about <ul><li>What is ActionScript? </li></ul><ul><li>History of Flash and ActionScript </li></ul><ul><li>New features in ActionScript 3.0 </li></ul><ul><li>Interesting projects </li></ul><ul><li>Q&A </li></ul><ul><li>Feel free to interrupt, ask questions at any time - lets make it interesting </li></ul>
  5. “ ActionScript is a scripting language based on ECMAScript (JavaScript), used primarily for the development of websites and software using the Adobe Flash Player platform…” - Wikipedia, February 2008
  6. ECMAScript? <ul><li>ECMA-262 is a specification for a scripting language </li></ul><ul><li>JavaScript, ActionScript etc. are dialects </li></ul><ul><li>Adobe is heavily involved in defining ECMA-262 4th Edition, the basis on which ActionScript 3.0 is built </li></ul><ul><li>The new virtual machine in the Flash Player has been open sourced (November 2006) and donated to Mozilla for use in a future version of the Firefox browser </li></ul><ul><li> </li></ul>
  7. Flash Player 9 <ul><li>New virtual machine added for ActionScript 3.0 </li></ul><ul><li>Optimized for performance </li></ul>
  8. Flash Player 9 Statistics <ul><li>December 2007 survey indicates 93,4% adoption in Europe </li></ul>
  9. Really? <ul><li>Yes and no </li></ul><ul><li>There is a huge install base, much higher than any other browser plug-in </li></ul><ul><li>Doesn't show individual dot releases </li></ul><ul><li>Flash Player adoption within corporate environments can be significantly lower </li></ul>
  10. In the beginning there was…
  11. &quot;A Brief History of Timeline&quot; <ul><li>1997 - Macromedia acquires FutureWave </li></ul><ul><li>Add support for stereo sound, bitmaps, library and release it as Flash 2 </li></ul>
  12. &quot;A Brief History of Timeline&quot; <ul><li>1998 - Macromedia Flash 3 released </li></ul><ul><li>Adds support for movie clips, alpha transparency and JavaScript integration </li></ul>
  13. &quot;A Brief History of Timeline&quot; <ul><li>1999 - Macromedia Flash 4 released </li></ul><ul><li>Support for input text fields, streaming MP3 and variables, loops, conditionals </li></ul>
  14. &quot;A Brief History of Timeline&quot; <ul><li>2000 - Macromedia Flash 5 released </li></ul><ul><li>ActionScript 1.0, HTML text fields and bezier pen tool are introduced </li></ul>
  15. &quot;A Brief History of Timeline&quot; <ul><li>2002 - Macromedia Flash MX released </li></ul><ul><li>Adds FLV video support, external MP3, Unicode and components </li></ul>
  16. &quot;A Brief History of Timeline&quot; <ul><li>2004 - Macromedia Flash 2004 released </li></ul><ul><li>ActionScript 2.0, data components, data binding, screens based authoring </li></ul>
  17. &quot;A Brief History of Timeline&quot; <ul><li>2005 - Macromedia Flash 8 is released </li></ul><ul><li>Adds new video codec with alpha transparency, filters, blend modes </li></ul>
  18. Adobe acquires Macromedia <ul><li>Announced on April 18th 2005 </li></ul><ul><li>$3.4 billion offered for Macromedia </li></ul><ul><li>Start work on integration Creative Suite with Macromedia Studio products </li></ul>
  19. ActionScript gets decoupled <ul><li>ActionScript is no longer unique to the Flash authoring environment </li></ul><ul><li>Flash Platform emerges </li></ul><ul><ul><li>Flash </li></ul></ul><ul><ul><li>Flex </li></ul></ul><ul><ul><li>Flash Lite </li></ul></ul><ul><ul><li>AIR </li></ul></ul>
  20. Flex SDK goes open source <ul><li>April 25th 2007 - Flex SDK (command line compiler, component framework,…) get released under an MPL license </li></ul><ul><li>Lowers the threshold for adopting ActionScript 3.0 and MXML </li></ul>
  21. Open Source Flash? <ul><li>Flash community has always been very open to sharing code </li></ul><ul><li>Initiative by Aral Balkan, May 2005 </li></ul><ul><ul><li> </li></ul></ul><ul><li>Open Source open doors </li></ul>
  22. What changed in ActionScript 3.0? <ul><li>API consistency, everything is a class </li></ul><ul><li>DisplayList API </li></ul><ul><li>ECMAScript for XML (E4X) </li></ul><ul><li>DOM3 event model </li></ul><ul><li>Runtime errors </li></ul><ul><li>Namespaces </li></ul><ul><li>Binary sockets, ByteArray </li></ul><ul><li>Reflection API </li></ul><ul><li>… </li></ul>
  23. API consistency <ul><li>No more underscores </li></ul><ul><ul><li>myMC._x -> myMC.x </li></ul></ul><ul><ul><li>myMC._alpha -> myMC.alpha </li></ul></ul><ul><li>Values from 0 to 1 rather than 0 to 100 </li></ul><ul><ul><li>myMC.alpha = .5; // 50 percent transparent </li></ul></ul><ul><li>No more createNewMovieClip, attachMovie </li></ul><ul><ul><li>var myMC:MovieClip = new MovieClip(); </li></ul></ul><ul><ul><li>var tf:TextField = new TextField(); </li></ul></ul>
  24. DisplayList API <ul><li>Instances can be created in memory </li></ul><ul><li>Automatic depth management, more more getNextHighestDepth() </li></ul><ul><li>Allows re-parenting of display objects </li></ul><ul><ul><li>var myMC:MovieClip = new MovieClip(); </li></ul></ul><ul><ul><li>mcHolder1.addChild(myMC); </li></ul></ul><ul><ul><li>// move myMC to be a child of mcHolder2 </li></ul></ul><ul><ul><li>mcHolder2.addChild(myMC); </li></ul></ul>
  25. ECMAScript for XML (E4X) <ul><li>XML is a native data type </li></ul><ul><li>Retrieve, filter nodes using dot notation </li></ul><ul><li><?xml version=&quot;1.0&quot;> <addressbook> <contact name=&quot;John&quot;> <email></email> </contact> <contact name=&quot;Wayne&quot;> <email></email> </contact> </addressbook> </li></ul>
  26. ECMAScript for XML (E4X) <ul><li>Before </li></ul><ul><li>myXML.firstChild.childNodes[0].firstChild.nodeValue </li></ul><ul><li>ActionScript 3.0 </li></ul><ul><li>;John&quot;).email </li></ul>
  27. DOM3 Event Model <ul><li>W3C - DOM Level 3 Event specification </li></ul><ul><li>Constants for event names </li></ul><ul><ul><li>MouseEvent.MOVE </li></ul></ul><ul><ul><li>TimerEvent.TIMER </li></ul></ul><ul><li>Supports event bubbling </li></ul>
  28. Runtime error checking <ul><li>Flash Player 9 does runtime error checking </li></ul><ul><li>Error dialog when debug Flash Player is installed </li></ul>
  29. Namespaces <ul><li>Namespaces are introduced for XML and to differentiate methods </li></ul><ul><li>Using the 'use' keyword the compiler knows the scope of which particular namespace to use </li></ul>
  30. Binary Sockets <ul><li> class allows data to be sent over a socket connection </li></ul><ul><li>Makes it possible to implement all sorts of protocols directly in ActionScript 3.0: </li></ul><ul><ul><li>IRC, POP3, SMTP, FTP,… </li></ul></ul>
  31. Reflection API <ul><li>Classes can describe themselves </li></ul><ul><li>Return an XML document with all public methods, properties, inheritance chain. </li></ul><ul><li>describeType() </li></ul>
  32. AlivePDF <ul><li>ActionScript 3.0 library for creating PDF documents on the fly </li></ul><ul><li>Created by Thibault Imbert </li></ul><ul><li> </li></ul>
  33. FZip <ul><li>AS3 Library to read in .zip files </li></ul><ul><li>Created by Claus Wahlers </li></ul><ul><li> </li></ul>
  34. FC64 <ul><li>Commodore 64 emulator </li></ul><ul><li>Created by Claus Wahlers and Darron Schall </li></ul><ul><li> </li></ul>
  35. FlashVNC <ul><li>VNC client written in ActionScript 3.0 </li></ul><ul><li>Created by Darron Schall </li></ul><ul><li> </li></ul>
  36. Papervision3D <ul><li>High performance ActionScript 3D engine </li></ul><ul><li>Project started by Carlos Ulloa </li></ul><ul><li> </li></ul>
  37. What will the future bring? <ul><li>Further compliance to ECMA-262 </li></ul><ul><li>Inverse Kinematics API,… </li></ul><ul><li>Tamarin-Tracing VM </li></ul>
  38. Want to learn more? <ul><li>Books </li></ul><ul><ul><li>Object-Oriented ActionScript 3.0 </li></ul></ul><ul><ul><li>Essential ActionScript 3.0 </li></ul></ul><ul><li>Online resources </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul><ul><li>Course </li></ul><ul><ul><li>SkillsMatter - Core ActionScript: Object Oriented ActionScript in Practice </li></ul></ul><ul><ul><ul><li>April 17-18th </li></ul></ul></ul><ul><ul><ul><li>July 10-11th </li></ul></ul></ul>
  39. Q&A <ul><li>What do you think? </li></ul><ul><li>What features are you most excited about? </li></ul><ul><li>What is still missing? </li></ul><ul><li>… win a book! </li></ul>
  40. Thanks! <ul><li>Feel free to get in touch </li></ul><ul><ul><li>Blog: </li></ul></ul><ul><ul><li>Email: [email_address] </li></ul></ul><ul><ul><li>LinkedIn: </li></ul></ul><ul><ul><li>Twitter: peterelst </li></ul></ul>