10. november 2005 - 09:00
Der er
12 kommentarer og 1 løsning
Random nummer i koden
Jeg har brugt nedenstående kode til at hente en række billeder fra en mappe og vise i flash. Kan man få den til at vise et random nummer så det ikke er samme rækkefølge hver gang? import mx.transitions.*; createEmptyMovieClip("a", 1); a._alpha = 0; createEmptyMovieClip("b", 2); b._alpha = 0; (f=function () { clearInterval(i); p = (c == a ? b : a); (m=new MovieClipLoader()).loadClip("./"+((i=++i%9) || (i=1))+".jpg", p); m.onLoadComplete = function() { new Tween(c, "_alpha", 0, 100, 0, 40); t = new Tween(c=p, "_alpha", 0, 0, 100, 40); t.onMotionFinished = function() { i = setInterval(f, 10000); }; }; }).call();
Annonceindlæg fra Context&
10. november 2005 - 12:35
#1
lav et array med dine billeder i - derefter brug random(array.length) og splice til at tage dem i tilfældig rækkefølge...
10. november 2005 - 12:35
#2
på denne måde sikrer du at det samme billede ikke blive hentet 2 eller flere gange :)
10. november 2005 - 16:09
#3
Kan det ikke integreres i ovenstående kode? - jeg skal nemlig hente billederne fra en ekstern mappe.
10. november 2005 - 17:31
#4
pictArray = new Array(); numOfPicts = 10 // antal billeder for(i=0; i<numOfPicts;i+){ pictArray.push(i) } import mx.transitions.*; createEmptyMovieClip("a", 1); a._alpha = 0; createEmptyMovieClip("b", 2); b._alpha = 0; (f=function () { clearInterval(i); p = (c == a ? b : a); rand = random(pictArray.length); (m=new MovieClipLoader()).loadClip("./"+pictArray[rand]+".jpg", p); pictArray.splice(rand,1); m.onLoadComplete = function() { new Tween(c, "_alpha", 0, 100, 0, 40); t = new Tween(c=p, "_alpha", 0, 0, 100, 40); t.onMotionFinished = function() { i = setInterval(f, 10000); }; }; }).call(); tror jeg :S
10. november 2005 - 17:32
#5
brug evt. Math.ceil(Math.random()*antal du ønsker) til at generere et tilfældigt tal var nuværende:Number = Math.ceil(Math.random()*20)
10. november 2005 - 17:35
#6
Det skal så integreres i denne linie? (m=new MovieClipLoader()).loadClip("./"+((i=++i%9) || (i=1))+".jpg", p);
11. november 2005 - 11:34
#7
var nummer:Number = Math.ceil(Math.random()*20) (m=new MovieClipLoader()).loadClip("./"+((i=++i%9) || (i=nummer))+".jpg", p);
11. november 2005 - 12:40
#8
Math.ceil returnerer et tilfældigt tal - hvilket er fint nok, men du kan risikere at det returnerer det samme tal mere end 1 gang.
11. november 2005 - 13:34
#9
@docks: Rigtigt nok Prøv dette og så load billederne ind i de levels, depths eller movieclips du ønsker i stedet for min trace: function randomizer(){ return (Math.random()-0.5)} var images:Array = new Array("afrika.jpg","europa.jpg","amerika.jpg","asien.jpg"); images.sort(randomizer); for(i=0;i<images.length;i++){ trace(images[i]); } Du kan lave MC fysisk og loade billederne ind eller generere dem i for loopet via en duplicateMovieClip.
11. november 2005 - 14:57
#10
Jamen overser I ikke at billederne hentes fra en ekstern mappe?
11. november 2005 - 15:04
#11
Nej du skal jo også tænke selv;) function randomizer(){ return (Math.random()-0.5)} var images:Array = new Array("afrika.jpg","europa.jpg","amerika.jpg","asien.jpg"); images.sort(randomizer); for(i=0;i<images.length;i++){ this["MC"+i].loadMovie(images[i]); }
05. januar 2006 - 10:06
#12
jeg er så åbenbart ikke klog nok. Jeg kan ikke se hvordan jeg skal smelte min kode sammmen med random koden.
18. januar 2007 - 20:33
#13
lukker
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.