SlideShare a Scribd company logo
1 of 35
Création d'une application
HTML5 utilisant Canvas,
SVG et les animations CSS3
David CATUHE - @deltakosh
Microsoft – davca@microsoft.com
http://blogs.msdn.com/eternalcoding
David ROUSSET - @davrous
Microsoft – davrous@microsoft.com
http://blogs.msdn.com/davrous
Du web de présentation
 vers le web applicatif
Quelques fonctionnalités clés


   Accélération matérielle   Audio/Vidéo

   CSS3 grid, flexible box   ECMAScript 5

   Multi-columns             Geolocation

   Stockage client           Websockets

   Drag’n’drop               Webworkers
   Accès au système de
                             Hit testing / touch / gestures
   fichiers
   Mode offline              Canvas, SVG, animations

   Blobs                     …
Démonstration
Présentation de l’application SnapX
Audio/Vidéo
Audio/Vidéo

  Permet de lire un fichier audio ou vidéo sans plug-in
Démonstration
Utilisation de la vidéo pour le Splash Screen
CSS3 Grid   &

Flexbox
CSS3 Grid par l’exemple

  Une planche de jeu
HTML & CSS de la planche de
jeu type="text/css">
  <style
  #grid { display: grid;
        grid-columns: auto 1fr;
        grid-rows: auto 1fr auto;
      }
   #title { grid-column: 1;   grid-row: 1 }
   #score { grid-column: 1;   grid-row: 3 }
   #stats { grid-column: 1;   grid-row: 2; grid-row-align: start }
   #board { grid-column: 2;   grid-row: 1; grid-row-span: 2 }
   #controls { grid-column:   2; grid-row: 2; grid-column-align: center }
 </style>

 <div id="grid">
   <div id="title">Game Title</div>
   <div id="score">Score</div>
   <div id="stats">Stats</div>
   <div id="board">Board</div>
   <div id="controls">Controls</div>
 </div>
Couplage Grid & Media Queries
 <style type="text/css">

  @media (orientation: landscape) {
     #title    { grid-column: 1; grid-row:    1 }
     #score    { grid-column: 1; grid-row:    3 }
     #stats    { grid-column: 1; grid-row:    2;
                 grid-row-align: start }
     #board    { grid-column: 2; grid-row:    1;
                 grid-row-span: 2 }
     #controls { grid-column: 2; grid-row:    2;
                 grid-column-align: center    }
  }


   @media (orientation: portrait) {
      #title    { grid-column: 1; grid-row:   1 }
      #score    { grid-column: 1; grid-row:   2 }
      #stats    { grid-column: 2; grid-row:   1; grid-row-span: 2 }
      #board    { grid-column: 1; grid-row:   3; grid-column-span: 2 }
      #controls { grid-column: 1; grid-row:   4; grid-column-span: 2;
                  grid-column-align: center   }
   }
CSS3 Flexbox

 Approche courante : Floats
   Peu amener à des conséquences non souhaitées




 Nouvelle approche : Flexbox!
   Les éléments remplissent harmonieusement l’espace
    disponible
   Contrôle de l’empilage sur une unique dimension
CSS3 Flexbox
 <style type="text/css">
   #flexbox
    {
        display: box;
        box-orient: horizontal;
        box-align: middle;
        box-pack: justify;
    }



 <div id="flexbox">
   <div id="one">1</div>
   <div id="two">2</div>
   <div id="three">3</div>
   <div id="four">4</div>
   <div id="five">5</div>
 </div>
Le résultat en images




    Jeu sur une tablette 1366x768 en portait
Le résultat en images




    Jeu sur une tablette 1366x768 en paysage
Le résultat en images




    Jeu sur une tablette 1024x768 en paysage
Le résultat en images




     Jeu sur l’équivalent d’un smartphone
Démonstration
Démo ultra simple de CSS3 Grid
CSS3 Grid & Flexbox dans SnapX
Canvas   SVG
Retour rapide aux bases

  SVG pour Scalable Vector Graphics
      Format vectoriel décrit en XML
      Couplage à CSS
      Conserve le graphe d’objet en mémoire dans le
       DOM
      Géré nativement par les derniers parseurs HTML5

  <canvas>
      Bitmap dynamique adressée par des primitives JS
          On gère chacun des pixels
      Dessine dans une résolution donnée
      Mode « Fire & Forget »
      Unique nœud dans le DOM en mode boîte noire
