SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Beg, Borrow or Steal
  The Art of Flashing without Flashing
Who am I?
I am a blogger




    http://dynamicflash.com
I am an author
I am a Yahoo!




                            http://flickr.com/photos/niallkennedy/


Senior Front-End Engineer on the Front-End Architecture team
Catalyst for this talk - standards vs. Flash.
I am an idiot




 http://flickr.com/photos/thevoicewithin/
I am misleading
This session should
   have been...
HTML5
                      Features you want desperately
                           and can use TODAY!




Based on Ian Hickson’s Google presentation
So what’s wrong
  with HTML5?
Lots of nice features




                                http://flickr.com/photos/hassman/


Video and audio support
Push-technology (Web Sockets)
Many other great features
Not ready until 2022




2022 date taken from WHATWG roadmap
Some HTML5 features supported in bleeding-edge nightly build browsers
Still won’t be suitable for general use for a good few years
But you don’t have
 to wait that long
You can borrow features
 from the Flash Player
How does this
  all work?
How does this work?


                                                         HTML




HTML lives in browser-land
Limited in functionality by the browser’s capabilities
How does this work?


                        SWF                                   HTML




SWF playing in Flash Player has access to advanced features
How can we get the two to communicate?
How does this work?


                       SWF                              HTML




                                           JavaScript




JavaScript is can interact with HTML/DOM
How does this work?


                                       Text
                      SWF                                    HTML




                                       JavaScript




We need to find something to communicate between JS and SWF
How does this work?


                                           Text
                        SWF                                 HTML




                          alInt erface
                   Extern
                            class
                                           JavaScript




The ExternalInterface class provides a Flash-to-JS bridge
Available since Flash Player 8
How does this work?

                                       Invis
                                             ible
                                        Flash



                        SWF                                    HTML




                          alInt erface
                  Extern
                           class
                                          JavaScript




Now the Flash content doesn’t even have to be visible on the page.
Show ’01 ExternalInterface’ demo
Great, so what can
  we do with it?
Video playback



In HTML5 this is implemented by the <video> element
YouTube etc. have been using Flash for video for years
Use out-of-the-box solution like JW FLV Media Player
Audio playback



In HTML5 this is implemented by the <audio> element
Latest WebKit nightly also has Audio JS class for pure JS audio
Scott Schiller’s SoundManager library uses Flash to play JS-controlled audio
Multiple file upload



Part of Web Forms, but missing in HTML5 spec
Flash-based solutions include SWFUpload and YUI Uploader
Flash Player 10 introduces clickjacking security restriction that means file browse dialog can
only be invoked by a click on the Flash movie itself (not through ExternalInterface)
YUI Uploader allows creation of transparent overlay on links to get around this
Used on the current Flickr Web Upload page
Cross-frame
                   communication


HTML5 introduces window.postMessage method and ‘message’ event
Flash allows LocalConnection objects to communicate
Using LocalConnections in conjunction with ExternalInterface allows HTML5-like functionality
NOW
Show ’05 Cross Frame Comms’ example and code
Offline storage



HTML5 introduces localStorage object and methods
Different to cookies - not sent to/from the server
Flash has has Local Shared Object for client-side data storage, so it’s easy to build emulation
layer
Show ’06 Offline Storage’ example and code
Socket-based
                    communication


Client side, comet is a mess of browser hacks - a virtual house of cards
HTML5 introduces Web Sockets for bidirectional communication
Flash has both XML and raw (byte-based) socket support
Show ’07 Sockets’ example and code
Thank you!
http://dynamicflash.com/my-talks#head08

Contenu connexe

Tendances

NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MBNodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
David Wesst
 

Tendances (20)

NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MBNodeJS for Novices - 28/Oct/13 - Winnipeg, MB
NodeJS for Novices - 28/Oct/13 - Winnipeg, MB
 
Web Standards
Web StandardsWeb Standards
Web Standards
 
Internship review
Internship reviewInternship review
Internship review
 
Rapid WordPress Theme Development
Rapid WordPress Theme DevelopmentRapid WordPress Theme Development
Rapid WordPress Theme Development
 
Jared Whitlock Open Source In The Enterprise Plone @ Novell
Jared Whitlock   Open Source In The Enterprise    Plone @ NovellJared Whitlock   Open Source In The Enterprise    Plone @ Novell
Jared Whitlock Open Source In The Enterprise Plone @ Novell
 
Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSS
 
