Ergebnis 1 bis 6 von 6

Thema: Uhr-Widget

  1. #1
    3dots
    Inaktiv

    Uhr-Widget

    Hallo,

    ich versuche gerade ein Widget für das Dashboard zu erstellen. Dabei möchte ich, dass das Widget auch eine analoge Uhr enthält, ähnlich wie World-Clock. Leider habe ich keine Ahnung, wie ich sowas programmieren kann.
    Ich nehme an, ich brauche Canvas. Auf Apple.de habe ich ein Tutrorial gefunden, kann es aber nicht umsetzen.
    Mein Java-Code sieht so aus:

    [FONT=Helvetica]function drawHands (hoursAngle, minutesAngle, secondsAngle)[/FONT]
    [FONT=Helvetica]{[/FONT]
    [FONT=Helvetica] var canvas = document.getElementById("myCanvas");[/FONT]
    [FONT=Helvetica] var context = canvas.getContext("2d");[/FONT]

    [FONT=Helvetica] context.clearRect(0, 0, 100, 100);[/FONT]
    [FONT=Helvetica] context.save();[/FONT]
    [FONT=Helvetica] context.translate(100/2, 100/2);[/FONT]
    [FONT=Helvetica] context.save();[/FONT]

    [FONT=Helvetica] context.rotate(hoursAngle);[/FONT]
    [FONT=Helvetica] context.drawImage(hourhand, -4, -28, 9, 25);[/FONT]
    [FONT=Helvetica] context.restore();[/FONT]
    [FONT=Helvetica] context.save();[/FONT]

    [FONT=Helvetica] context.rotate (minutesAngle);[/FONT]
    [FONT=Helvetica] context.drawImage (minhand, -8, -44, 18, 53);[/FONT]
    [FONT=Helvetica] context.restore();[/FONT]

    [FONT=Helvetica] context.rotate (secondsAngle);[/FONT]
    [FONT=Helvetica] context.drawImage (sechand, -4, -52, 8, 57);[/FONT]
    [FONT=Helvetica] context.restore();[/FONT]
    [FONT=Helvetica]}[/FONT]

    und mein html-Code so:
    Code:
     [FONT=Helvetica]<div class="clock">[/FONT][FONT=Helvetica] AM[/FONT][FONT=Helvetica] <canvas id="myCanvas" width='100' height='100'/>[/FONT][FONT=Helvetica]</div>[/FONT]
    Kann mir jemand helfen, oder kennt jemand ein Tutorial, was einem erklärt, wie man ein Uhr-Widget erstellt?

    Danke!

  2. #2
    seb2
    Inaktiv
    Wird das Canvas denn überhaupt angezeigt?
    Und... bist Du Dir sicher daß die Bilder geladen sind?

    Letztlich... wenn die letzten beiden Parameter bei drawImage() die tatsächliche Größe des Bildes sind kannst Du sie weglassen. drawImage() funktioniert auch nur mit drei Parametern (Bild, X, Y), die letzten beiden Parameter brauchst Du nur wenn Du das Bild gleichzeitig skalieren möchtest.

    Ach ja... Deine save() und restore() solltest Du Dir mal angucken. Einmal sehe ich da direkt ein restore() hinter einem save() -- wozu? Die Zahl der restore() sollte übrigens gleich der Zahl Deiner save() sein, sonst kann das in die Hose gehen.

  3. #3
    3dots
    Inaktiv
    Hallo,

    nein die Canvas wird nicht angezeigt, die Funktion aber aufgerufen. Ich habe die Funktion nochmal umgeschrieben:

    [FONT=Helvetica]function drawHands ()[/FONT]
    [FONT=Helvetica]{[/FONT]
    [FONT=Helvetica] var ctx = document.getElementById('myCanvas').getContext('2d ');[/FONT]
    [FONT=Helvetica] var bighand = new Image();[/FONT]
    [FONT=Helvetica] bighand.src = 'bighand.png';[/FONT]
    [FONT=Helvetica] [/FONT]
    [FONT=Helvetica] ctx.clearRect(0, 0, 100, 100); //Weil jede Sek. aktualiesiert leer, damit nicht überzeichnet[/FONT]
    [FONT=Helvetica] ctx.save();[/FONT]
    [FONT=Helvetica] ctx.translate(100/2, 100/2); //Weil Hände sich um Uhrzentrum drehen sollen[/FONT]
    [FONT=Helvetica] ctx.save();[/FONT]
    [FONT=Helvetica] [/FONT]
    [FONT=Helvetica] //Stundenzeiger[/FONT]
    [FONT=Helvetica] ctx.drawImage(bighand, 50, 50);[/FONT]
    [FONT=Helvetica] [/FONT]
    [FONT=Helvetica] ctx.restore(); //Weil in nächster Sek. wieder neuzeichnen muss[/FONT]
    [FONT=Helvetica]}[/FONT]

  4. #4
    seb2
    Inaktiv
    Wo und wann wird denn die drawHands() überhaupt aufgerufen?

    Edit: Du hast da immer noch ein save() mehr drin als restore(). Das ganze ist ein Stack und den müllst Du mit ungültigen Zuständen zu.
    Geändert von seb2 (06.09.2006 um 14:49 Uhr) Grund: Was vergessen

  5. #5
    3dots
    Inaktiv
    drawHands() wird in setup() aufgerufen, welches in der html-Datei in <body onload="setup()"> ausgeführt wird.

  6. #6
    seb2
    Inaktiv
    Schick mir das doch mal zu oder lad es irgendwo hoch, dann guck ich mir das an.

Ähnliche Themen

  1. widget blockiert
    Von erni88 im Forum OS X
    Antworten: 3
    Letzter Beitrag: 26.12.2005, 13:07
  2. SMS Widget
    Von cb2206 im Forum OS X
    Antworten: 5
    Letzter Beitrag: 22.12.2005, 11:52
  3. Widget für Arbeitsspeicheranzeige
    Von Fuzzi im Forum OS X
    Antworten: 1
    Letzter Beitrag: 09.12.2005, 20:52
  4. Widget Notendurchschnitt...?
    Von rubbergum im Forum Officeanwendungen
    Antworten: 3
    Letzter Beitrag: 20.11.2005, 19:01
  5. Televison Widget
    Von bunt99 im Forum Café
    Antworten: 2
    Letzter Beitrag: 16.11.2005, 09:07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •