ugrás a tartalomhoz

js, eseménybekövetkezés általi feltételes ágú programfutás vezérles

toxin · 2006. Okt. 24. (K), 08.14
habár a téma címe, bonyolultnak hangzik, egész egyszerű a konkrét probléma, viszont keresek egy általános megoldást amit ezentúl használni tudok :)

szóval adott egy fixen pozicionált, banner(?)

http://toxin.hu/dynban/scroll.html

adott az ezt létrehozó class, aminek az inicalizáló metódusa, windows.onload-ban elhelyezve, viszont közvetlenül utána lefut a képek megjelenítéséért felelős metódus ( addImages ) , és itt jön a probléma a megjelenített képek mérete kisebb mint a preloader képé, ergo annak az előtöltését meg kell oldani, ha az előtöltést az incializáló metódusban helyezem el akkor, az addImages metódus még a preloader kép letöltése előtt lefut (ergo nem lesz loading kép), azt találtam ki, hogy az addImages-t szedem ketté azaz

ez az előtöltés biztosító class

var myImgPreLoader =

	Class.create();
	myImgPreLoader.prototype = {
		
		initialize : function(aImgs,onLoaded){
			this.onLoaded = onLoaded;
			this.aLoadImgs = aImgs;
			this.preloader(this.aLoadImgs);
		},
		
		preloader : function(){
			this.aLoadImgs.each(
				function(img,index){
					this.currentImgIdx = index;
					var tempImg = new Image;					
					tempImg.onload = this.preloaded.bind(this);
					tempImg.onerror = this.preloaded.bind(this);
					tempImg.onabort = this.preloaded.bind(this);
					tempImg.src = img.src;
					
					delete tempImg;
				}.bind(this)
			);			
		},
		
		preloaded : function(){
			if (this.currentImgIdx == this.aLoadImgs.length-1) this.onLoaded();			
		}		
}
ez pedig a kérdéses metódus

	addImages : function(aInicImgs){
			this.aInicImgs = aInicImgs;	
			if (!this.preLoaderLoaded)
			{
				
				this.preLoaderLoaded = true;
				var now = new Date();
				new myImgPreLoader([{src:this.loaderImg.src}],this._addImages.bind(this));	
			}
			else
			{
				this._addImages();
			}
		},
a this.preLoaderLoaded false-ról indul, az itt látható a feltételes programfutási elágazás ami a képelöltés után meghivja a már valóban a feladatott megoldó (_addImages) metódust (lásd forrásban), de a megoldásom nem érzem elegánsnak, ergo kihogyoldaná meg?

Fut a kód, és semmi probléma nincsen, szóval csak aki ráér esetleg gondolkozhatna velem egyet :)

üdv t
 
1

meg az egész pakk

Anonymous · 2006. Okt. 24. (K), 08.23
http://toxin.hu/dynban/dynban_toxin.zip

üdv t