Top java script frameworks ppt
Top java script frameworks pptTop java script frameworks ppt
Top java script frameworks ppt
 
What the heck is HTML 5?
What the heck is HTML 5?What the heck is HTML 5?
What the heck is HTML 5?
 
WEB DEVELOPMENT
WEB DEVELOPMENTWEB DEVELOPMENT
WEB DEVELOPMENT
 
PhoneGap
PhoneGapPhoneGap
PhoneGap
 
Drupal 8, Symfony and Content Management
Drupal 8, Symfony and Content ManagementDrupal 8, Symfony and Content Management
Drupal 8, Symfony and Content Management
 
Thinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSSThinkful FrontEnd Crash Course - HTML & CSS
Thinkful FrontEnd Crash Course - HTML & CSS
 
Frontend Crash Course
Frontend Crash CourseFrontend Crash Course
Frontend Crash Course
 
Wordpress Questions & Answers
Wordpress Questions & AnswersWordpress Questions & Answers
Wordpress Questions & Answers
 
Knockout js (Dennis Haney)
Knockout js (Dennis Haney)Knockout js (Dennis Haney)
Knockout js (Dennis Haney)
 
Front end for back end developers
Front end for back end developersFront end for back end developers
Front end for back end developers
 
Thinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSSThinkful DC FrontEnd Crash Course - HTML & CSS
Thinkful DC FrontEnd Crash Course - HTML & CSS
 
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
Kamon Ayeva   Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...Kamon Ayeva   Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
 
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine DevelopmentEECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
 
Beyond responsive design - UI for the modern web application - Pete Smith - C...
Beyond responsive design - UI for the modern web application - Pete Smith - C...Beyond responsive design - UI for the modern web application - Pete Smith - C...
Beyond responsive design - UI for the modern web application - Pete Smith - C...
 

En vedette

En vedette (8)

HTML5 semantics
HTML5 semanticsHTML5 semantics
HTML5 semantics
 
[译]Efficient, maintainable CSS
[译]Efficient, maintainable CSS[译]Efficient, maintainable CSS
[译]Efficient, maintainable CSS
 
CSS Metaframeworks: King of all @media
CSS Metaframeworks: King of all @mediaCSS Metaframeworks: King of all @media
CSS Metaframeworks: King of all @media
 
Making the HTML5 Video element interactive
Making the HTML5 Video element interactiveMaking the HTML5 Video element interactive
Making the HTML5 Video element interactive
 
CSS Systems
CSS SystemsCSS Systems
CSS Systems
 
CSS pattern libraries
CSS pattern librariesCSS pattern libraries
CSS pattern libraries
 
Html / CSS Presentation
Html / CSS PresentationHtml / CSS Presentation
Html / CSS Presentation
 
The Great State of Design with CSS Grid Layout and Friends
The Great State of Design with CSS Grid Layout and FriendsThe Great State of Design with CSS Grid Layout and Friends
The Great State of Design with CSS Grid Layout and Friends
 

Similaire à Beg, Borrow or Steal: The Art of Flashing Without Flashing

IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
ijceronline
 

Similaire à Beg, Borrow or Steal: The Art of Flashing Without Flashing (20)

What Technical Communicators Need to Know about Flash
What Technical Communicators Need to Know about FlashWhat Technical Communicators Need to Know about Flash
What Technical Communicators Need to Know about Flash
 
Svelte the future of frontend development
Svelte   the future of frontend developmentSvelte   the future of frontend development
Svelte the future of frontend development
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 
GRADE 10 COMPUTER
GRADE 10 COMPUTERGRADE 10 COMPUTER
GRADE 10 COMPUTER
 
Everything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 minEverything you need to know about HTML5 in 15 min
Everything you need to know about HTML5 in 15 min
 
Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
Flex vs. HTML5 for RIAS
Flex vs. HTML5 for RIASFlex vs. HTML5 for RIAS
Flex vs. HTML5 for RIAS
 
Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
Wa html5-pdf
Wa html5-pdfWa html5-pdf
Wa html5-pdf
 
RIA Platform Comparison
RIA Platform ComparisonRIA Platform Comparison
RIA Platform Comparison
 
