Heim Web-Frontend H5-Tutorial Teilen Sie Beispiele für die Verwendung von HTML5 Canvas zum Erstellen von Tastatur- und Mausanimationen. HTML5-Tutorial-Fähigkeiten

Teilen Sie Beispiele für die Verwendung von HTML5 Canvas zum Erstellen von Tastatur- und Mausanimationen. HTML5-Tutorial-Fähigkeiten

May 16, 2016 pm 03:45 PM
canvas html5 动画

Tastatur steuert die Bewegung des Balls

Wie wir alle wissen, handelt es sich bei der Animation, die wir sehen, tatsächlich um eine Reihe schneller Wechsel statischer Bilder, die dem bloßen Auge aufgrund visueller Nachbilder den visuellen Effekt von „bewegten Bildern“ verleihen. Nachdem Sie dies verstanden haben, wird das Zeichnen von Animationseffekten auf der Leinwand relativ einfach. Wir müssen zunächst nur eine bestimmte statische Grafik löschen und sie dann an einer anderen Stelle neu zeichnen. Wiederholen Sie diesen Vorgang, um die statische Grafik entlang einer bestimmten Flugbahn zu bewegen und einen Animationseffekt zu erzeugen.

Als nächstes zeichnen wir einen festen Ball auf die Leinwand und verwenden dann die Pfeiltasten auf der Tastatur, um die Bewegung des Balls zu steuern, um dynamische Effekte zu erzeugen. Der Beispielcode lautet wie folgt:

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. "UTF-8">
  2. HTML5-Leinwandzeichnung, Beispiel für einen beweglichen Ball
  3. "moveBall(event)"
  4. >
  5. "myCanvas"
  6. width=
  7. "400px"
  8. height="300px" style="border: 1px solid red;"> Ihr Browser unterstützt das Canvas-Tag nicht.
  9. Bitte verwenden Sie einen Browser, der HTML5 unterstützt, um die folgende Webseite zu öffnen, um den tatsächlichen Effekt zu sehen (verwenden Sie die Pfeiltasten zum Bewegen):
  10. Verwenden Sie die Leinwand, um einen beweglichen Ball zu zeichnen
  11. .
Clown Smiley Face
Sie müssen nur ein paar APIs verstehen und dann die erforderlichen Animationsparameter verwenden, um diese interessante Webanimation zu erstellen, die auf Ihre Bewegungen reagieren kann.

Der erste Schritt besteht darin, die Gesichtszüge zu zeichnen
Dieser Clown hat keine Ohren und Augenbrauen, daher sind nur noch drei Organe übrig, aber wir müssen seine beiden Augen separat zeichnen, sodass es insgesamt vier Teile gibt. Schauen wir uns zunächst den Code an.

Code zum Zeichnen des linken Auges



JavaScript-Code

Inhalt in die Zwischenablage kopieren

  1. var leftEye = new Kinetic.Line({
  2. x: 150,
  3. Punkte: [0, 200, 50, 190, 100, 200, 50, 210],
  4. Spannung: 0,5,
  5. geschlossen: wahr,
  6. Strich: 'weiß',
  7. StrokeWidth: 10
  8. });

Code zum Zeichnen des rechten Auges

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var rightEye = new Kinetic.Line({
  2. x: sw - 250,
  3. Punkte: [0, 200, 50, 190, 100, 200, 50, 210],
  4. Spannung: 0,5,
  5. geschlossen: wahr,
  6. Strich: 'weiß',
  7. StrokeWidth: 10
  8. });

Code zum Zeichnen der Nase

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var Nase = neu Kinetic.Line({
  2. Punkte: [240, 280, sw/2, 300, sw-240,280],
  3. Spannung: 0,5,
  4. geschlossen: wahr,
  5. Strich: 'weiß',
  6. StrokeWidth: 10
  7. });

Code zum Zeichnen des Mundes

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. varmouth = new Kinetic.Line({
  2. Punkte: [150, 340, sw/2, 380, sw - 150, 340, sw/2, sh],
  3. Spannung: 0,5,
  4. geschlossen: wahr,
  5. Strich: 'rot',
  6. StrokeWidth: 10
  7. });

Würden Sie enttäuscht sein? Es stellt sich heraus, dass es nur ein paar Zeilen Code sind. Ja, so einfach ist das. Ich glaube, Sie beginnen, sich sicher zu fühlen, dass Sie ein Web-Game-Animationsprogrammierer werden können

Erklären Sie kurz den obigen Code. Kinetic ist das von uns verwendete JS-Toolkit. Am Kopf der Seite müssen wir wie folgt darauf verweisen:

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. varmouth = new Kinetic.Line({
  2. Punkte: [150, 340, sw/2, 380, sw - 150, 340, sw/2, sh],
  3. Spannung: 0,5,
  4. geschlossen: wahr,
  5. Strich: 'rot',
  6. StrokeWidth: 10
  7. });
Die anderen sind mehrere wichtige Punkte, Linienelastizität, Farbe, Breite usw. Diese sind leicht zu verstehen.

Der zweite Schritt besteht darin, das Bild in Bewegung zu setzen

Der Grund, warum diese Animation attraktiv ist, liegt darin, dass sie auf Ihre Mausbewegungen reagieren und mit dem Benutzer interagieren kann. Dies ist der wichtigste Aspekt einer erfolgreichen Animation. Wenn Sie genau hinsehen, handelt es sich bei den Veränderungen in den Gesichtszügen des Clowns lediglich um Veränderungen der Form: Die Augen werden größer, der Mund wird größer und die Nase wird größer. Das Besondere ist jedoch, dass es sich bei dieser Veränderung nicht um eine sofortige Veränderung handelt Übergangsalgorithmen. Das ist der besorgniserregendste Teil. Glücklicherweise sind diese Algorithmustechnologien sehr ausgereift und erfordern nicht, dass wir darüber nachdenken. Diese Animations-Engine-Bibliotheken haben diese Technologien in sehr einfache und praktische Schnittstellen gekapselt. Werfen wir einen Blick darauf, wie wir die Dinge in Bewegung bringen können.

Animation des linken Auges


JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var leftEyeTween = new Kinetic.Tween({
  2. Knoten: leftEye,
  3. Dauer: 1,
  4. Lockerung: Kinetic.Easings.ElasticEaseOut,
  5. y: -100,
  6. Punkte: [0, 200, 50, 150, 100, 200, 50, 200]
  7. });
Animation des rechten Auges


JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var rightEyeTween = new Kinetic.Tween({
  2. Knoten: rightEye,
  3. Dauer: 1,
  4. Lockerung: Kinetic.Easings.ElasticEaseOut,
  5. y: -100,
  6. Punkte: [0, 200, 50, 150, 100, 200, 50, 200]
  7. });

Animation der Nase

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. var NoseTween = new Kinetic.Tween({
  2. Knoten: Nase,
  3. Dauer: 1,
  4. Lockerung: Kinetic.Easings.ElasticEaseOut,
  5. y: -100,
  6. Punkte: [220, 280, sw/2, 200, sw-220,280]
  7. });

Mundanimation

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1. varmouthTween = new Kinetic.Tween({
  2. Knoten: Mund,
  3. Dauer: 1,
  4. Lockerung: Kinetic.Easings.ElasticEaseOut,
  5. Punkte: [100, 250, sw/2, 250, sw - 100, 250, sw/2, sh-20]
  6. });

Der Code ist sehr einfach und die Variablennamen sind selbsterklärend. Für Programmierer mit ein wenig Erfahrung sollte es nicht schwierig sein, diese Codes zu verstehen. Grundsätzlich können Sie in jedem Codeabschnitt einige Punkte angeben, um den Abklingmodus und die Dauer der Animationsaktion festzulegen.

Vollständiger Animationscode

JavaScript-CodeInhalt in die Zwischenablage kopieren
  1.   
  2.   
  3.      
  4.        
  5.      
  6.      
  7.     
    "container">
      
  8.     "/js/lib/kinetic-v5.0.1.min.js">   
  9.     "defer">   
  10.       var sw = 578;   
  11.       var sh = 400;   
  12.       var stage = new Kinetic.Stage({   
  13.         Container: 'Container',   
  14.         Breite: 578,   
  15.         Höhe: 400   
  16.       });   
  17.       var layer = new Kinetic.Layer({   
  18.         y: -30    
  19.       });   
  20.   
  21.       var leftEye = new Kinetic.Line({   
  22.         x: 150,   
  23.         Punkte: [0, 200, 50, 190, 100, 200, 50, 210],   
  24.         Spannung: 0,5,   
  25.         geschlossen: wahr,   
  26.         Strich: 'weiß',   
  27.         Strichbreite: 10        
  28.       });   
  29.   
  30.       var rightEye = new Kinetic.Line({   
  31.         x: sw - 250,   
  32.         Punkte: [0, 200, 50, 190, 100, 200, 50, 210],   
  33.         Spannung: 0,5,   
  34.         geschlossen: wahr,   
  35.         Strich: 'weiß',   
  36.         Strichbreite: 10      
  37.       });   
  38.   
  39.       var nose = neu Kinetic.Line({   
  40.         Punkte: [240, 280, sw/2, 300, sw-240,280],   
  41.         Spannung: 0,5,   
  42.         geschlossen: wahr,   
  43.         Strich: 'weiß',   
  44.         Strichbreite: 10   
  45.       });   
  46.   
  47.       var mouth = new Kinetic.Line({   
  48.         Punkte: [150, 340, sw/2, 380, sw - 150, 340, sw/2, sh],   
  49.         Spannung: 0,5,   
  50.         geschlossen: wahr,   
  51.         Strich: 'rot',   
  52.         Strichbreite: 10   
  53.       });   
  54.   
  55.       layer.add(leftEye)   
  56.            .add(rightEye)   
  57.            .add(nose)   
  58.            .add(mouth);   
  59.   
  60.       stage.add(layer);   
  61.   
  62.       // Tweens   
  63.   
  64.       var leftEyeTween = new Kinetic.Tween({   
  65.         node: leftEye,   
  66.         Dauer: 1,   
  67.         easing: Kinetic.Easings.ElasticEaseOut,   
  68.         y: -100,   
  69.         Punkte: [0, 200, 50, 150, 100, 200, 50, 200]   
  70.       });    
  71.   
  72.       var rightEyeTween = new Kinetic.Tween({   
  73.         node: rightEye,   
  74.         Dauer: 1,   
  75.         easing: Kinetic.Easings.ElasticEaseOut,   
  76.         y: -100,   
  77.         Punkte: [0, 200, 50, 150, 100, 200, 50, 200]   
  78.       });   
  79.   
  80.       var noseTween = new Kinetic.Tween({   
  81.         node: nase,   
  82.         Dauer: 1,   
  83.         easing: Kinetic.Easings.ElasticEaseOut,   
  84.         y: -100,   
  85.         Punkte: [220, 280, sw/2, 200, sw-220,280]   
  86.       });    
  87.   
  88.       var mouthTween = new Kinetic.Tween({   
  89.         Knoten: Mund,   
  90.         Dauer: 1,   
  91.         easing: Kinetic.Easings.ElasticEaseOut,   
  92.         Punkte: [100, 250, sw/2, 250, sw - 100, 250, sw/2, sh-20]   
  93.       });    
  94.   
  95.       stage.getContainer().addEventListener('mouseover'function() {   
  96.         leftEyeTween.play();   
  97.         rightEyeTween.play();   
  98.         noseTween.play();   
  99.         mouthTween.play();   
  100.       });   
  101.   
  102.       stage.getContainer().addEventListener('mouseout'function() {   
  103.         leftEyeTween.reverse();   
  104.         rightEyeTween.reverse();   
  105.         noseTween.reverse();   
  106.         mouthTween.reverse();   
  107.       });   
  108.   
  109.        
  110.      
  111.   

Regardez la démo

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Tabellenrahmen in HTML Tabellenrahmen in HTML Sep 04, 2024 pm 04:49 PM

Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

HTML-Rand links HTML-Rand links Sep 04, 2024 pm 04:48 PM

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

Verschachtelte Tabelle in HTML Verschachtelte Tabelle in HTML Sep 04, 2024 pm 04:49 PM

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

HTML-Tabellenlayout HTML-Tabellenlayout Sep 04, 2024 pm 04:54 PM

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

HTML-Eingabeplatzhalter HTML-Eingabeplatzhalter Sep 04, 2024 pm 04:54 PM

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

HTML-geordnete Liste HTML-geordnete Liste Sep 04, 2024 pm 04:43 PM

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

Text in HTML verschieben Text in HTML verschieben Sep 04, 2024 pm 04:45 PM

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.

HTML-Onclick-Button HTML-Onclick-Button Sep 04, 2024 pm 04:49 PM

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.

See all articles