Ergens in het begin van mijn stage vroeg Bram kan je een slideshow maken voor in een htmlpagina te embedden. Alle klasieke dingen zijn aanwezig met als extra feature dat er verschillende instances met dezelfde fotos mooi naast elkaar kunnen draaien en er nooit terzelfdertijd 2 dezelfde foto’s te zien zijn.Blijkbaar had hij al een as2 versietje en hij vond het wel fijn om dit in mooie overzichtelijke klasses te hebben die lekker uitbreidbaar waren.
Daarop begon ik met eerst een simpele slideshow die een xml aangeleverd kreeg met daarin informatie zoals de paden naar de images maar ook een autosizeboolean, randomboolean, tweenTime, duration, loopboolean etc.
Afhankelijk wat je bij deze waarden invult zal je slideshow anders reageren.
Zo zal de random de foto’s door elkaar gooien, de loop zorgt er voor dat je op de laatste foto blijft hangen, enz.
Het heeft al bij al nog wat voeten in de aarde gehad om dit te maken en ervoor te zorgen dat het ram geheugen beperkt bleef aangezien er verschillende instances zonder problemen naast elkaar moesten draaien.
Daarna begon ik aan de multiinstancemodus. Hiervoor extende ik gewoon de slideshowklasse en maakte er verschillende instances van. Het probleem van dezelfde foto’s op eenzelfde tijdstip was tamelijk snel opgelost door een verschillende startSlide mee te geven. Dus instanceA begint op 0, instanceB op slides.length / aantalInstances enz. , maar dan kwam het probleem.
De randomfunctie, elke slideshow gooide zijn array door elkaar en speelde die dan mooi af, maar natuurlijk hoe gering ze ook waren de dubbels kwamen voor. Dus begon ik een functie uit te werken waarbij elke array op elke item checkte of het op dezelfde positie voorkwam of niet. Jammer genoeg was dit te intensief naar het einde van de controle toe, want dan dreigde de functie soms vast te lopen in een oneindige loop omdat de keuzes vrij beperkt waren en er toch perse niet dezelfde slides op hetzelfde moment voor mochten komen. De array in een lus steken was ook geen oplossing omdat de controle dan oneindig zou loopen, het zou wel opgelost geraken maar ik zag wel dat dit niet de oplossing was.
En toen schrapte ik even heel veel en begon opnieuw met de random in gedacht, de architectuur van de slideshowklasse werd overhoop gesmeten en we implementeerden pseudo randomnessgoodies die elke slideshow beinvloede en het was af!
Hoewel…
Gisteren kwam ik op een bugje maar ik ben er nog niet in geslaagd het te reproduceren.
En…
Ik ben terzelfdertijd bezig om een offline slideshowtool op poten te zetten met superlekkere PV3D effectjes maar daarover later meer.
