Preload Images

Spin

Top Contributor
Java:
function preload(){
	var img;
	for(var i=0; i<preload.arguments.length; i++){
		img = new Image();
	    img.src = preload.arguments[i];
	    bilder[i] = img;
 	}
}

Hallo Leute , wie kann ich der Methode jetzt meine Images übergeben ?
Wäre euch sehr dankbar :)
 

agentone

Bekanntes Mitglied
Das sieht mir eher nach JavaScript aus! Wir sind hier aber ein JAVA-Forum

edit: äh, sorry. hab garnich gewusst, dass es hier auch ein javascript-teil gibt... doppel :hust:
 
Zuletzt bearbeitet:

Atze

Top Contributor
oh, hab weder auf die kategorie, noch auf die signatur der methode geachtet :D ich schlaf zu wenig :D

*edit*

nichtmal "var" hat mich verwirrt :/
 

musiKk

Top Contributor
Vorweg: Alles ungetestet, aber mit Buch geprüft.

Du übergibst einfach die Pfade der Bilder der Funktion. Also praktisch [c]preload("bild1.jpg", "bild2.jpg");[/c].
In JavaScript läuft das mit den Funktionsargumenten etwas seltsam... Nur, weil in der Funktionsdefinition keine Bezeichner in den Klammern stehen heißt das nicht, dass keine Argumente übergeben werden können; sie werden nur nicht an Bezeichner gebunden. Es gibt in jedem Fall ein Array [c]arguments[/c], in dem die Argumente stehen.
 

byte

Top Contributor
Finde ich ziemlich unschön, da man so nicht an der Signatur erahnen kann, wie die Funktion aufzurufen ist.

Gib doch einfach ein Array rein:

Java:
preload(["image1.jpg", "image2.jpg", "image3.jpg"]);

function preload(images){
	for(var i=0; i<images.length; i++){
		var img = new Image();
	    img.src = images[i];
	    bilder[i] = img;
 	}
}
 

musiKk

Top Contributor
Kann man bei Deiner auch nicht; es werden ja keine Image-Objekte, sondern Pfade übergeben. ;)

Aber im Ernst: Wenn man varargs haben will, muss man es glaube ich über das implizite arguments-Array machen. Ansonsten ist es imho in dynamischen Sprachen immer schwerer, die Verwendung zu erkennen, da die Signaturen nicht so viel aussagen, wie in getypten Sprachen.
 

Spin

Top Contributor
Danke für die Infos.

Habe es jetzt so gelöst:

Java:
<!--
// Image-Preloader
image1 = new Image();
image1.src = "thumb01.jpg";
image2 = new Image();
image2.src = "thumb02.jpg";
image3 = new Image();
image3.src = "pic03.jpg";
image4 = new Image();
image4.src = "pic04.jpg";
image5 = new Image();
image5.src = "pic05.jpg";

// swapImage
function swapImage(imgName,swapImg)
{
document.images[imgName].src=swapImg;
}

var bilder = new Array("script/thumb01.jpg","script/thumb02.jpg");
var naechstesBild = 0;  //Index des nächsten Bildes
var verzoegerung = 5000;  //Verzögerung in Millisekunden


function animation() {
		   document.pic.src = bilder[naechstesBild];
		   naechstesBild++;
		   if (naechstesBild==bilder.length) {
		      naechstesBild = 0;
		   }
		   setTimeout("animation();", verzoegerung);
		}
//-->

Nun habe ich zwei arrays , doch irgendwie brauche ich nur eins.

Wie kann man meinen code noch optimieren?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Eisbär Bedingt Images anzeigen Angular, React, JQuery - Fragen zu JavaScript 2

Ähnliche Java Themen


Oben