sommech: Animation funktioniert nicht

Hallo,

ich lese grad ein http://www.amazon.de/exec/obidos/ASIN/3826670035/qid=1101320677/ref=sr_8_xs_ap_i1_xgl/302-6284844-1084804
DHTML-Buch und eine Animation dort bereitet mir seit einiger Zeit Kopfzerbrechen.
Ich hab das mal abgetippt und überprüft, finde aber keinen Fehler.
http://sommech.so.funpic.de/listing5.3.html
Wo finde ich eigentlich einen JavaScript-Debugger

MfG, sommech

--
You can bomb the world into pieces, but you can't bomb the world into peace.
Wir würden die Welt ja gerne verändern, aber Gott gibt uns den Quelltext nicht.
- von der Linux Gemeinschaft?
Selfcode: sh: ( fo: ) ch: ? rl: ° br: > n4: & ie: % mo: } va: ) de: ] zu: }
flash: | ss: | ls: & js: |
  1. Hallo sommech,

    Manchmal habe ich bei den Eisteigerseminaren von BHV das Gefuehl, dass die Buecher nicht _fuer_ Einsteiger, sondern _von_ Einsteigern geschrieben sind, zumindest denke ich mit Grauen daran zurueck.
    Egal, Deine Meinung hast Du Dir ja offensichtlich schon gebildet.
    Was Dein konkretes Problem anbetrifft, Dir fehlt neben einem Debugger und einem vernuenftigen Buch offenbar auch eine Debugstrategie.
    Zum Debuggen bewaehrt sich die Mozilla Javascript-Konsole, auch die von Opera ist ok. Installiere Dir also Mozilla oder Firefox und die Webdeveloper-Toolbar von Chris Pederick. Die hat einen Button, der sofort anzeigt, wenn was schieflaeuft.
    Ein vernuenftiges Buch, da hab ich mich jahrelang nicht drum gekuemmert, vielleicht weiss da ein anderer Poster was. Das Ding von Helma Spona ist jedenfalls veraltet. Beispiel: Am Anfang hast Du einen ganzen Berg Scripte, die offenbar die Javascript-Version abfragen sollen. Mumpitz. (War da vielleicht der Fehler versteckt?)
    Aber das Wichtigste ist die Debug-Startegie und das geht z.B. so:
    Zuerst brauchst Du einen vernuenftigen Editor, damit du Syntaxhervorhebung hast, Phase5, Proton oder sowas. Tipp: Nimm bei der Entwicklung die HTML-Kommentare <!-- --> aus dem Script-Tag, damit du dort auch Highlighting hast.
    Wenn ein Script garnicht will, was bei Dir ja der Fall ist, kommentierst du aus der Hauptfunktion erstmal alles aus, was nicht absolut trivial ist. Im Idealfall sollte deine init_bewegen-Funktion nur aus alert('test') bestehen, dann wuerdest Du sehen, das nicht mal das laeuft. Vielleicht mal oben den ganzen Browserweichenkram auskommentieren, oder aber die zusaetzlichen Scripte. So musst Du dich Schritt fuer Schritt vorhangeln, bis zumindest eien Fehlermeldung ankommt. Dann hast du schonmal eine Zeilennummer, die dein Problem eingrenzt.

    Was ich uebrigens sehr gut gefunden habe, ist, dass du dir offenbar Muehe gibst, sauberen Code zu schreiben, mit gleichmaessigen Einrueckungen, Klammern untereinander und solche Sachen, das wird sich in jedem Fall bezahlt machen. Ein paar Kommentare waeren auch nicht zu verachten.

    Gruß,

    Dieter

    1. Hallo,

      Hallo sommech,

      Hallo

      Manchmal habe ich bei den Eisteigerseminaren von BHV das Gefuehl, dass die Buecher nicht _fuer_ Einsteiger, sondern _von_ Einsteigern geschrieben sind, zumindest denke ich mit Grauen daran zurueck.

      Der Meinung bin ich mittlerweile auch.

      Egal, Deine Meinung hast Du Dir ja offensichtlich schon gebildet.

      So ist es.

      Was Dein konkretes Problem anbetrifft, Dir fehlt neben einem Debugger und einem vernuenftigen Buch offenbar auch eine Debugstrategie.

      Wird nur kurz angerissen.

      Zum Debuggen bewaehrt sich die Mozilla Javascript-Konsole

      Zeit nur einen Syntax-Terror ;-)

      War da vielleicht der Fehler versteckt?

      Bei den anderen Scripten gings nach Problemen

      Zuerst brauchst Du einen vernuenftigen Editor, damit du Syntaxhervorhebung hast, Phase5, Proton oder sowas. Tipp: Nimm bei der Entwicklung die HTML-Kommentare <!-- --> aus dem Script-Tag, damit du dort auch Highlighting hast.

      Proton erkennt das auch mit Kommentaren :-)

      Wenn ein Script garnicht will, was bei Dir ja der Fall ist, kommentierst du aus der Hauptfunktion erstmal alles aus, was nicht absolut trivial ist. Im Idealfall sollte deine init_bewegen-Funktion nur aus alert('test') bestehen, dann wuerdest Du sehen, das nicht mal das laeuft. Vielleicht mal oben den ganzen Browserweichenkram auskommentieren, oder aber die zusaetzlichen Scripte. So musst Du dich Schritt fuer Schritt vorhangeln, bis zumindest eien Fehlermeldung ankommt. Dann hast du schonmal eine Zeilennummer, die dein Problem eingrenzt.

      Ok, mach ich.

      Was ich uebrigens sehr gut gefunden habe, ist, dass du dir offenbar Muehe gibst, sauberen Code zu schreiben, mit gleichmaessigen Einrueckungen, Klammern untereinander und solche Sachen, das wird sich in jedem Fall bezahlt machen. Ein paar Kommentare waeren auch nicht zu verachten.

      Danke

      MfG, sommech

      --
      You can bomb the world into pieces, but you can't bomb the world into peace.
      Wir würden die Welt ja gerne verändern, aber Gott gibt uns den Quelltext nicht.
      - von der Linux Gemeinschaft?
      Selfcode: sh: ( fo: ) ch: ? rl: ° br: > n4: & ie: % mo: } va: ) de: ] zu: }
      flash: | ss: | ls: & js: |
      1. Hallo,

        Was ist eigentlich mit Syntax-(T)Error gemeint?

        MfG, sommech

        --
        You can bomb the world into pieces, but you can't bomb the world into peace.
        Wir würden die Welt ja gerne verändern, aber Gott gibt uns den Quelltext nicht.
        - von der Linux Gemeinschaft?
        Selfcode: sh: ( fo: ) ch: ? rl: ° br: > n4: & ie: % mo: } va: ) de: ] zu: }
        flash: | ss: | ls: & js: |
        1. Hallo sommech,

          Wenn Du zB. schreibst alert('foo')), dann ist der Syntax-Error die 2. Klammer.
          Bei if('a' == 'b')
              {
                machwas();
          fehlt die 2. Klammer

          Du hast also irgendeine Klammer zuviel/zuwenig oder sowas in der Art. Gerade was Klammern angeht, hilft Brace-Matching. Bei UltraEdit zB. markiert Strg + B vor einer Klammer alles bis zur entsprechenden schliessenden Klammer. UltraEdit ist nebenbei bemerkt ein hervorragender Editor fuer alle Belange und jeden einzelnen Euro wert.

          Gruß,

          Dieter