Felix Riesterer: JS/DOM - Bild vorladen innerhalb einer Funktion

Beitrag lesen

Liebe(r) ezzemm,

hier im Board

das war ein böser Fehler! Viele hier sind stolz darauf, dass das hier eben kein Board, sondern tatsächlich ein Forum ist (im Gegensatz zu vielen Foren, die genauer betrachtet eben doch Boards sind)... ;-)


var newImage = new Image();

newImage.onload = function () { imageIsLoaded( this ) };
    newImage.src = imgPath + imgNames[i];


> -------------------------------------------------------------------  
  
Soweit klar.  
  

> Da habe ich schon ein Verständnisproblem. Wie kann in der einen Funktion ein Bild erzeugt und gecacht werden, wo erst in der nächsten Funktion der Dateipfad angegeben wird? Und kann man das nicht innerhalb einer Funktion abhandeln?  
  
Hier wird garnix "in einer Funktion gecached". Du musst Dir das völlig anders vorstellen.  
  
1\.) Du erzeugst ein neues Bild-Objekt. Klar.  
2\.) Du weist dem Bildobjekt eine Datenquelle zu. Klar.  
3\.) Der Browser fängt (im Hintergrund!!!) mit dem Laden der Bilddaten an.  
4\.) Du gibst dem Browser eine Anweisung (in Form einer Funktion bzw. eines Funktionsobjektes, das eine andere Funktion namens "imageIsLoaded" aufrufen wird), was er tun soll, wenn er denn mit dem Laden fertig ist. Wie lange das dauern wird, kannst Du (und Dein Script) nicht wissen. Deine Funktion wird zu diesem Zeitpunkt längst abgearbeitet sein. Aber das Funktionsobjekt sagt ihm dann, was er zu tun hat.  
  

> Ich poste hier mal meinen kompletten Code;  
  
NEIIIIIN!!! Bitte nicht! Bitte nur den Teil, bei dem Du nicht weiterkommst! Insbesondere solltest Du relevante Fehlermeldungen oder unerwartete Scriptaktionen aufführen, zu denen Du die passende Stelle im Script zitierst. In diesem Code-Monster will doch niemand freiwillig nach Pilzen suchen gehen.  
  
Übrigens hat sich diese Selbstdisziplin bei mir schon oft bezahlt gemacht, denn um die relevante Code-Stelle für einen Forumseintrag zu ermitteln, musste ich mich schon oft so intensiv mit meinem Script auseinandersetzen, dass ich am Ende die Ursache selbst gefunden habe, und damit mein Problem selbst lösen konnte. Aber das nur als Anekdote am Rande.  
  
Liebe Grüße,  
  
Felix Riesterer.

-- 
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)