1st:Cut and Paste this. 2nd:Relink and Rename all JPGs. 3rd:Test it.
<!–
var bTested = false;
var nLoaded = 0;
var cell = 0;
aImage= new Array();
aTime = new Array();
function test()
{
if (!navigator) return(false);
var bname = navigator.appName;
var bnumb = navigator.appVersion;
var rel = bnumb.substring(0,4);
if ((parseFloat(rel) >= 3.0) && (bname==„Netscape“))
return(true);
if ((parseFloat(rel) >= 4.0) && (bname==„Microsoft Internet Explorer“))
return(true);
return(false);
}
function load(prmCnt)
{
aImage= new Array(); // ImageArray reinitialisieren
aTime = new Array(); // TimeArray reinitialisieren
var iTime = 0;
var iImage = „“;
for (var i=0; i<prmCnt; i++) {
switch(i) {
case 0 : iTime=100; iImage="./pictures/ROUGR1_1.JPG"; break;
case 1 : iTime=100; iImage="./pictures/ROUGR2_1.JPG"; break;
case 2 : iTime=100; iImage="./pictures/ROUGR3_1.JPG"; break;
case 3 : iTime=100; iImage="./pictures/ROUGR4_1.JPG"; break;
case 4 : iTime=100; iImage="./pictures/ROUGR5_1.JPG"; break;
default: return(aImage.length);
}
aTime[i] = iTime;
aImage[i]= new Image();
aImage[i].src = iImage;
}
return(aImage.length);
}
function setImg(prmName,prmImage)
{
if (arguments.length != 2) return(false);
var isImage = eval(„window.document.images[’“+prmName+"’]");
if (isImage) {
window.document.images[prmName].src = prmImage.src;
return(true);
}
return(false);
}
function ani(prmCnt)
{
if ((cell>=0) && (cell<prmCnt)) {
var bSet = setImg(„andreas“,aImage[cell]);
if (bSet) window.setTimeout(„ani(“+prmCnt+")",aTime[cell++]);
} else {
cell = 0;
ani(prmCnt);
}
}
function init()
{
bTested = test();
if (bTested) {
nLoaded = load(5);
if (nLoaded) {
ani(nLoaded);
}
}
}
//–>
Hallo,
erstmal kommt es drauf an wie Body-Block und Script-Block vom Browser der Reihe nach abgearbeitet werden. Liegt Dein img-Tag vor dem Script und das Script dahinter sowie beides im Body? Oder ist nur Dein img-Tag im Body und der Script-Block vielleicht im Head? Das ist naemlich entscheidend, da Du naemlich die ueber ani(); schon die Funktion zum rueberladen der Grafiken startest, bevor vielleicht das img-Tag dem Browser schon bekannt ist. Du solltest ani(); am besten im body-Tag ueber onload=„ani();“ starten, nachdem die HTML-Datei vom Browser vollstaendig geladen ist.
Asserdem sehe ich am Ende vom img-Tag ein verweistes -Tag. Ich denke mal, das img-Tag liegt nicht in einer division mit position:absolute; oder in einem layer-Tag. Dann muss das Image im Netscape anders angesteuert werden, naemlich ueber das child-document.
Deine Arrays aTime sowie aImage werden in der load()-Funktion deklariert und initialisiert. In der Regel sind diese Objekte dann nicht in Deiner ani()-Funktion bekannt, da sich der Gueltigkeitsbereich nur auf load() beschraenkt. Entweder uebergibst Du die Werte als Parameter oder Du definierst die Arrays als globale Variablen.
Manche Browser interpretieren new Array(5); als eine Array mit 5 Elementen mit Index von 0 bis 4. Aber man kann ein Array nicht nur ueber new Array(); deklarieren, sondern auch gleich mit Werten belegen, eas man dann Initialisieren nennt. Das sieht dann wie folgt aus: new Array(0,1,2,3,4); In Deinen Fall wird erst mal ein Array initialisiert, was nur ein Element mit der Zahl 5 besitzt!
Wenn Du fuenf Grafiken brauchst und sie komfortabel ueber for-Loop laedst, dann bitte auch for(var i=0; i
var ary = new Array(5);
for (var i=0; i
Entweder kommt 5-mal ein alert „undefined“ oder nur einmal ein alert „5“. Uebrigens waechst das Array automatisch, wenn Du hinten was anhaengst.
Desweiteren wuerde ich mit: var rel = bnumb.substring(0,4); statt mit var rel = bnumb.substring(0,2); arbeiten. Beim Netscape kommt dann auch wirklich „4.76“ statt „4.“ zurueck. Und dann mit parseFloat(rel); statt mit parseInt(rel); Dann haben wir auch wirklich „4.76“ und nicht nur „4“. Denn Du fragst ja auch in der if-Klausel von test() auch >=3.0 oder >=4.0 ab.
If-Abfragen bitte besser schachteln ueber Klammern oder bist Du Dir der Prioritaeten der einzelnen Operatoren immer sicher?
In Deinem Fall bzgl. „&&“ und „>=“ schon klar, aber es kann auch komplizierter werden.
Deine Variablen „bgood“ und „i“ hat hier keine Funktionalitaet, kann also raus, denke ich mal…
Vir2allender aliasing Reallender