HTML5-Tutorium: Canvas: Hello World 01

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg

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

Ergebnis: hello.html (SVN-Repository)

HTML5: Hello-Word-Anwendung mit Canvas

Zur Erstellung der Anwendung wird Eclipse eingesetzt. Alle Eclipse-Versionen ab Helios eignen sich zur Erstellung von HTML5-Web-Anwendungen.

Eclipse vorbereiten

(Dieser Punkt kann übersprungen werden, wenn man den Workspace http://glossar.hs-augsburg.de/svn/eclipse/workspace-mmprog heruntergeladen hat und in Eclipse als akutellen Workspace verwendet.)

Zunächst sollte man die „richtige“ Oberfläche auswählen:

  1. FensterPerspektive öffnenWeb (evtl. unter dem Punkt Andere... zu finden; Beachten Sie, es gibt zwei Web-Perspektiven; Wählen Sie diejenige, die die Weltkugel mit Stift als Icon hat)

Bei Eclipse-Versionen vor Juno muss außerdem der Character Code korrekt eingestellt werden:

  1. FensterBenutzervorgabenWeb aufklappen -> HTML-Files selektieren
  2. Codierung: ISO Latin-1 durch ISO 10646/Unicode(UTF-8) ersetzen
  3. OK

Musterlösung herunterladen

(Dieser Punkt kann übersprungen werden, wenn man den Workspace http://glossar.hs-augsburg.de/svn/eclipse/workspace-mmprog heruntergeladen hat und in Eclipse als akutellen Workspace verwendet.)

Laden Sie die Musterlösunglösung http://glossar.hs-augsburg.de/beispiel/tutorium/html5_canvas/hello_world/html5_canvas_hello_world_01/ in Eclipse:

  1. Klick auf Reiter DateiImportieren
  2. SVN aufklappen → Klick auf Checkout Projects from SVNWeiter
  3. Entweder
  4. Weiter
  5. Nachden der Dateibaum aufgegangen ist: html5_canvas aufklappen → hello_world aufklappen → html5_canvas_hello_worl_01 selektieren
  6. Fertigstellen

Neues Projekt anlegen

  1. DateiNeuStatisches Web-Projekt
  2. Project name: HelloWorldCanvas01Fertigstellen

Speichern Sie nun Ihr Projekt in Ihrem Repository:

  1. Projektexplorer: Rechtsklick auf HelloWorldCanvas01TeamProjekt gemeinsam nutzen
  2. SVNWeiter
  3. Url: https://praktikum.multimedia.hs-augsburg.de/svn/ACCOUNT (ACCOUNT durch eigenen RZ-Account ersetzen; es kann auch jedes andere SVN-Repository verwendet werden) → Weiter
  4. Use specified folder name: mmprog/tutoriumFertigstellen
  5. Eventuell: Häckchen bei Entscheidung merkenNein (Nicht Ja!!!!)

Neue HTML-Datei anlegen

  1. Im Projektexplorer (linkes Fenster): HelloWorldCanvas01 aufklappen
  2. Rechtsklick auf Ordner WebContentNeuHTML file
  3. Dateiname: hello.htmlWeiter → Templates: New HTML File (5)Fertigstellen

HTML-Datei bearbeiten

Erfassen Sie folgenden Code in der HTML-Seite:

<!DOCTYPE html>
<html>
  <head>
    <title>HTML5-Tutorium: Canvas: Hello World 01</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
    <script type="text/javascript">
      function init()
      {
        var l_canvas  = document.getElementById("d_canvas");
        var l_context = l_canvas.getContext("2d");
 
        l_canvas.width  = 300;
        l_canvas.height =  27;

        l_context.font = "bold 20px 'Times New Roman', Times, serif";
        l_context.fillText("Hello, world!", 5, 20);
      }
    </script>
  </head>
  <body onload="init()">
    <canvas id="d_canvas">
      Ihr Browser unterstützt Canvas nicht.
    </canvas>
  </body>
</html>

Auf das Canvas-Element wird ausschließlich von JavaScript aus zugegriffen. Sollte ein Browser dieses Element nicht unterstützen, so wird der alternative HTML-Code innerhalb des Canvas-Element gerendert und ausgegeben. Hier könnte beispielsweise eine Flash-Anwendung ausgeführt werden.

Die Meta-Anweisung

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">

dient dazu, dass der Inhalt der Seite auf einem Smartphone in der richtigen Größe angezeigt wird.

Anmerkung

Es gibt auch einen WYSIWYG-Editor, den Sie folgendermaßen öffnen können:

  1. Rechtklick in das Editor-Fenster → Öffnen mitWeb Page Editor

Allerdings unterstützt dieser WYSIWYG-Editor die HTML5-Zeichenbühne Canvas nicht und ist daher für dieses Tutorium nicht sonderlich nützlich.

HTML-Seite testen

  • hello.html speichern: Strg-s
  • Wichtig: Im Projektexprlorer muss jeweils vor dem Server-Aufruf hello.html selektiert worden sein, sonst erhalten Sie eine Fehlermeldung.
  • In der Icon-Zeile: Klick auf Icon „grüner Kreis mit weißen Dreieck“ → Serverziel auswählen: JavaScript Web Application
  • OK

Anmerkungen zum Test-Sever

Solange Sie nur HTML-Seiten, die JavaScript-Code enthalten, testen wollen, ist das Serverziel JavaScript Web Application die beste Wahl.

Sie können allerdings auch andere Web-Server verwenden:

  • Den HTTP-Preview-Server, der in Eclipse integriert ist (probieren Sie diesen ruhig einmal an Stelle des JavaScript-Web-Application-Servers aus)
  • Tomcat (hier muss Tomcat installiert und mit Eclipse verknüpft werden)
  • Apache (hier muss Apache installiert und mit Eclipse verknüpft werden)
  • etc.

In allen diesen Fällen müssten Sie Run on Server an Stelle von JavaScript Web Application auswählen:

  • In der Icon-Zeile: Klick auf Icon „grüner Kreis mit weißen Dreieck“ → Serverziel auswählen: Run on Server
  • OK

Den HTTP-Preview-Server wählen Sie folgendermaßen:

  • HTTP PreviewFertigstellen

Beachten Sie, dass beim HTTP-Preview-Server mit jedem Klick des Debug-Icons (grüner Keris mit weißen Dreieck) ein neues Browserfenster in Eclipse geöffnet wird. Daher ist es sinnvoller, im bestehenden Browserfenster das Reload-Icon (zwei kreiförmig angeordnete Pfeile) anzuklicken, um Änderungen an einer der Web-Dateien sichtbar zu machen.

Für komplexere Web-Seiten mit PHP-Code, JSP-Code etc. muss man einen echten Server (wie Apache oder Tomcat) installieren und mit Eclipse verknüpfen.

Wenn der von Ihnen gewählte Test-Web-Server Probleme hat, die neuen HTML-Seiten darzustellen, kann es notwendig sein, den Server neu zu starten:

  1. Reiter Server im unteren Fenster selektieren
  2. Klick auf Icon „rotes Recheck“ (Server stoppen)
  3. Klick auf Icon „grüner Kreis mit weißem Dreieck“ (Server starten)

Daten im Repository sichern

Jedes funktionierende Zwischenergebnis sollte im Repository gespeichert werden:

  • Im Projektexplorer: Rechtsklick auf HelloWorldCanvas01TeamCommit
  • OK

JavaScript-Code auslagern

Man sollte i. Allg. vermeiden, Javascript-Code direkt in eine HTML-Seite einzufügen. Diese Verknüpfung von View und Control bringt nur Nachteile mit sich:

  • Der Code wird unübersichtlicher, da zwei unterschiedliche Sprachen gemischt werden (Impedance Mismatch).
  • Der JavaScript-Code kann nicht in mehreren HTML-Dateien eingesetzt werden (Don't Repeat Yourself).
  • Die Ladezeiten der einzelnen Seiten werden länger, wenn derselbe JavaScript-Code in unterschiedlichen Seinten eingebaut ist und für jede dieser Seiten erneut geladen werden muss.

Aus diesen Gründen sollte man den JavaScript-Code in eigene Dateien auslagern:

  1. Rechtsklick auf Ordner WebContentNeuOrdner → Ordnername: jsFertigstellen
  2. Rechtsklick auf Ordner jsNeuDatei → Dateiname: main.jsFertigstellen

Inhalt der Datei main.js

function init()
{
  var l_canvas  = document.getElementById("d_canvas");
  var l_context = l_canvas.getContext("2d");
 
  l_canvas.width  = 300;
  l_canvas.height =  27;

  l_context.font = "bold 20px 'Times New Roman', Times, serif";
  l_context.fillText("Hello, world!", 5, 20);
}

Geänderter Inhalt der Datei hello.html

<!DOCTYPE html>
<html>
  <head>
    <title>HTML5-Tutorium: Canvas: Hello World 01</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
    <script type="text/javascript" src="js/main.js"></script>
  </head>
  <body onload="init()">
    <canvas id="d_canvas">
      Ihr Browser unterstützt Canvas nicht.
    </canvas>
  </body>
</html>

Tipp

Benutzen Sie am Besten die Code-Vervollständigung (Strg-Leerzeichen bzw. Crtl-Space).

Beispiel:

  1. Klicken Sie im Editor-Fenster der Datei main.js in die leer Zeile 5 der Funktion init.
  2. Drücken Sie Strg-Leerzeichen und wählen Sie z.B. l_canvas.
  3. Geben Sie einen Punkt (.) ein und drücken Sie erneut Strg-Leerzeichen.
  4. Löschen Sie den eben erfassten Inhalt wieder. (Ihre Datei main.js sollte ja schon fertiggestellt gewesen sein.)

Daten im Repository sichern

Auch das Endergebnis sollte im Repository gespeichert werden:

  • Im Projektexplorer: Rechtsklick auf HelloWorldCanvas01TeamCommit
  • OK

Quellen

  1. Kowarschick (MMProg): Wolfgang Kowarschick; Vorlesung „Multimedia-Programmierung“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 3 (Vorlesung)
  2. Coding HTML5 Pages Using Eclipse
  3. HTML5 Canvas Text Tutorial
  4. Musterlösung, Musterlösung (SVN)

Siehe auch