js, eseménybekövetkezés általi feltételes ágú programfutás vezérles
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ó classez pedig a kérdéses metódusa 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
■ 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();
- }
- }
- 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();
- }
- },
Fut a kód, és semmi probléma nincsen, szóval csak aki ráér esetleg gondolkozhatna velem egyet :)
üdv t
meg az egész pakk
üdv t