Im ersten Teil dieser Serie zur Verwendung von CreateJs haben wir uns EaselJs angesehen. In diesem zweiten und letzten Teil werden wir PreloadJs, SoundJs und TweenJs betrachten.
PreloadJS ist eine Bibliothek, mit der Sie das Laden von Assets verwalten und koordinieren können. Mit PreloadJS können Sie Ihre Assets (Bilder, Sounds, JS, Daten usw.) vorab laden. Es verwendet XHR2, um echte Fortschrittsinformationen bereitzustellen, wenn verfügbar, oder um auf das Laden von Tags zuzugreifen und um den Fortschritt zu verbessern, wenn dies nicht der Fall ist. Es ermöglicht mehrere Warteschlangen, mehrere Verbindungen, Warteschlangen anhalten und vieles mehr.
In PreloadJS ist die LoadQueue-Klasse die Haupt-API für das Vorladen von Inhalt. LoadQueue ist ein Lademanager, der entweder eine einzelne Datei oder eine Warteschlange von Dateien vorladen kann. var queue = new createjs.LoadQueue (true);
, Das Weitergeben von false würde das Laden von Tags nach Möglichkeit erzwingen. LoadQueue bietet verschiedene Ereignisse, die Sie abonnieren können:
Sie können einzelne Dateien durch Aufrufen laden Ladedatei ("Pfad zur Datei")
oder laden Sie mehrere Dateien durch Aufrufen loadManifest ()
und übergeben Sie ein Array der Dateien, die Sie laden möchten.
Die unterstützten Dateitypen von LoadQueue
das Folgende einschließen.
Hier ein Beispiel für die Verwendung von PreloadJS, um eine JavaScript-Datei, einige PNG-Dateien und eine MP3-Datei zu laden.
var canvas = document.getElementById ("Leinwand"); var stage = new createjs.Stage (Zeichenfläche); var Manifest; var Vorspannung; var progressText = new createjs.Text ("", "20px Arial", "# 000000"); progressText.x = 300 - progressText.getMeasuredWidth () / 2; progressText.y = 20; stage.addChild (progressText); stage.update (); function setupManifest () manifest = [src: "collision.js", id: "myjsfile", src: "logo.png", id: "logo", src: "ForkedDeer.mp3", id : "mp3file"]; für (var i = 1; i<=13;i++) manifest.push(src:"c"+i+".png") function startPreload() preload = new createjs.LoadQueue(true); preload.installPlugin(createjs.Sound); preload.on("fileload", handleFileLoad); preload.on("progress", handleFileProgress); preload.on("complete", loadComplete); preload.on("error", loadError); preload.loadManifest(manifest); function handleFileLoad(event) console.log("A file has loaded of type: " + event.item.type); if(event.item.id == "logo") console.log("Logo is loaded"); //create bitmap here function loadError(evt) console.log("Error!",evt.text); function handleFileProgress(event) progressText.text = (preload.progress*100|0) + " % Loaded"; stage.update(); function loadComplete(event) console.log("Finished Loading Assets"); setupManifest(); startPreload();
Innerhalb des setupManifest ()
Funktion fügen wir eine JavaScript-Datei, eine MP3- und eine PNG-Datei hinzu. Wir übergeben ein Objekt mit den Schlüsseln "src" und "id". Durch die Verwendung von "id" können wir das Asset nach dem Laden identifizieren. Zuletzt führen wir eine Schleife durch und fügen 13 weitere Bilder in das Array ein. Sie benötigen nicht immer eine "ID", wenn Sie lediglich sicherstellen möchten, dass einige Assets geladen werden.
Wir hören auf die Ereignisse "fileload", "progress" und "complete". Das Fileload-Ereignis wird ausgelöst, wenn eine einzelne Datei geladen wurde. Der Fortschritt dient dazu, den Fortschritt der loadQueue abzurufen, und der Abschluss des Vorgangs wird ausgelöst, wenn alle Dateien geladen wurden. In dem handleFileLoad ()
Funktion Wir protokollieren den Dateityp, was sehr nützlich sein kann. Wir prüfen auch den Artikel Ich würde
, Auf diese Weise können Sie die Vorladungen verfolgen und mit den Assets entsprechende Maßnahmen ergreifen.
Beachten Sie, dass Sie anrufen müssen, um Sound laden zu können installPlugin (createjs.Sound)
was wir in der getan haben startPreload
Funktion.
Die TweenJS-Bibliothek dient zum Tweening und zur Animation von HTML5- und JavaScript-Eigenschaften. Es bietet eine einfache, aber leistungsstarke Tweening-Schnittstelle. Es unterstützt das Tweening von numerischen Objekteigenschaften und CSS-Stileigenschaften. Außerdem können Sie Tweens und Aktionen miteinander verketten, um komplexe Sequenzen zu erstellen.
Um ein Tween einzurichten, rufen Sie die Tween (Ziel, [Requisiten], [PluginData])
Konstruktor mit den folgenden Optionen.
Die Eigenschaften der Tween-Klasse für ein einzelnes Ziel. Instanzmethoden können für eine einfache Konstruktion und Sequenzierung verkettet werden. Es ist keine sehr große Klasse und hat nur wenige Methoden, aber es ist sehr mächtig.
Das zu (Requisiten, Dauer, Leichtigkeit)
Bei dieser Methode wird ein Tween zwischen den aktuellen Werten und den Zieleigenschaften in eine Warteschlange gestellt. Dauer einstellen auf 0
um sofort auf den Wert zu springen. Numerische Eigenschaften werden von ihrem aktuellen Wert im Tween zum Zielwert getweent. Nicht numerische Eigenschaften werden am Ende der angegebenen Dauer festgelegt.
Das warten (Dauer, passiv)
Warteschlangen warten (im Wesentlichen ein leeres Tween).
Das call (callback, params, scope)
method Führt eine Aktion zum Aufrufen der angegebenen Funktion in eine Warteschlange ein
TweenJS unterstützt eine Vielzahl von Hilfsmaßnahmen, die von der Ease-Klasse bereitgestellt werden.
In der folgenden Demo können Sie auf die Bühne klicken, um die Demo anzuzeigen.
In dieser Demo erstellen wir Bitmap
und Text
Objekte. Wir setzen das Logo von der Oberseite der Bühne ab und wenn der Benutzer auf die Bühne klickt, wechseln wir zur Mitte der Bühne, während er die X- und Y-Skala ändert. Wir nehmen das warten()
Um eine Sekunde zu verzögern, verwenden wir die Anruf()
Methode zum Tween des Textes. Im Text-Tween ändern wir das Alpha, führen eine 360-Grad-Drehung aus, und das Tween-Symbol befindet sich links von der Bühne.
TweenJS macht viel Spaß. Versuchen Sie es mit einigen anderen Eigenschaften der Anzeigeobjekte
SoundJS ist eine Bibliothek, die eine einfache API und leistungsstarke Funktionen bietet, die das Arbeiten mit Audio zu einem Kinderspiel machen. Die meisten dieser Bibliotheken werden statisch verwendet (Sie müssen keine Instanz erstellen). Es funktioniert über Plugins, die die eigentliche Audioimplementierung abstrahieren, sodass die Wiedergabe auf jeder Plattform möglich ist, ohne zu wissen, welche Mechanismen für die Wiedergabe von Sounds erforderlich sind.
Verwenden Sie zur Verwendung von SoundJS die öffentliche API für die Sound-Klasse. Diese API ist für:
Klänge spielen schafft SoundInstance
Instanzen, die einzeln gesteuert werden können. Sie können:
Nachfolgend finden Sie den Mindestcode, den Sie zum Abspielen einer Audiodatei benötigen.
createjs.Sound.initializeDefaultPlugins (); createjs.Sound.alternateExtensions = ["ogg"]; var myInstance = createjs.Sound.play ("IntoxicatedRat.mp3");
Ich konnte das jedoch nicht dazu bringen, auf meinem Rechner in Firefox und Chrome zu arbeiten, obwohl die oben genannten Funktionen im IE funktionieren. Das Standard-Plugin war standardmäßig auf WebAudio eingestellt. Ich musste es registrieren, um HTMLAudio wie folgt verwenden zu können.
createjs.Sound.registerPlugins ([createjs.HTMLAudioPlugin]); console.log (createjs.Sound.activePlugin.toString ()); createjs.Sound.alternateExtensions = ["ogg"]; var mySound = createjs.Sound.play ("IntoxicatedRat.mp3");
In den obigen Codeabschnitten verwenden wir die alternateExtensions
Diese Eigenschaft versucht, den Dateityp OGG zu laden, wenn MP3 nicht geladen werden kann.
Mit den Grundlagen aus dem Weg zu schaffen, werden wir jetzt einen MP3-Player erstellen. Siehe die Demo und den Screenshot unten.
Wir rufen zuerst an registerPlugins ()
Verwenden Sie HTMLAudio und legen Sie eine alternative Erweiterung fest, damit OGG geladen wird, wenn der Browser MP3 nicht unterstützt.
createjs.Sound.registerPlugins ([createjs.HTMLAudioPlugin]); createjs.Sound.alternateExtensions = ["ogg"];
Innerhalb des Ton abspielen()
Funktion nennen wir die abspielen()
Methode, die eine der Tondateien von der wiedergibt Spuren
Array. Wir stellen die Lautstärke mit dem ein setVolume ()
Auf diese Weise verwenden wir den Listener "complete", um alarmiert zu werden, wenn der aktuelle Sound beendet ist.
theMP3 = createjs.Sound.play ("./ sounds /" + tracks [currentSong] + ". mp3"); theMP3.setVolume (vol); theMP3.on ("complete", songFinishedPlaying, null, false);
Im Rest des Codes verwenden wir die abspielen()
, halt()
,Pause()
und fortsetzen()
Methoden.
theMP3.play (); theMP3.stop (); theMP3.pause (); theMP3.resume ();
Ich habe keine zeilenweise Erklärung für den MP3-Player gegeben, aber wenn Sie Fragen haben, können Sie gerne in den Kommentaren nachfragen.
Wie in der ersten Hälfte dieses Tutorials erwähnt, finden Sie hier eine Demo des Space Invaders-Spiels mit Vorspannung, Sound und Tweens.
Damit ist unsere Tour durch CreateJS abgeschlossen. Hoffentlich haben Sie aus den letzten beiden Artikeln gesehen, wie einfach es ist, interaktive Anwendungen mit CreateJS zu erstellen.
Die Dokumentation ist erstklassig und enthält eine Vielzahl von Beispielen, also schauen Sie sich diese unbedingt an.
Ich hoffe, dass Sie dieses Tutorial als hilfreich empfunden haben und sich auf die Verwendung von CreateJS freuen. Sie haben gerade in ihrem Blog angekündigt, dass nun auch Beta-Unterstützung für WebGL verfügbar ist. Danke fürs Lesen!