Dojo & HTML5
Dojo & HTML5Dojo & HTML5
Dojo & HTML5
 
Manual en Dive Into html5
Manual en Dive Into html5Manual en Dive Into html5
Manual en Dive Into html5
 
Html5 Video Vs Flash Video presentation
Html5 Video Vs Flash Video presentationHtml5 Video Vs Flash Video presentation
Html5 Video Vs Flash Video presentation
 
Html5 Basics
Html5 BasicsHtml5 Basics
Html5 Basics
 
What is future of web with reference to html5 will it devalue current present...
What is future of web with reference to html5 will it devalue current present...What is future of web with reference to html5 will it devalue current present...
What is future of web with reference to html5 will it devalue current present...
 
Html5 overview
Html5 overviewHtml5 overview
Html5 overview
 
Html5
Html5Html5
Html5
 
5. HTML5
5. HTML55. HTML5
5. HTML5
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

Beg, Borrow or Steal: The Art of Flashing Without Flashing

  • 1. Beg, Borrow or Steal The Art of Flashing without Flashing
  • 3. I am a blogger http://dynamicflash.com
  • 4. I am an author
  • 5. I am a Yahoo! http://flickr.com/photos/niallkennedy/ Senior Front-End Engineer on the Front-End Architecture team Catalyst for this talk - standards vs. Flash.
  • 6. I am an idiot http://flickr.com/photos/thevoicewithin/
  • 8. This session should have been...
  • 9. HTML5 Features you want desperately and can use TODAY! Based on Ian Hickson’s Google presentation
  • 10. So what’s wrong with HTML5?
  • 11. Lots of nice features http://flickr.com/photos/hassman/ Video and audio support Push-technology (Web Sockets) Many other great features
  • 12. Not ready until 2022 2022 date taken from WHATWG roadmap Some HTML5 features supported in bleeding-edge nightly build browsers Still won’t be suitable for general use for a good few years
  • 13. But you don’t have to wait that long
  • 14. You can borrow features from the Flash Player
  • 15. How does this all work?
  • 16. How does this work? HTML HTML lives in browser-land Limited in functionality by the browser’s capabilities
  • 17. How does this work? SWF HTML SWF playing in Flash Player has access to advanced features How can we get the two to communicate?
  • 18. How does this work? SWF HTML JavaScript JavaScript is can interact with HTML/DOM
  • 19. How does this work? Text SWF HTML JavaScript We need to find something to communicate between JS and SWF
  • 20. How does this work? Text SWF HTML alInt erface Extern class JavaScript The ExternalInterface class provides a Flash-to-JS bridge Available since Flash Player 8
  • 21. How does this work? Invis ible Flash SWF HTML alInt erface Extern class JavaScript Now the Flash content doesn’t even have to be visible on the page. Show ’01 ExternalInterface’ demo
  • 22. Great, so what can we do with it?
  • 23. Video playback In HTML5 this is implemented by the <video> element YouTube etc. have been using Flash for video for years Use out-of-the-box solution like JW FLV Media Player
  • 24. Audio playback In HTML5 this is implemented by the <audio> element Latest WebKit nightly also has Audio JS class for pure JS audio Scott Schiller’s SoundManager library uses Flash to play JS-controlled audio
  • 25. Multiple file upload Part of Web Forms, but missing in HTML5 spec Flash-based solutions include SWFUpload and YUI Uploader Flash Player 10 introduces clickjacking security restriction that means file browse dialog can only be invoked by a click on the Flash movie itself (not through ExternalInterface) YUI Uploader allows creation of transparent overlay on links to get around this Used on the current Flickr Web Upload page
  • 26. Cross-frame communication HTML5 introduces window.postMessage method and ‘message’ event Flash allows LocalConnection objects to communicate Using LocalConnections in conjunction with ExternalInterface allows HTML5-like functionality NOW Show ’05 Cross Frame Comms’ example and code
  • 27. Offline storage HTML5 introduces localStorage object and methods Different to cookies - not sent to/from the server Flash has has Local Shared Object for client-side data storage, so it’s easy to build emulation layer Show ’06 Offline Storage’ example and code
  • 28. Socket-based communication Client side, comet is a mess of browser hacks - a virtual house of cards HTML5 introduces Web Sockets for bidirectional communication Flash has both XML and raw (byte-based) socket support Show ’07 Sockets’ example and code