Comment faire son choix ?
Démonstration
Quelques scénarios clés pour SVG en action

Documents complexes, Animation, Rapports & Accessibilité
SVG : les scénarios clés

  Documents vectoriels « complexes »

  Graphiques / Rapports / Cartographie
      Soulage le serveur pour la production de graphismes haute qualité
      Interactivité possible et mise à jour des données via Ajax


  Utilisation plus générique
      CSS ou images de fond
      Posters (excellent pour l’impression)
      Animation avec JavaScript


  Jeux vidéo

  Meilleur SEO & Accessibilité (couplage avec ARIA)
Démonstration
Quelques scénarios clés pour Canvas en action

Raytracer, manipulation vidéo, rapports plus “complexes”
Canvas : les scénarios clés

  Manipulation des pixels
      RayTracing, traitement d’images

  Affichage de données en temps réel
      Scènes complexes, animations mathématiques
       (météo, etc.)

  Remplacement de pixels
      A vous les effets d’écran bleu/vert à la StarWars
       !
SVG vs Canvas : choix simples
Scénarios de recouvrement

  Rapports et Graphiques interactifs
     SVG meilleur pour l’interaction, chargement
      XML & l’impression
     Canvas peut être un choix plus rapide pour
      certains navigateurs

  Jeux Vidéo 2D
     Canvas propose une expérience connue aux
      développeurs de jeux (APIs bas niveau, mode
      immédiat comme XNA, etc.)
     SVG : beaucoup d’opérations DOM & coût
      mémoire supérieur
Démonstration
Utilisation de SVG Filters dans SnapX
CSS3 Transitions & Animations

  Transitions
      Animations fluides de propriétés CSS depuis
       une valeur d’origine vers une valeur cible
      Peut être utilisées avec les pseudo-classes
       comme :hover

  Animations
      A voir comme une série de transitions définies
       par des « keyframes »
      Permet des animations plus riches que les
       CSS Transitions
Définition d’une transition

 transition-property: all;
 transition-duration: 0.5s;
 transition-timing-function: ease;
 transition-delay: 0s;



  Puis appliquez la transition par une règle
  CSS

  Note : attention aux préfixes (-ms chez
Définition d’une animation

 @keyframes nom_de_l_animation {
   from { propriété_à_animer: valeur_initiale; }
   50% { propriété_à_animer: valeur_intermédiaire; }
   to { propriété_à_animer: valeur_finale; }
 }

 #id_de_l_element_html {
    animation-name: nom_de_l_animation;
    animation-duration: nombre_de_secondes s;
    animation-iteration-count: nombre | infinite;
 }
Démonstration
Transitions avec Fallback JS
Animations avec Fallback JS
Intégration dans SnapX pour une expérience Fast & Fluid
<Questions/>
palais des
congrès
Paris




7, 8 et 9
février 2012

More Related Content

Viewers also liked

Tintin con dibujo (1)marina
Tintin con dibujo (1)marinaTintin con dibujo (1)marina
Tintin con dibujo (1)marinapacitina
 
REDES CURRICULARES Sep.2014-Mar.2014
REDES CURRICULARES Sep.2014-Mar.2014REDES CURRICULARES Sep.2014-Mar.2014
REDES CURRICULARES Sep.2014-Mar.2014Iván Ayala
 
Système reproducteur
Système reproducteurSystème reproducteur
Système reproducteurkaralb0186
 
Sesion09 presentacion proyecto final
Sesion09 presentacion proyecto finalSesion09 presentacion proyecto final
Sesion09 presentacion proyecto finalCristian Benavides
 
OPINION DYNAMICS & PUBLIC BEHAVIOR
OPINION DYNAMICS & PUBLIC BEHAVIOROPINION DYNAMICS & PUBLIC BEHAVIOR
OPINION DYNAMICS & PUBLIC BEHAVIORHashim Badat
 
Fukushima und kein Ende
Fukushima und kein EndeFukushima und kein Ende
Fukushima und kein EndeOeko-Institut
 
Weil saetze
Weil saetzeWeil saetze
Weil saetzeYPEPTH
 
