03. januar 2007 - 08:43Der er
7 kommentarer og 1 løsning
Undgå at vælge samme billede lige efter ved random
Hejsa
Jeg har dette script som fungere fint - flashfilen fader ud og ind mellem (i dette tilfælde)6 billeder men problemet er at den til tider tager samme billede 2 gange. Hvordan undgår jeg det og stadig med random billeder. Eller hvordan får jeg sat den til at tage fra 1-6 og køre en rækkefølge. Helst først løsning.
På forhånd tak :o)
Camilla
import mx.transitions.*;
createEmptyMovieClip("a5",1); a5._alpha=0;
createEmptyMovieClip("b5",2); b5._alpha=0;
( f= function() { clearInterval(i); if(c == a5) {p = b5} else {p = a5}; // p = ((c == a) ? b : a); ( m5 = new MovieClipLoader()).loadClip("/fileadmin/user_upload/forsideflash/flashimages/b" + _parent.randRange(1,6) + ".jpg", p); m5.onLoadComplete=function() { new Tween(c,"_alpha",0,100,0,50); t = new Tween(c = p,"_alpha",0,0,100,50); t.onMotionFinished = function() { i=setInterval(f, 2000); } } } ).call()
Du kan evt sende det sidst forekomne "tilfældige tal" med i din funktion, og så kalde den rekursivt, hvis det nye tal matcher det gamle. Noget i retning af nedenstående:
function randRange(min, max, old) { tal = Math.round(Math.random()*(max-min))+min; if(old==tal) { return randRange(min, max, old); } //trace(tal); return tal; }
Tjah, du skal jo også sende tallet med, når du kalder funktionen. Jeg er godt nok ikke så skarp i flash, men går ud fra at variablen tal (som jeg sætter i nedenstående eksempel) holdes til næste funktionskald, ellers må den kunne lave statisk på en måde, evt som global-variabel:
f = function() { clearInterval(i); if(c == a5) {p = b5} else {p = a5}; tal = _parent.randRange(1,6, tal); (m5 = new MovieClipLoader()).loadClip("/fileadmin/user_upload/forsideflash/flashimages/b" + tal + ".jpg", p); m5.onLoadComplete=function() { new Tween(c,"_alpha",0,100,0,50); t = new Tween(c = p,"_alpha",0,0,100,50); t.onMotionFinished = function() { i=setInterval(f, 2000); } } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.