SlideShare a Scribd company logo
1 of 49
Download to read offline
Flash on Tap 2009

                Jamie Kosoy
                Associate Technical Director
                j.kosoy@bigspaceship.com




Thursday, June 4, 2009
the situation




Thursday, June 4, 2009
the situation




Thursday, June 4, 2009
the situation




Thursday, June 4, 2009
the situation




Thursday, June 4, 2009
the situation




                4 weeks until launch.




Thursday, June 4, 2009
the situation




Thursday, June 4, 2009
10 fundamentals to our process.




Thursday, June 4, 2009
1. Give everyone a say.




Thursday, June 4, 2009
give everyone a say




                         Strategy
                         Production
                         Design
                         Development




Thursday, June 4, 2009
give everyone a say




                          Strategy
                          Production
                          Design
                          Development
                         bad.




Thursday, June 4, 2009
give everyone a say




                          Strategy
                          Production
                          Design
                          Development
                         good.




Thursday, June 4, 2009
2. Never say it’s too hard.
                “Non-trivial” is better.




Thursday, June 4, 2009
3. Build fast.




Thursday, June 4, 2009
build fast




          In Flash:
          + Set relative publish settings.
          + One Document root to rule them all.


          In HTML/CSS/JavaScript:
          + Publish main SWF to the root directory.




Thursday, June 4, 2009
build fast




          + Leverage the community.
               - GTween
               - BulkLoader
               - Corelib
               - SWFObject
               - SWFAddress




Thursday, June 4, 2009
build fast




          Simple Code Rules
               - $argument
               - _private
               - public
               - __private static
               - CONSTANT




Thursday, June 4, 2009
build fast




                Oh yeah, protected variables:
                _vvv$_$$pppp$_$p____$_$$$$protected__$p_________myInfo_loadercontentloaderinformation




Thursday, June 4, 2009
build fast


                         Model



                                              Main




                                 Header      Footer
                                                         BigScreen




                                          (Some Footer
                                           Component)




Thursday, June 4, 2009
build fast




                obligatory code slide




Thursday, June 4, 2009
build fast
                public function Main()
                {
                         if(stage) _initialize();
                         else addEventListener(Event.ADDED_TO_STAGE,_initialize,false,0,true);
                }
                private function _initialize($evt:Event = null):void
                {
                         Security.allowDomain('*');


                         stage.scaleMode = StageScaleMode.NO_SCALE;
                         GTween.timingMode = GTween.FRAME;


                         Out.enableAllLevels();
                         if(Environment.IS_IN_BROWSER) Out.disableAllLevels();


                         _layers = [];
                         _layers[Model.ABOUT] = new About(about_mc);
                         _layers[Model.HEADER] = new Header(header_mc);
                         _layers[Model.FOOTER] = new Footer(footer_mc);
                         _layers[Model.SCREENS] = new Sprite(); // jk: screens will get added to this sprite.
                         _layers[Model.SUBMIT] = new Submit(submit_mc);
                         for(var i:int=0;i<_layers.length;i++)
                         {
                                  _layers[i].tabEnabled = false;
                                  addChild(_layers[i]);
                         }


                     _layers[Model.FOOTER].addEventListener(“foo”,_footerOnFoo,false,0,true); // jk: an example event.
                }




Thursday, June 4, 2009
4. Build ugly.




Thursday, June 4, 2009
build ugly




Thursday, June 4, 2009
build ugly




Thursday, June 4, 2009
build ugly




Thursday, June 4, 2009
build ugly




Thursday, June 4, 2009
5. Trust the timeline.




Thursday, June 4, 2009
trust the timeline




Thursday, June 4, 2009
trust the timeline




Thursday, June 4, 2009
trust the timeline




          stop();
          dispatchEvent(new AnimationEvent(AnimationEvent.ANIMATE_IN));




Thursday, June 4, 2009
trust the timeline



          + Developers
               - No motion chops.
          + Designers
               - Lots of motion chops.


          So the equation in codespeak:
          if(developer.chops.motion < designer.chops.motion)
          assignMotionWorkTo(designer); // jk: duh




Thursday, June 4, 2009
trust the timeline




                TimelineHelper class:
                http://www.adobe.com/devnet/flash/articles/timelinewatcher.html
                (tinyurl version): http://tinyurl.com/cybwnr




Thursday, June 4, 2009
6. Buy the developer whiskey.




Thursday, June 4, 2009
7. Mise en place.




Thursday, June 4, 2009
mise en place



          In Flash:
          + Deep linking
          + Loading scheme(s)
          + Library items organized


          In HTML/CSS/JavaScript:
          + SEO
          + Flash detection
          + Minimum browser resize




Thursday, June 4, 2009
mise en place




Thursday, June 4, 2009
mise en place




Thursday, June 4, 2009
mise en place




Thursday, June 4, 2009
8. Start from scratch.




Thursday, June 4, 2009
9. Strive for exellence.
                (not perfection)




Thursday, June 4, 2009
strive for excellence




Thursday, June 4, 2009
strive for excellence




          + Idea was pretty... but not a mathematically perfect helix.
          + Bottles need to dynamically “swing” on rollover.
          + Each bottle is used in the site in several other places.
               - 120kb per bottle.
               - Must be front loaded.




Thursday, June 4, 2009
Reindeer Games
       Were you invited?




Thursday, June 4, 2009
Reindeer Games
       Were you invited?




Thursday, June 4, 2009
strive for excellence




Thursday, June 4, 2009
strive for excellence




Thursday, June 4, 2009
10. Think simple.




Thursday, June 4, 2009
in conclusion


          + Give everyone a say.
          + Never say it’s too hard.
          + Build fast.
          + Build ugly.
          + Trust the timeline.
          + Buy the developer whiskey.
          + Mise en place.
          + Start from scratch.
          + Strive for excellence, not perfection.
          + Think simple.




Thursday, June 4, 2009
thanks.


                bigspaceship.com

                labs.bigspaceship.com
                twitter: jkosoy



Thursday, June 4, 2009

More Related Content

Similar to Flash on Tap slides

Firefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web InnovatorsFirefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web Innovators
Dietrich Ayala
 
Running The Show Configuration Management With Chef Presentation
Running The Show  Configuration Management With Chef PresentationRunning The Show  Configuration Management With Chef Presentation
Running The Show Configuration Management With Chef Presentation
railsconf
 
I Movie 08 In The Classroom
I Movie 08 In The ClassroomI Movie 08 In The Classroom
I Movie 08 In The Classroom
gwimmer
 
Symfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsSymfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating products
Xavier Lacot
 

Similar to Flash on Tap slides (20)

Twitter on Rails
Twitter on RailsTwitter on Rails
Twitter on Rails
 
ERECOMPI
ERECOMPIERECOMPI
ERECOMPI
 
Firefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web InnovatorsFirefox 3.5 and Beyond, At Portland Web Innovators
Firefox 3.5 and Beyond, At Portland Web Innovators
 
The ABC of User Testing
The ABC of User TestingThe ABC of User Testing
The ABC of User Testing
 
Oxente on Rails 2009
Oxente on Rails 2009Oxente on Rails 2009
Oxente on Rails 2009
 
Props to Prototypes: Design Fiction Part 2 Design Connexity 2009
Props to Prototypes: Design Fiction Part 2 Design Connexity 2009Props to Prototypes: Design Fiction Part 2 Design Connexity 2009
Props to Prototypes: Design Fiction Part 2 Design Connexity 2009
 
Chad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from VenusChad Udell - Developers are from Mars, Designers are from Venus
Chad Udell - Developers are from Mars, Designers are from Venus
 
Session 7
Session 7 Session 7
Session 7
 
6 types of recordings you can create without showing your face
6 types of recordings you can create without showing your face6 types of recordings you can create without showing your face
6 types of recordings you can create without showing your face
 
Atlassian - A Different Kind Of Software Company
Atlassian - A Different Kind Of Software CompanyAtlassian - A Different Kind Of Software Company
Atlassian - A Different Kind Of Software Company
 
What I Hate About Wordpress
What I Hate About WordpressWhat I Hate About Wordpress
What I Hate About Wordpress
 
理解开放教育的意义 突破教育资源的限定
理解开放教育的意义 突破教育资源的限定理解开放教育的意义 突破教育资源的限定
理解开放教育的意义 突破教育资源的限定
 
Running The Show Configuration Management With Chef Presentation
Running The Show  Configuration Management With Chef PresentationRunning The Show  Configuration Management With Chef Presentation
Running The Show Configuration Management With Chef Presentation
 
Leadership Circle - real estate internet marketing
Leadership Circle - real estate internet marketingLeadership Circle - real estate internet marketing
Leadership Circle - real estate internet marketing
 
Encontro Locaweb Porto Alegre
Encontro  Locaweb Porto AlegreEncontro  Locaweb Porto Alegre
Encontro Locaweb Porto Alegre
 
An Open Civic Engagement Platform: Plone, Salesforce and Friends
An Open Civic Engagement Platform: Plone, Salesforce and FriendsAn Open Civic Engagement Platform: Plone, Salesforce and Friends
An Open Civic Engagement Platform: Plone, Salesforce and Friends
 
I Movie 08 In The Classroom
I Movie 08 In The ClassroomI Movie 08 In The Classroom
I Movie 08 In The Classroom
 
Beyond The Web: Drupal Meets The Desktop (And Mobile)
Beyond The Web: Drupal Meets The Desktop (And Mobile)Beyond The Web: Drupal Meets The Desktop (And Mobile)
Beyond The Web: Drupal Meets The Desktop (And Mobile)
 
Symfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating productsSymfony Day 2009 - Symfony vs Integrating products
Symfony Day 2009 - Symfony vs Integrating products
 