Test jd
Test jdTest jd
Test jdJD JD
 
Certificación Docente HDT
Certificación Docente HDTCertificación Docente HDT
Certificación Docente HDTangiesalgado
 
Webschool du Jura - Référencement naturel
Webschool du Jura - Référencement naturelWebschool du Jura - Référencement naturel
Webschool du Jura - Référencement naturelmariejura
 
Portables - Thierry Karsenti - 2010
Portables - Thierry Karsenti - 2010Portables - Thierry Karsenti - 2010
Portables - Thierry Karsenti - 2010captic
 
La Matinale : Introduction à Windows 8
La Matinale : Introduction à Windows 8La Matinale : Introduction à Windows 8
La Matinale : Introduction à Windows 8X-PRIME GROUPE
 
Présentation be & lead décembre 2012 ew copie
Présentation be & lead décembre 2012 ew copiePrésentation be & lead décembre 2012 ew copie
Présentation be & lead décembre 2012 ew copieEdouard Weil
 
Camp pour la Paix 2010
Camp pour la Paix 2010Camp pour la Paix 2010
Camp pour la Paix 2010loikiloik
 

Viewers also liked (20)

Tintin con dibujo (1)marina
Tintin con dibujo (1)marinaTintin con dibujo (1)marina
Tintin con dibujo (1)marina
 
REDES CURRICULARES Sep.2014-Mar.2014
REDES CURRICULARES Sep.2014-Mar.2014REDES CURRICULARES Sep.2014-Mar.2014
REDES CURRICULARES Sep.2014-Mar.2014
 
Système reproducteur
Système reproducteurSystème reproducteur
Système reproducteur
 
Sesion09 presentacion proyecto final
Sesion09 presentacion proyecto finalSesion09 presentacion proyecto final
Sesion09 presentacion proyecto final
 
OPINION DYNAMICS & PUBLIC BEHAVIOR
OPINION DYNAMICS & PUBLIC BEHAVIOROPINION DYNAMICS & PUBLIC BEHAVIOR
OPINION DYNAMICS & PUBLIC BEHAVIOR
 
Fukushima und kein Ende
Fukushima und kein EndeFukushima und kein Ende
Fukushima und kein Ende
 
Bourges
BourgesBourges
Bourges
 
Weil saetze
Weil saetzeWeil saetze
Weil saetze
 
Test jd
Test jdTest jd
Test jd
 
Web 2.O
Web 2.OWeb 2.O
Web 2.O
 
Certificación Docente HDT
Certificación Docente HDTCertificación Docente HDT
Certificación Docente HDT
 
Westin zimmer
Westin zimmerWestin zimmer
Westin zimmer
 
Webschool du Jura - Référencement naturel
Webschool du Jura - Référencement naturelWebschool du Jura - Référencement naturel
Webschool du Jura - Référencement naturel
 
La force de l'amitié
La force de l'amitiéLa force de l'amitié
La force de l'amitié
 
Portables - Thierry Karsenti - 2010
Portables - Thierry Karsenti - 2010Portables - Thierry Karsenti - 2010
Portables - Thierry Karsenti - 2010
 
La Matinale : Introduction à Windows 8
La Matinale : Introduction à Windows 8La Matinale : Introduction à Windows 8
La Matinale : Introduction à Windows 8
 
Présentation be & lead décembre 2012 ew copie
Présentation be & lead décembre 2012 ew copiePrésentation be & lead décembre 2012 ew copie
Présentation be & lead décembre 2012 ew copie
 
Camp pour la Paix 2010
Camp pour la Paix 2010Camp pour la Paix 2010
Camp pour la Paix 2010
 
Virtuelle projekte
Virtuelle projekteVirtuelle projekte
Virtuelle projekte
 
Excel
ExcelExcel
Excel
 

Similar to Création d'une application html5 utilisant canvas, svg et les animations css3

Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Microsoft Technet France
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !davrous
 
W3 cafe ie10etwindows8
W3 cafe ie10etwindows8W3 cafe ie10etwindows8
W3 cafe ie10etwindows8davrous
 
