Animation funktioniert nicht
sommech
- javascript
1 Dieter Raber
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
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
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
Hallo,
Was ist eigentlich mit Syntax-(T)Error gemeint?
MfG, sommech
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