Uber Vu - Scrum & Startups
Uber Vu - Scrum & StartupsUber Vu - Scrum & Startups
Uber Vu - Scrum & Startups
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
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
 
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...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Flash on Tap slides

  • 1. Flash on Tap 2009 Jamie Kosoy Associate Technical Director j.kosoy@bigspaceship.com Thursday, June 4, 2009
  • 6. the situation 4 weeks until launch. Thursday, June 4, 2009
  • 8. 10 fundamentals to our process. Thursday, June 4, 2009
  • 9. 1. Give everyone a say. Thursday, June 4, 2009
  • 10. give everyone a say Strategy Production Design Development Thursday, June 4, 2009
  • 11. give everyone a say Strategy Production Design Development bad. Thursday, June 4, 2009
  • 12. give everyone a say Strategy Production Design Development good. Thursday, June 4, 2009
  • 13. 2. Never say it’s too hard. “Non-trivial” is better. Thursday, June 4, 2009
  • 14. 3. Build fast. Thursday, June 4, 2009
  • 15. build fast In Flash: + Set relative publish settings. + One Document root to rule them all. In HTML/CSS/JavaScript: + Publish main SWF to the root directory. Thursday, June 4, 2009
  • 16. build fast + Leverage the community. - GTween - BulkLoader - Corelib - SWFObject - SWFAddress Thursday, June 4, 2009
  • 17. build fast Simple Code Rules - $argument - _private - public - __private static - CONSTANT Thursday, June 4, 2009
  • 18. build fast Oh yeah, protected variables: _vvv$_$$pppp$_$p____$_$$$$protected__$p_________myInfo_loadercontentloaderinformation Thursday, June 4, 2009
  • 19. build fast Model Main Header Footer BigScreen (Some Footer Component) Thursday, June 4, 2009
  • 20. build fast obligatory code slide Thursday, June 4, 2009
  • 21. build fast public function Main() { if(stage) _initialize(); else addEventListener(Event.ADDED_TO_STAGE,_initialize,false,0,true); } private function _initialize($evt:Event = null):void { Security.allowDomain('*'); stage.scaleMode = StageScaleMode.NO_SCALE; GTween.timingMode = GTween.FRAME; Out.enableAllLevels(); if(Environment.IS_IN_BROWSER) Out.disableAllLevels(); _layers = []; _layers[Model.ABOUT] = new About(about_mc); _layers[Model.HEADER] = new Header(header_mc); _layers[Model.FOOTER] = new Footer(footer_mc); _layers[Model.SCREENS] = new Sprite(); // jk: screens will get added to this sprite. _layers[Model.SUBMIT] = new Submit(submit_mc); for(var i:int=0;i<_layers.length;i++) { _layers[i].tabEnabled = false; addChild(_layers[i]); } _layers[Model.FOOTER].addEventListener(“foo”,_footerOnFoo,false,0,true); // jk: an example event. } Thursday, June 4, 2009
  • 22. 4. Build ugly. Thursday, June 4, 2009
  • 27. 5. Trust the timeline. Thursday, June 4, 2009
  • 30. trust the timeline stop(); dispatchEvent(new AnimationEvent(AnimationEvent.ANIMATE_IN)); Thursday, June 4, 2009
  • 31. trust the timeline + Developers - No motion chops. + Designers - Lots of motion chops. So the equation in codespeak: if(developer.chops.motion < designer.chops.motion) assignMotionWorkTo(designer); // jk: duh Thursday, June 4, 2009
  • 32. trust the timeline TimelineHelper class: http://www.adobe.com/devnet/flash/articles/timelinewatcher.html (tinyurl version): http://tinyurl.com/cybwnr Thursday, June 4, 2009
  • 33. 6. Buy the developer whiskey. Thursday, June 4, 2009
  • 34. 7. Mise en place. Thursday, June 4, 2009
  • 35. mise en place In Flash: + Deep linking + Loading scheme(s) + Library items organized In HTML/CSS/JavaScript: + SEO + Flash detection + Minimum browser resize Thursday, June 4, 2009
  • 36. mise en place Thursday, June 4, 2009
  • 37. mise en place Thursday, June 4, 2009
  • 38. mise en place Thursday, June 4, 2009
  • 39. 8. Start from scratch. Thursday, June 4, 2009
  • 40. 9. Strive for exellence. (not perfection) Thursday, June 4, 2009
  • 42. strive for excellence + Idea was pretty... but not a mathematically perfect helix. + Bottles need to dynamically “swing” on rollover. + Each bottle is used in the site in several other places. - 120kb per bottle. - Must be front loaded. Thursday, June 4, 2009
  • 43. Reindeer Games Were you invited? Thursday, June 4, 2009
  • 44. Reindeer Games Were you invited? Thursday, June 4, 2009
  • 48. in conclusion + Give everyone a say. + Never say it’s too hard. + Build fast. + Build ugly. + Trust the timeline. + Buy the developer whiskey. + Mise en place. + Start from scratch. + Strive for excellence, not perfection. + Think simple. Thursday, June 4, 2009
  • 49. thanks. bigspaceship.com labs.bigspaceship.com twitter: jkosoy Thursday, June 4, 2009