Avatar billede lokum Nybegynder
13. januar 2002 - 00:28 Der er 5 kommentarer og
1 løsning

Random pick?

Hej igen - jeg har en \"main.swf\" som loader en \"billede.swf\". Men jeg vil istedet gerne have at min \"main.swf\" vælger 1 ud af f.eks. 3 billed swf\'er. Det skal helst (meget gerne) være en \"tilfældighedsberegning\" sådan at billedet kan være et nyt hver gang \"main\" åbnes.

Hvordan i alverden gør jeg det?
Z-:>

Mvh.
lokum
Avatar billede lingoman Nybegynder
13. januar 2002 - 01:53 #1
Det er ikke svært at vælge et random billede. Dog må du være opmærksom på at når du kun vælger i mellem 3 billeder betyder det at sandsynligheden for at man ser det samme billede 2 gange i træk er meget stor ( 100 * 1/3= 33 %). Hvis du tilføjer flere mulige billeder til listen vil denne sandsynlighed blive tilsvarende mindre

sæt denne action på dit movieClip som skal loade billedet

onClipEvent(load) {
  ValgArray = [\"billede_1.swf\",\"billede_2.swf\",\"billede_3.swf\" ];

  random_index =random(ValgArray.length);
  random_billede = ValgArray[random_index];

  this.loadMovie(random_billede);
}
Avatar billede lokum Nybegynder
13. januar 2002 - 13:49 #2
lingoman - tak for din 33,3333%-beregning, men jeg er ikke helt george bush - på den anden side ved man selvfølgelig aldrig hvem man kommunikerer med her på nettet... ((o;

Tak for det!!! Excellent!

\"ValgArray\" er vist en variabel, ikke sandt?
Avatar billede lingoman Nybegynder
13. januar 2002 - 14:06 #3
Ja, valgArray er en variabel som indeholder listen over alle de *.swf filer som må udvælges. Du kan tilføje flere valg til denne liste hvis du vil; actionen virker alligevel og tæller automatisk de nye filer med.
Har du fks 10 forskellige filer i listen er der kun 100*(1/10) % sandsynlighed for at den samme fil bliver valgt 2 gange i træk.

Man kan også vægte sandsynligheden for at bestemte filer vil blive vist oftere end andre.
For eksempel hvis jeg nu gerne vil have at \"billede_2.swf\" i snit bliver vist 4 gange hyppigere end de andre 2 skriver jeg valgArray som

ValgArray = [\"billede_1.swf\",\"billede_2.swf\",\"billede_3.swf\",\"billede_2.swf\",\"billede_2.swf\",\"billede_2.swf\" ];

\"billede_2.swf\" står i dette eksempel 4 gange så mange gange som \"billede_1.swf\" eller \"billede_3.swf\" og procent fordelingen bliver derfor

\"billede_1.swf\" : 100 * (1/6) = 16.666%
\"billede_2.swf\" : 100 * (4/6) = 66.666%
\"billede_3.swf\" : 100 * (1/6) = 16.666%

Håber at du kan følge logikken i dette :)

mvh geo
Avatar billede lokum Nybegynder
13. januar 2002 - 21:44 #4
lingoman --->>> jo, den er go. Godt lille fif! Mange tak for hjælpen!
Avatar billede lokum Nybegynder
13. januar 2002 - 21:46 #5
Kan du også sige mig hvorfor der er \"klammer\" [ ] om random_index og paranteser om de andre...?
(o:>
Avatar billede lingoman Nybegynder
14. januar 2002 - 00:42 #6
Hvorfor man bruger [] i stedet for () er det ikke nogen forklaring på. Det er bare actionScript fortolkeren der er opbygget på denne måde...

Jeg vil forklare det med et eksempel
hvis vi eksempelvis har et array

nytArray=[6,9,123,\"d\",\"billede.swf\"];

så er hvert element i dette array indekseret.

elementet med indeks 0  er det 1. element 6
elementet med indeks 1  er det 2. element 9
elementet med indeks 2  er det 3. element 123
elementet med indeks 3  er det 4. element \"d\"
elementet med indeks 4  er det 5. element \"billede.swf\"

man kan \"hente\" det 4. element ud af dette array via syntaksen

detFjerdeElement = nytArray[3];


Bemærk at indekseringen starter med 0 og ikke 1!

Parenteserne bruges til funktioner, for eksempel

randomTal = random(5);  // sætter variablen til 0, 1, 2, 3 eller 4

[] {} og () bruges til mange forskellige formål i actionScript og det er som regel meget vigtigt at man nøje følger meget precise syntaks regler for at fortolkeren accepterer og behandler actionen efter hensigten.

Håber at det hjælper lidt selvom det ikke er nogen forklaring..

mvh geo

Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester