HTML5-Tutorium: Canvas: Hello World 04: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
(Die Seite wurde neu angelegt: „{{HTML5-Tutorium:Canvas:HelloWorld:Menü}} '''Ergebnis''': [http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_0…“)
 
Keine Bearbeitungszusammenfassung
(29 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{HTML5-Tutorium:Canvas:HelloWorld:Menü}}
{{HTML5-Tutorium:Canvas:HelloWorld:Menü}}
'''Ergebnis''': [http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_04/WebContent/hallo.html <code>hallo.html</code>]
'''Musterlösung''': [http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_04/WebContent/hallo.html <code>hallo.html</code>]
([http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_04 SVN-Repository])
([http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_04 SVN-Repository])


=Brwoser-Unhabhängigkeit mit jQuery=
==Voraussetzung==
 
Sie sollten die Inhalte des Tutoriums [[HTML5-Tutorium: Canvas: Hello World 03]] kennen.
 
==Ziel: Browser-Unhabhängigkeit mittels jQuery==
Leider weichen die JavaScript-Implementierungen der einzelnen Browser ziemlich voneinander ab.
Leider weichen die JavaScript-Implementierungen der einzelnen Browser ziemlich voneinander ab.
Daher ist es fast immer sinnvoll, JavaScript-Biliotheken einzusetzen, deren Hauptzweck es ist,
Daher ist es fast immer sinnvoll, JavaScript-Bibliotheken einzusetzen, deren Hauptzweck es ist,
diese Unterschiede auszugleichen. Daneben stellen sie im Allgemeinen auch noch viele sehr
diese Unterschiede auszugleichen. Daneben stellen sie im Allgemeinen auch noch viele sehr
nützliche JavaScript-Erweiterungen zur Verfügung.
nützliche JavaScript-Erweiterungen zur Verfügung.


In diesem Tutorium soll die JavaScript-Bibliothek <code>jQuery</code><ref>[http://jquery.com/ jQuery]</ref> eingesetzt werden.
In diesem Tutorium soll die JavaScript-Bibliothek <code>jQuery</code><ref>[http://jquery.com/ jQuery]</ref> eingesetzt werden.
Außerdem sollen alle Konstanten aus der JavaScript-Datei <code>main.js</code> in eine eigene Datei <code>CONSTANT.js</code> ausgelagert werden.
Dies hat den Vorteil, dass die Konfiguration des Projektes (Bühnenbreite, Font-Wahl etc.) an einer zentralen Stelle erfolgen kann.


==Musterlösung herunterladen==
==Anwendung „<code>HelloWorldCanvas04</code>“==
(Dieser Punkt kann übersprungen werden.)
===Neues Projekt anlegen===
 
Laden Sie die Musterlösung <code>http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_03/</code>
auf [[HTML5-Tutorium: Canvas: Hello World 01#Musterl.C3.B6sung_herunterladen|bekannte Weise]] in Eclipse.
 
==Neues Projekt anlegen==


Legen Sie ein neues Projekt an
Legen Sie ein neues „Statisches Web-Projekt“ mit dem Namen <code>HelloWorldCanvas04</code> an.


# <code>Datei</code> → <code>Neu</code> → <code>Statisches Web-Projekt</code>
Speichern Sie dieses Projekt wie üblich in Ihrem Repository.
# Project name: <code>HelloWorldCanvas03</code> → <code>Fertigstellen</code>


===Daten übernehmen und modifizieren===
Legen Sie die Ordner <code>js</code> und <code>css</code> an und kopieren Sie die Dateien <code>main.js</code>, <code>main.css</code> und  
Legen Sie die Ordner <code>js</code> und <code>css</code> an und kopieren Sie die Dateien <code>main.js</code>, <code>main.css</code> und  
<code>hello.html</code> aus <code>HelloWorldCanvas03</code> in die entsprechenden Ordner <code>WebContent</code> des neuen Projektes.
<code>hello.html</code> aus <code>HelloWorldCanvas03</code> in die entsprechenden Ordner <code>WebContent</code> des neuen Projektes.
Zeile 45: Zeile 46:
aktuelle Änderungen an den CSS- und JavaScript-Dateien nicht berücksichtigt werden.
aktuelle Änderungen an den CSS- und JavaScript-Dateien nicht berücksichtigt werden.


Nachdem Sie diese Version getestet haben, sollten Sie sie zunächst in Ihrem Repository speichern:
===Einbinden von jQuery===
 
# <code>Projektexplorer</code>: Rechtsklick auf <code>HelloWorldCanvas04</code> → <code>Team</code> → <code>Projekt gemeinsam nutzen</code>
# <code>SVN</code> → <code>Weiter</code>
# Url: <code> https://praktikum.multimedia.hs-augsburg.de/svn/ACCOUNT</code> ('''<code>ACCOUNT</code> durch eigenen RZ-Account ersetzen''') → <code>Weiter</code>
# Use specified folder name: <code>mmprog/tutorium/HelloWorldCanvas04</code> → <code>Fertigstellen</code>
# Im Projektexplorer: Rechtsklick auf <code>HelloWorldCanvas04</code> → <code>Team</code> → <code>Commit</code>
# Comment: <code>Neues Projekt angelegt.</code>
# <code>OK</code>
 
==Einbinden von jQuery==


Laden Sie die [http://jquery.com/ komprimierte Version von <code>jQuery</code>] herunter
Laden Sie die [http://jquery.com/ komprimierte Version von <code>jQuery</code>] herunter
Zeile 61: Zeile 52:
Festplatte. Binden Sie nun <code>jQuery</code> in Ihr Projekt ein:
Festplatte. Binden Sie nun <code>jQuery</code> in Ihr Projekt ein:


# <code>Projektexplorer</code>: Rechtsklick auf <code>WebContent</code> im Ordner <code>HelloWorldCanvas04</code> → Klick auf <code>Neu</code> → Klick auf <code>Ordner</code>
* <code>Projektexplorer</code>: Rechtsklick auf <code>WebContent</code> im Ordner <code>HelloWorldCanvas04</code> → Klick auf <code>Neu</code> → Klick auf <code>Ordner</code>
# Ordnername: <code>lib</code> → <code>Fertigstellen</code>
* Ordnername: <code>lib</code> → <code>Fertigstellen</code>
# Rechtsklick auf den neu erstellen Ordner <code>lib</code> → Klick auf <code>Importieren</code>
* Rechtsklick auf den neu erstellen Ordner <code>lib</code> → Klick auf <code>Importieren</code>
# <code>Allgemein</code> aufklappen → Klick auf <code>Dateisystem</code> → Klick auf <code>Weiter</code> → Aus Verzeichnis: <code>&lt;Verzeichnis, in dem jQuery liegt&gt;</code> → Häckchen vor <code>jquery.min.js</code> → <code>Fertigstellen</code> (Beachten Sie, im Projektexplorer wird für ihr Projekt nun anagezeigt, dass es nicht frei von Syntaxfehlern sein soll.)  
* <code>Allgemein</code> aufklappen → Klick auf <code>Dateisystem</code> → Klick auf <code>Weiter</code> → Aus Verzeichnis: <code>&lt;Verzeichnis, in dem jQuery liegt&gt;</code> → Häckchen vor <code>jquery.min.js</code> → <code>Fertigstellen</code> (Beachten Sie, im Projektexplorer wird für ihr Projekt nun anagezeigt, dass es nicht frei von Syntaxfehlern sein soll.)  
# <code>Projektexplorer</code>: Rechtsklick auf <code>HelloWorldCanvas04</code> → Klick auf <code>Eigenschaften</code> → Klick auf <code>JavaScript</code> aufklappen → Klick auf <code>IncludePath</code>   
* <code>Projektexplorer</code>: Rechtsklick auf <code>HelloWorldCanvas04</code> → Klick auf <code>Eigenschaften</code> → Klick auf <code>JavaScript</code> aufklappen → Klick auf <code>IncludePath</code>   
# Klick auf Reiter <code>Quelle</code> → <code>HelloWorldCanvas04/WebContent</code> aufklappen → Klick auf <code>Aussgeschlossen: (Kein)</code> → Klick auf <code>Bearbeiten ...</code>
* Klick auf Reiter <code>Quelle</code> → <code>HelloWorldCanvas04/WebContent</code> aufklappen → Klick auf <code>Ausgeschlossen: (Kein)</code> → Klick auf <code>Bearbeiten ...</code>
# Klick auf <code>Hinzufügen</code> '''unter „Ausschlussmuster“''' (= '''zweiter''' Buton mit diesem Label!) → Eingabe von <code>lib/**</code> ins Textfeld  
* Klick auf <code>Hinzufügen</code> '''unter „Ausschlussmuster“''' (= '''zweiter''' Buton mit diesem Label!) → Eingabe von <code>lib/**</code> ins Textfeld  
# <code>OK</code> → <code>Fertigstellen</code> → <code>OK</code>
* <code>OK</code> → <code>Fertigstellen</code> → <code>OK</code>


===Anmerkungen===
====Anmerkungen====


Externe, d.h. nicht von Ihnen geschrieben JavaScript-Bibliotheken, sollten nicht im Ordner <code>js</code> liegen,  
Externe, d.h. nicht von Ihnen geschrieben JavaScript-Bibliotheken, sollten nicht im Ordner <code>js</code> liegen,  
Zeile 80: Zeile 71:
Fehler darinnen enthalten sind. Bei <code>jquery.min.js</code> ist dies beispielsweise der Fall.  
Fehler darinnen enthalten sind. Bei <code>jquery.min.js</code> ist dies beispielsweise der Fall.  
Nach dem Ausschluss des Ordners <code>lib</code> vom Syntaxchecking, sind die Fehlermarkierungen im Projektexplorer wieder verschwunden.
Nach dem Ausschluss des Ordners <code>lib</code> vom Syntaxchecking, sind die Fehlermarkierungen im Projektexplorer wieder verschwunden.
Außerdem wird der Benutzer beim Speichern des Projektes im Repositorys nicht dauern mit einer Warnmeldung, dass im PRojekt noch Fehler enthalten seien, gebervt.
Außerdem wird der Benutzer beim Speichern des Projektes im Repositorys nicht dauern mit einer Warnmeldung, dass im Projekt noch Fehler enthalten seien, genervt.


===Build-Skript ausführen===
===JavaScript-Code auf <code>jQuery</code> umstellen===


Bei der [[Installation von Eclipse]] sollten Sie den „YUI Compressor“ installieren.
Bevor Sie <code>jqeury.min.js</code> verwenden können, müssen Sie diese Datei in der HTML-Datei <code>hallo.html</code> laden.
Aufgabe dieses Tools ist es, die beiden Dateien  <code>all.min.css</code> und
Erweitern Sie also den entsprechenden Abschnitt im HTML-Header:
<code>all.mim.js</code> zu erstellen. Sie enthalten
jeweils den Code aller CSS- bzw. JavaScript-Dateien, die sich im Ordner <code>css</code> bzw. <code>js</code> befinden.
Leerzeichen, Kommentare und andere überflüssige Informationen werden entfernt um Platz zu sparen und damit die Downloadzeiten zu reduzieren.
Man kann allerdings erzwingen, dass bestimmte Kommentare (z.B. Lizenzinformationen) erhalten bleiben.<ref>[https://github.com/yui/yuicompressor/blob/master/doc/README YUI-Compressor-Dokumentation]</ref>


Zusammen mit dem YUI Compressor wurde die Datei <code>[http://glossar.hs-augsburg.de/beispiel/eclipse/build.xml build.xml]</code> installiert. Diese Skript muss zunächst in Eclipse integriert und anschließend ausgeführt werden:
<source lang="html4strict">
    <!-- Laden aller JavaScript-Dateien -->
    <script type="text/javascript" src="lib/jquery.min.js"></script>
<!--<script type="text/javascript" src="js/all.min.js"    ></script>-->
    <script type="text/javascript" src="js/CONSTANT.js"  ></script>
    <script type="text/javascript" src="js/main.js"      ></script>
</source>


# Projektexplorer: Selektion des aktuellen Projektes
Die JavaScript-Datei <code>CONSTANT.js</code> enthält folgende Konstanten-Definitionen:
# Klick auf den Drop-Down-Pfeil rechts neben dem Icon „grüner Kreis mit weißem Pfeil und Werkzeugkasten“ → <code>Externe Tools Konfigurationen</code>
# <code>Ant-Erstellung</code> selektieren
# Klick auf das Icon „weißes Blatt mit Plus-Symbol“ (damit wird eine neues Skript erstellt, das ein externes Tool ausführt)
#* Name: <code>Compress</code>
#* Erstellungsdatei: <code>D:\web\eclipse\dropins\yuicompressor\build.xml</code> (das ist das zuvor erstellte Build-Skript, passen Sie gegebenenfalls den Ordner an)
#* Basisverzeichnis: <code>${project_loc}</code>
#* Argumente: <code>-DPROJECT=${project_name}</code>
#<code>Ausführen</code> (Damit wird das Skript auf das zuvor selektierte Projekt angewendet.)


Künftig kann irgendein Projekt selektiert werden. Mittels eines Klicks
<source lang="javascript">
auf das „grüner Kreis mit weißem Pfeil und Werkzeugkasten“ werden für diese Projekt
"use strict"; /* Warne vor unsauberem JavaScript-Code! */
die Dateien  <code>all.min.css</code> und <code>all.min.js</code> erstellt und die
Projektdateien (sofern dies im Build-Skript konfiguriert wurde) zum externen Server kopiert.
const CANVAS_WIDTH  = 300,
      CANVAS_HEIGHT =  27,


Wenn man mehrere externe Tools verwendet, muss man den Drop-Down-Pfeil rechts neben dem Icon „grüner Kreis mit weißem Pfeil und Werkzeugkasten“
      HELLO_POS_X      =  5,
klicken und dann das Tool <code>Compress</code> klicken (nachdem man zuvor im Prjektexplorer ein Projekt selektiert hat).
      HELLO_POS_Y      = 20,
      HELLO_FONT_FAMILY = "'Times New Roman', Times, serif",
      HELLO_FONT_SIZE  = 20,
      HELLO_FONT_WEIGHT = "bold";
</source>


===Ergebnis des Build-Skripts===
Anschließend können Sie die JavaScript-Datei <code>main.js</code> anpassen:


Nach Ausführen des Build-Skripts sollten die Dateien <code>all.min.css</code> und <code>all.min.js</code> existieren und damit die Datei
<source lang="javascript">
<code>hello.html</code> ausgeführt werden können.
  window.onload = init;
</source>


====<code>all.min.css</code>====
wird durch
<source lang="css">
 
#d_name{width:185px}#d_canvas{margin-top:10px;border-color:#bbb;border-width:2px;border-style:solid}
<source lang="javascript">
  $(document).ready(init);
</source>
</source>


====<code>all.min.js</code>====
ersetzt.
 
In der <code>init</code>-Funktion werden folgende Anpassungen vorgenommen:
 
<source lang="javascript">
<source lang="javascript">
"use strict";var v_canvas;var v_context;window.onload=init;function init(){v_canvas=document.getElementById("d_canvas");...</source>
  g_canvas  = document.getElementById("d_canvas");
  g_canvas.width  = 300;
  g_canvas.height =  27;


==Testen und speichern==
  g_context = g_canvas.getContext("2d");
</source>


Nun sollt Ihre Web-Anwendung wieder funktionieren.
wird durch
Testen Sie Sie und speichern Sie sie in Imrem Repository.


# Im Projektexplorer: Rechtsklick auf <code>HelloWorldCanvas03</code> → <code>Team</code> → <code>Commit</code>
<source lang="javascript">
# Comment: <code>CSS- und JS-Dateien komprimiert.</code>
  g_canvas  = $("#d_canvas")
# <code>OK</code>
                .attr("width",  CANVAS_WIDTH)
                .attr("height", CANVAS_HEIGHT)
                [0]  // Array-Zugriff um das Raw-Canvas-Objekt
                    // aus dem jQuery-Objekt zu extrahieren
              ;
  g_context = g_canvas.getContext("2d");
</source>


==Konfiguration des Build-Skripts==
und


Abhänging von Ihrer Test-Umgebung müssen Sie die Zeile
<source lang="javascript">
<source lang="xml">
  // Interaktive HTML-Formular-Elemente mit JavaScript verknüpfen.
...
   document.getElementById("d_button_ok").onmousedown = sayHello;
   <property name="DIST_DIR" value="WebContent" description="Output folder for build targets" />
...
</source>
</source>
der Datei <code>D:\web\eclipse\dropins\yuicompressor\build.xml</code>, die Sie zusammen mit dem YUI Compressor installiert haben,
eventuell anpassen.


Wenn Sie einen externen Server (wie beispielsweise einen Apache) installiert haben,
durch
dann können Sie auch die Zeile
 
<source lang="xml">
<source lang="javascript">
   <property name="DIST_DIR" value="D:/web/apache/htdocs/${PROJECT}" description="Output folder for build targets" />
   // Interaktive HTML-Formular-Elemente mit JavaScript verknüpfen.
  $("#d_button_ok").click(sayHello);
</source>
</source>
verwenden. Diese bewirkt, dass der Web-Auftritt samt komprimierten Dateien <code>all.min.css</code> und <code>all.min.js</code>
direkt in den Web-Ordner des externen Apache-Servers exportiert werden. Den Dokument-Root-Pfad müssen Sie wieder an Ihre Gegebenheiten anpassen.


Der Vorteil der zweiten Lösung ist, dass die Änderung nach Ausführung der Build-Datei '''sofort''' auf dem externen Server verfügbar sind.
Abschließend wird der vollständige Inhalt der <code>sayHello</code>-Funktion durch
folgenden Code ersetzt:


=Quellen=
<source lang="javascript">
  g_context.clearRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); // clear canvas
  g_context.font =        HELLO_FONT_WEIGHT
                  + " " + HELLO_FONT_SIZE + "px"
                  + " " + HELLO_FONT_FAMILY;
  g_context.fillText("Hallo " + $("#d_name").val() + "!",
                    HELLO_POS_X, HELLO_POS_Y
                    );
</source>
 
===Testen und speichern===
 
Testen Sie Ihre Anwendung und speichern Sie sie in Ihrem Repository.
 
'''Wenn Sie den Ordner <code>lib</code> nicht von der Syntaxcheck-Behandlung ausgenommen haben, poppt eine Warnung auf, dass Ihr Code Fehler enthält. Wenn nur <code>jquery.js</code> oder
<code>jquery.min.js</code> als fehlerhaft markiert wurde, können Sie Ihr Projekt trotzdem sichern.'''
 
==Quellen==
<references/>
<references/>
<ol>
<ol>
<li value="3"> {{Quelle|Kowarschick, W.: Multimedia-Programmierung}}</li>
<li value="2"> {{Quelle|Kowarschick, W.: Multimedia-Programmierung}}</li>
</ol>
</ol>
==Fortsetzung des Tutoriums==
Sie sollten nun entweder das [[HTML-Tutorium: SVG: Hello World|Hello-World-SVG-Tutorium]]
oder das [[HTML5-Tutorium: Canvas: MiniPong|Minipong-Canvas-Tutorium]] bearbeiten.


[[Kategorie: HTML5-Tutorium: Canvas: Hello World]][[Kategorie: HTML5-Beispiel]][[Kategorie:Kapitel:Multimedia-Programmierung:Beispiele]]
[[Kategorie: HTML5-Tutorium: Canvas: Hello World]][[Kategorie: HTML5-Beispiel]][[Kategorie:Kapitel:Multimedia-Programmierung:Beispiele]]
</noinclude>
</noinclude>

Version vom 23. September 2016, 14:43 Uhr

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen:

Korrektheit: 4
(großteils überprüft)
Umfang: 4
(unwichtige Fakten fehlen)
Quellenangaben: 5
(vollständig vorhanden)
Quellenarten: 5
(ausgezeichnet)
Konformität: 4
(sehr gut)

HTML-Tutorium Hello World: JavaScript | Canvas | SVG

Inhalt | Teil 1 | Teil 2

Musterlösung: hallo.html (SVN-Repository)

Voraussetzung

Sie sollten die Inhalte des Tutoriums HTML5-Tutorium: Canvas: Hello World 03 kennen.

Ziel: Browser-Unhabhängigkeit mittels jQuery

Leider weichen die JavaScript-Implementierungen der einzelnen Browser ziemlich voneinander ab. Daher ist es fast immer sinnvoll, JavaScript-Bibliotheken einzusetzen, deren Hauptzweck es ist, diese Unterschiede auszugleichen. Daneben stellen sie im Allgemeinen auch noch viele sehr nützliche JavaScript-Erweiterungen zur Verfügung.

In diesem Tutorium soll die JavaScript-Bibliothek jQuery[1] eingesetzt werden. Außerdem sollen alle Konstanten aus der JavaScript-Datei main.js in eine eigene Datei CONSTANT.js ausgelagert werden. Dies hat den Vorteil, dass die Konfiguration des Projektes (Bühnenbreite, Font-Wahl etc.) an einer zentralen Stelle erfolgen kann.

Anwendung „HelloWorldCanvas04

Neues Projekt anlegen

Legen Sie ein neues „Statisches Web-Projekt“ mit dem Namen HelloWorldCanvas04 an.

Speichern Sie dieses Projekt wie üblich in Ihrem Repository.

Daten übernehmen und modifizieren

Legen Sie die Ordner js und css an und kopieren Sie die Dateien main.js, main.css und hello.html aus HelloWorldCanvas03 in die entsprechenden Ordner WebContent des neuen Projektes. Passen Sie das title-Element in der Datei hello.html an.

Ändern Sie den Haeder der HTML-Datei hallo.html so ba, dass Sie die unkomprimierten CSS- und JavaScript-Dateien einbinden.

    <!-- Laden aller CSS-Dateien -->
<!--<link rel="stylesheet" href="css/all.min.css" />-->
    <link rel="stylesheet" href="css/main.css"    />

    <!-- Laden aller JavaScript-Dateien -->
<!--<script type="text/javascript" src="js/all.min.js"></script>-->
    <script type="text/javascript" src="js/main.js"   ></script>

Anderenfalls müssten Sie vor jedem Test zunächst das Komprimierungsskript build.xml ausführen. Dies vergisst man recht schnell und testet dann eine alte Version, bei der aktuelle Änderungen an den CSS- und JavaScript-Dateien nicht berücksichtigt werden.

Einbinden von jQuery

Laden Sie die komprimierte Version von jQuery herunter und speichern Sie diese unter dem Namen jquery.min.js irgendwo auf Ihrer Festplatte. Binden Sie nun jQuery in Ihr Projekt ein:

  • Projektexplorer: Rechtsklick auf WebContent im Ordner HelloWorldCanvas04 → Klick auf Neu → Klick auf Ordner
  • Ordnername: libFertigstellen
  • Rechtsklick auf den neu erstellen Ordner lib → Klick auf Importieren
  • Allgemein aufklappen → Klick auf Dateisystem → Klick auf Weiter → Aus Verzeichnis: <Verzeichnis, in dem jQuery liegt> → Häckchen vor jquery.min.jsFertigstellen (Beachten Sie, im Projektexplorer wird für ihr Projekt nun anagezeigt, dass es nicht frei von Syntaxfehlern sein soll.)
  • Projektexplorer: Rechtsklick auf HelloWorldCanvas04 → Klick auf Eigenschaften → Klick auf JavaScript aufklappen → Klick auf IncludePath
  • Klick auf Reiter QuelleHelloWorldCanvas04/WebContent aufklappen → Klick auf Ausgeschlossen: (Kein) → Klick auf Bearbeiten ...
  • Klick auf Hinzufügen unter „Ausschlussmuster“ (= zweiter Buton mit diesem Label!) → Eingabe von lib/** ins Textfeld
  • OKFertigstellenOK

Anmerkungen

Externe, d.h. nicht von Ihnen geschrieben JavaScript-Bibliotheken, sollten nicht im Ordner js liegen, da diese im allgemeinen schon komprimiert wurden und vom build nicht noch einmal komprimiert werden sollten. Daher wurde der neue Ordner lib angelegt.

Für diesen Ordner wurde außerdem das Syntax-Checking deaktiviert, da bei komprimierten JavaScript-Bibliotheken von Eclipse häufig Syntaxfehler gemeldet werden, obwohl überhaupt keine Fehler darinnen enthalten sind. Bei jquery.min.js ist dies beispielsweise der Fall. Nach dem Ausschluss des Ordners lib vom Syntaxchecking, sind die Fehlermarkierungen im Projektexplorer wieder verschwunden. Außerdem wird der Benutzer beim Speichern des Projektes im Repositorys nicht dauern mit einer Warnmeldung, dass im Projekt noch Fehler enthalten seien, genervt.

JavaScript-Code auf jQuery umstellen

Bevor Sie jqeury.min.js verwenden können, müssen Sie diese Datei in der HTML-Datei hallo.html laden. Erweitern Sie also den entsprechenden Abschnitt im HTML-Header:

    <!-- Laden aller JavaScript-Dateien -->
    <script type="text/javascript" src="lib/jquery.min.js"></script>
<!--<script type="text/javascript" src="js/all.min.js"    ></script>-->
    <script type="text/javascript" src="js/CONSTANT.js"   ></script>
    <script type="text/javascript" src="js/main.js"       ></script>

Die JavaScript-Datei CONSTANT.js enthält folgende Konstanten-Definitionen:

"use strict"; /* Warne vor unsauberem JavaScript-Code! */
 
const CANVAS_WIDTH  = 300,
      CANVAS_HEIGHT =  27,

      HELLO_POS_X       =  5,
      HELLO_POS_Y       = 20,
      HELLO_FONT_FAMILY = "'Times New Roman', Times, serif",
      HELLO_FONT_SIZE   = 20,
      HELLO_FONT_WEIGHT = "bold";

Anschließend können Sie die JavaScript-Datei main.js anpassen:

  window.onload = init;

wird durch

  $(document).ready(init);

ersetzt.

In der init-Funktion werden folgende Anpassungen vorgenommen:

  g_canvas  = document.getElementById("d_canvas");
  g_canvas.width  = 300;
  g_canvas.height =  27;

  g_context = g_canvas.getContext("2d");

wird durch

  g_canvas  = $("#d_canvas")
                .attr("width",  CANVAS_WIDTH)
                .attr("height", CANVAS_HEIGHT)
                [0]  // Array-Zugriff um das Raw-Canvas-Objekt 
                     // aus dem jQuery-Objekt zu extrahieren
              ;
  g_context = g_canvas.getContext("2d");

und

  // Interaktive HTML-Formular-Elemente mit JavaScript verknüpfen.
  document.getElementById("d_button_ok").onmousedown = sayHello;

durch

  // Interaktive HTML-Formular-Elemente mit JavaScript verknüpfen.
  $("#d_button_ok").click(sayHello);

Abschließend wird der vollständige Inhalt der sayHello-Funktion durch folgenden Code ersetzt:

  g_context.clearRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); // clear canvas
  g_context.font =         HELLO_FONT_WEIGHT
                   + " " + HELLO_FONT_SIZE + "px"
                   + " " + HELLO_FONT_FAMILY;
  g_context.fillText("Hallo " + $("#d_name").val() + "!",
                     HELLO_POS_X, HELLO_POS_Y
                    );

Testen und speichern

Testen Sie Ihre Anwendung und speichern Sie sie in Ihrem Repository.

Wenn Sie den Ordner lib nicht von der Syntaxcheck-Behandlung ausgenommen haben, poppt eine Warnung auf, dass Ihr Code Fehler enthält. Wenn nur jquery.js oder jquery.min.js als fehlerhaft markiert wurde, können Sie Ihr Projekt trotzdem sichern.

Quellen

  1. Kowarschick (MMProg): Wolfgang Kowarschick; Vorlesung „Multimedia-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 3 (Vorlesung)

Fortsetzung des Tutoriums

Sie sollten nun entweder das Hello-World-SVG-Tutorium oder das Minipong-Canvas-Tutorium bearbeiten.