Trois avancées majeures en CSS3 : Media Queries, Grid Layout et Animations
Trois avancées majeures en CSS3 : Media Queries, Grid Layout et AnimationsTrois avancées majeures en CSS3 : Media Queries, Grid Layout et Animations
Trois avancées majeures en CSS3 : Media Queries, Grid Layout et AnimationsMicrosoft
 
Trois avancées majeures en CSS3 : Mediaqueries, Grid Layout et Animations (MS...
Trois avancées majeures en CSS3 : Mediaqueries, Grid Layout et Animations (MS...Trois avancées majeures en CSS3 : Mediaqueries, Grid Layout et Animations (MS...
Trois avancées majeures en CSS3 : Mediaqueries, Grid Layout et Animations (MS...Raphaël Goetter
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascriptcodedarmor
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2Horacio Gonzalez
 
Responsive design, Canvas et SVG
Responsive design, Canvas et SVGResponsive design, Canvas et SVG
Responsive design, Canvas et SVGChristian SUMBANG
 
Gagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs cssGagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs csspefringant
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
Le futur du Responsive Web Design
Le futur du Responsive Web DesignLe futur du Responsive Web Design
Le futur du Responsive Web DesignMicrosoft
 
#nwxtech6 Frédéric Bisson - SVG pour le web
#nwxtech6 Frédéric Bisson - SVG pour le web#nwxtech6 Frédéric Bisson - SVG pour le web
#nwxtech6 Frédéric Bisson - SVG pour le webNormandie Web Xperts
 
cours-introduction-dfggghhha-html-5.pptx
cours-introduction-dfggghhha-html-5.pptxcours-introduction-dfggghhha-html-5.pptx
cours-introduction-dfggghhha-html-5.pptxradjadjouambi1
 
Stratégie d'altimétrie nationale : vers un environnement ouvert
Stratégie d'altimétrie nationale : vers un environnement ouvertStratégie d'altimétrie nationale : vers un environnement ouvert
Stratégie d'altimétrie nationale : vers un environnement ouvertACSG Section Montréal
 
HTML 5 et CSS3, créez, animez et enrichissez vos sites Web
HTML 5 et CSS3, créez, animez et enrichissez vos sites WebHTML 5 et CSS3, créez, animez et enrichissez vos sites Web
HTML 5 et CSS3, créez, animez et enrichissez vos sites WebMicrosoft
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2apratt72
 
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013MBA Multimedia
 

Similar to Création d'une application html5 utilisant canvas, svg et les animations css3 (20)

Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !
 
W3 cafe ie10etwindows8
W3 cafe ie10etwindows8W3 cafe ie10etwindows8
W3 cafe ie10etwindows8
 
WPF.pptx
WPF.pptxWPF.pptx
WPF.pptx
 
Trois avancées majeures en CSS3 : Media Queries, Grid Layout et Animations
Trois avancées majeures en CSS3 : Media Queries, Grid Layout et AnimationsTrois avancées majeures en CSS3 : Media Queries, Grid Layout et Animations
Trois avancées majeures en CSS3 : Media Queries, Grid Layout et Animations
 
Trois avancées majeures en CSS3 : Mediaqueries, Grid Layout et Animations (MS...
Trois avancées majeures en CSS3 : Mediaqueries, Grid Layout et Animations (MS...Trois avancées majeures en CSS3 : Mediaqueries, Grid Layout et Animations (MS...
Trois avancées majeures en CSS3 : Mediaqueries, Grid Layout et Animations (MS...
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
 
Responsive design, Canvas et SVG
Responsive design, Canvas et SVGResponsive design, Canvas et SVG
Responsive design, Canvas et SVG
 
Gagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs cssGagnez en productivité grâce aux préprocesseurs css
Gagnez en productivité grâce aux préprocesseurs css
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Le futur du Responsive Web Design
Le futur du Responsive Web DesignLe futur du Responsive Web Design
Le futur du Responsive Web Design
 
#nwxtech6 Frédéric Bisson - SVG pour le web
#nwxtech6 Frédéric Bisson - SVG pour le web#nwxtech6 Frédéric Bisson - SVG pour le web
#nwxtech6 Frédéric Bisson - SVG pour le web
 
cours-introduction-dfggghhha-html-5.pptx
cours-introduction-dfggghhha-html-5.pptxcours-introduction-dfggghhha-html-5.pptx
cours-introduction-dfggghhha-html-5.pptx
 
Dijkstra kshortest
Dijkstra kshortestDijkstra kshortest
Dijkstra kshortest
 
Stratégie d'altimétrie nationale : vers un environnement ouvert
Stratégie d'altimétrie nationale : vers un environnement ouvertStratégie d'altimétrie nationale : vers un environnement ouvert
Stratégie d'altimétrie nationale : vers un environnement ouvert
 
HTML 5 et CSS3, créez, animez et enrichissez vos sites Web
HTML 5 et CSS3, créez, animez et enrichissez vos sites WebHTML 5 et CSS3, créez, animez et enrichissez vos sites Web
HTML 5 et CSS3, créez, animez et enrichissez vos sites Web
 
Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2Sybase Connect Atelier Power Builderv2
Sybase Connect Atelier Power Builderv2
 
ATL et SVG
ATL et SVGATL et SVG
ATL et SVG
 
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
Expresso Rennes Atalante - Html5 / Css3D - 17 sept. 2013
 

More from davrous

Building a cross platforms tower defense game Dev Days 2016
Building a cross platforms tower defense game Dev Days 2016Building a cross platforms tower defense game Dev Days 2016
Building a cross platforms tower defense game Dev Days 2016davrous
 
Create fun & immersive audio experiences with web audio
Create fun & immersive audio experiences with web audioCreate fun & immersive audio experiences with web audio
Create fun & immersive audio experiences with web audiodavrous
 
Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoftdavrous
 
Unleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.jsUnleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.jsdavrous
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esdavrous
 
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JSIntroduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JSdavrous
 
Babylon.js WebGL Paris
Babylon.js  WebGL ParisBabylon.js  WebGL Paris
Babylon.js WebGL Parisdavrous
 
Microsoft et l'Open Source
Microsoft et l'Open SourceMicrosoft et l'Open Source
Microsoft et l'Open Sourcedavrous
 
Back from BUILD - WebGL
Back from BUILD -  WebGLBack from BUILD -  WebGL
Back from BUILD - WebGLdavrous
 
NGF2014 - Create a 3d game with webgl and babylon.js
NGF2014 - Create a 3d game with webgl and babylon.jsNGF2014 - Create a 3d game with webgl and babylon.js
NGF2014 - Create a 3d game with webgl and babylon.jsdavrous
 
Réaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.jsRéaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.jsdavrous
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5davrous
 
Pointer events
Pointer eventsPointer events
Pointer eventsdavrous
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptdavrous
 
Création d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockageCréation d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockagedavrous
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10davrous
 
Webinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft IntelWebinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft Inteldavrous
 
Développement d'un jeu de plateforme en html5
Développement d'un jeu de plateforme en html5Développement d'un jeu de plateforme en html5
Développement d'un jeu de plateforme en html5davrous
 
AMDEV: Graphismes avec html5 grâce à canvas et svg
AMDEV: Graphismes avec html5 grâce à canvas et svgAMDEV: Graphismes avec html5 grâce à canvas et svg
AMDEV: Graphismes avec html5 grâce à canvas et svgdavrous
 

More from davrous (20)

Building a cross platforms tower defense game Dev Days 2016
Building a cross platforms tower defense game Dev Days 2016Building a cross platforms tower defense game Dev Days 2016
Building a cross platforms tower defense game Dev Days 2016
 
Create fun & immersive audio experiences with web audio
Create fun & immersive audio experiences with web audioCreate fun & immersive audio experiences with web audio
Create fun & immersive audio experiences with web audio
 
Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoft
 
Unleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.jsUnleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.js
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
 
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JSIntroduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
 
Babylon.js WebGL Paris
Babylon.js  WebGL ParisBabylon.js  WebGL Paris
Babylon.js WebGL Paris
 
Microsoft et l'Open Source
Microsoft et l'Open SourceMicrosoft et l'Open Source
Microsoft et l'Open Source
 
Back from BUILD - WebGL
Back from BUILD -  WebGLBack from BUILD -  WebGL
Back from BUILD - WebGL
 
NGF2014 - Create a 3d game with webgl and babylon.js
NGF2014 - Create a 3d game with webgl and babylon.jsNGF2014 - Create a 3d game with webgl and babylon.js
NGF2014 - Create a 3d game with webgl and babylon.js
 
Réaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.jsRéaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.js
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5
 
Pointer events
Pointer eventsPointer events
Pointer events
 
L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascript
 
Création d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockageCréation d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockage
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10
 
Webinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft IntelWebinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft Intel
 
Développement d'un jeu de plateforme en html5
Développement d'un jeu de plateforme en html5Développement d'un jeu de plateforme en html5
Développement d'un jeu de plateforme en html5
 
AMDEV: Graphismes avec html5 grâce à canvas et svg
AMDEV: Graphismes avec html5 grâce à canvas et svgAMDEV: Graphismes avec html5 grâce à canvas et svg
AMDEV: Graphismes avec html5 grâce à canvas et svg
 

Création d'une application html5 utilisant canvas, svg et les animations css3

  • 1. Création d'une application HTML5 utilisant Canvas, SVG et les animations CSS3 David CATUHE - @deltakosh Microsoft – davca@microsoft.com http://blogs.msdn.com/eternalcoding David ROUSSET - @davrous Microsoft – davrous@microsoft.com http://blogs.msdn.com/davrous
  • 2. Du web de présentation vers le web applicatif
  • 3. Quelques fonctionnalités clés Accélération matérielle Audio/Vidéo CSS3 grid, flexible box ECMAScript 5 Multi-columns Geolocation Stockage client Websockets Drag’n’drop Webworkers Accès au système de Hit testing / touch / gestures fichiers Mode offline Canvas, SVG, animations Blobs …
  • 6. Audio/Vidéo Permet de lire un fichier audio ou vidéo sans plug-in
  • 7. Démonstration Utilisation de la vidéo pour le Splash Screen
  • 8. CSS3 Grid & Flexbox
  • 9. CSS3 Grid par l’exemple Une planche de jeu
  • 10. HTML & CSS de la planche de jeu type="text/css"> <style #grid { display: grid; grid-columns: auto 1fr; grid-rows: auto 1fr auto; } #title { grid-column: 1; grid-row: 1 } #score { grid-column: 1; grid-row: 3 } #stats { grid-column: 1; grid-row: 2; grid-row-align: start } #board { grid-column: 2; grid-row: 1; grid-row-span: 2 } #controls { grid-column: 2; grid-row: 2; grid-column-align: center } </style> <div id="grid"> <div id="title">Game Title</div> <div id="score">Score</div> <div id="stats">Stats</div> <div id="board">Board</div> <div id="controls">Controls</div> </div>
  • 11. Couplage Grid & Media Queries <style type="text/css"> @media (orientation: landscape) { #title { grid-column: 1; grid-row: 1 } #score { grid-column: 1; grid-row: 3 } #stats { grid-column: 1; grid-row: 2; grid-row-align: start } #board { grid-column: 2; grid-row: 1; grid-row-span: 2 } #controls { grid-column: 2; grid-row: 2; grid-column-align: center } } @media (orientation: portrait) { #title { grid-column: 1; grid-row: 1 } #score { grid-column: 1; grid-row: 2 } #stats { grid-column: 2; grid-row: 1; grid-row-span: 2 } #board { grid-column: 1; grid-row: 3; grid-column-span: 2 } #controls { grid-column: 1; grid-row: 4; grid-column-span: 2; grid-column-align: center } }
  • 12. CSS3 Flexbox Approche courante : Floats  Peu amener à des conséquences non souhaitées Nouvelle approche : Flexbox!  Les éléments remplissent harmonieusement l’espace disponible  Contrôle de l’empilage sur une unique dimension
  • 13. CSS3 Flexbox <style type="text/css"> #flexbox { display: box; box-orient: horizontal; box-align: middle; box-pack: justify; } <div id="flexbox"> <div id="one">1</div> <div id="two">2</div> <div id="three">3</div> <div id="four">4</div> <div id="five">5</div> </div>
  • 14. Le résultat en images Jeu sur une tablette 1366x768 en portait
  • 15. Le résultat en images Jeu sur une tablette 1366x768 en paysage
  • 16. Le résultat en images Jeu sur une tablette 1024x768 en paysage
  • 17. Le résultat en images Jeu sur l’équivalent d’un smartphone
  • 18. Démonstration Démo ultra simple de CSS3 Grid CSS3 Grid & Flexbox dans SnapX
  • 19. Canvas SVG
  • 20. Retour rapide aux bases SVG pour Scalable Vector Graphics  Format vectoriel décrit en XML  Couplage à CSS  Conserve le graphe d’objet en mémoire dans le DOM  Géré nativement par les derniers parseurs HTML5 <canvas>  Bitmap dynamique adressée par des primitives JS  On gère chacun des pixels  Dessine dans une résolution donnée  Mode « Fire & Forget »  Unique nœud dans le DOM en mode boîte noire
  • 21. Comment faire son choix ?
  • 22. Démonstration Quelques scénarios clés pour SVG en action Documents complexes, Animation, Rapports & Accessibilité
  • 23. SVG : les scénarios clés Documents vectoriels « complexes » Graphiques / Rapports / Cartographie  Soulage le serveur pour la production de graphismes haute qualité  Interactivité possible et mise à jour des données via Ajax Utilisation plus générique  CSS ou images de fond  Posters (excellent pour l’impression)  Animation avec JavaScript Jeux vidéo Meilleur SEO & Accessibilité (couplage avec ARIA)
  • 24. Démonstration Quelques scénarios clés pour Canvas en action Raytracer, manipulation vidéo, rapports plus “complexes”
  • 25. Canvas : les scénarios clés Manipulation des pixels  RayTracing, traitement d’images Affichage de données en temps réel  Scènes complexes, animations mathématiques (météo, etc.) Remplacement de pixels  A vous les effets d’écran bleu/vert à la StarWars !
  • 26. SVG vs Canvas : choix simples
  • 27. Scénarios de recouvrement Rapports et Graphiques interactifs  SVG meilleur pour l’interaction, chargement XML & l’impression  Canvas peut être un choix plus rapide pour certains navigateurs Jeux Vidéo 2D  Canvas propose une expérience connue aux développeurs de jeux (APIs bas niveau, mode immédiat comme XNA, etc.)  SVG : beaucoup d’opérations DOM & coût mémoire supérieur
  • 28. Démonstration Utilisation de SVG Filters dans SnapX
  • 29.
  • 30. CSS3 Transitions & Animations Transitions  Animations fluides de propriétés CSS depuis une valeur d’origine vers une valeur cible  Peut être utilisées avec les pseudo-classes comme :hover Animations  A voir comme une série de transitions définies par des « keyframes »  Permet des animations plus riches que les CSS Transitions
  • 31. Définition d’une transition transition-property: all; transition-duration: 0.5s; transition-timing-function: ease; transition-delay: 0s; Puis appliquez la transition par une règle CSS Note : attention aux préfixes (-ms chez
  • 32. Définition d’une animation @keyframes nom_de_l_animation { from { propriété_à_animer: valeur_initiale; } 50% { propriété_à_animer: valeur_intermédiaire; } to { propriété_à_animer: valeur_finale; } } #id_de_l_element_html { animation-name: nom_de_l_animation; animation-duration: nombre_de_secondes s; animation-iteration-count: nombre | infinite; }
  • 33. Démonstration Transitions avec Fallback JS Animations avec Fallback JS Intégration dans SnapX pour une expérience Fast & Fluid
  • 35. palais des congrès Paris 7, 8 et 9 février 2012

Editor's Notes

  1. DavRous fais la démo de SnapyX
  2. T + 5minDavCa
  3. DavCa
  4. Davrous : Montrer la page loader.html et indiquer que l’on ne supporte que mp4 donc pas FF ni OperaMontrer post blog : http://blogs.msdn.com/b/davrous/archive/2012/01/06/amdev-slides-et-exemples-de-code-de-notre-session-svg-et-canvas.aspx avec utiliser librairie videojs.
  5. T + 10 minDavrous
  6. Davrous
  7. Davrous
  8. Davrous
  9. Davrous
  10. Davrous
  11. Davrous
  12. Davrous
  13. Davrous
  14. Davrous
  15. DavCa
  16. T + 25 minDavCa
  17. T + 33 minDavRous
  18. T + 43 minDavCa
  19. DavCa / DavRous
  20. DavCa / Davrous
  21. T + 45 min
  22. DavCa
  23. DavCa
  24. DavCa