Avatar billede pyroman Nybegynder
14. november 2002 - 13:54 Der er 14 kommentarer og
1 løsning

random array

Når man klikker på en knap skal en tilfældig streng fra arrayet "text" hentes ind i tekstfeltet "facts", men samme streng må ikke vises igen. Jeg har prøvet at lave dette med arrays på mange måder men kan ikke rigtig få det til at virke. Er der nogen der kan hjælpe mig?

/Filip
Avatar billede baitianlong Nybegynder
14. november 2002 - 14:10 #1
on(release) {
  tal = random(text.length-1);
  _root.facts = text[tal];
  text.splice(tal, tal);
}

Den skulle slette elementerne, når de var brugt, og derfor kommer hvert element kun een gang
Avatar billede baitianlong Nybegynder
14. november 2002 - 14:18 #2
Det virker dog ikke - beklager !
Avatar billede barklund Nybegynder
14. november 2002 - 14:27 #3
Vi bygger lige en Array.randomize() -funktion:

Array.prototype.randomize = function () {
    this.sort(function(a,b) { return random(3)-1; });
}
ASSetPropFlags(Array.prototype,["randomize"],1,1);

Så kan du starter du med at skrive:

texts = ["tekst1","tekst2"];
texts.randomize();

Og så er de i en tilfældig rækkefølge, så du kan lave en pop() (eller unshift()) hver gang du vil have en ny...

minTekst = texts.pop();

Og så får du den sidste (som er tilfældig).... :o)

Du skal ikke tage dig af "ASSetPropFlags(...)", det er blot for at skjule denne funktion, så den ikke fremgår...

/Barklund
Avatar billede barklund Nybegynder
14. november 2002 - 17:38 #4
Bah? Hvor er mit indlæg?
Avatar billede barklund Nybegynder
14. november 2002 - 17:38 #5
Hey... det var væk lige før?... Syret...
Avatar billede barklund Nybegynder
14. november 2002 - 17:52 #6
Jeg får hele tiden mærkelig mails fra dette spm... hmm...
Avatar billede pyroman Nybegynder
15. november 2002 - 10:13 #7
Jeg kan godt se det, så måske er du bare blevet skør?!!
Nåh men i hvert fald vil jeg lige prøve det du har skrevet...
Avatar billede pyroman Nybegynder
15. november 2002 - 13:30 #8
=> barklund
Ja den tager en random streng, men strengen må ikke være taget før, og når der ikke er flere strenge skal der i tekstfeltet stå: "No more facts" - hvordan gør jeg det?
Avatar billede barklund Nybegynder
18. november 2002 - 19:07 #9
Når arrayet er tomt, så har du brugt dem alle!

texts = ["tekst 12","tekst 14"];
texts.randomize();
nextText.onRelease = function() {
    _parent.text = _aprent.texts.length ? _parent.texts.pop() : "No more facts";
}

(Du har et movieclip, der hedder "nextText" og du bruger MX...)
Avatar billede barklund Nybegynder
21. november 2002 - 13:29 #10
Sker her noget? Tag dig ikke af stavefejlen til sidst, der står selvfølgelig "parent"....
Avatar billede pyroman Nybegynder
21. november 2002 - 14:27 #11
Tag det roligt,  jeg er her skam endnu. jeg har prøvet det af nu, det sidste du skrev virkede ikke, men jeg fik det til at virke på en anden måde. Tak for hjælpen...

/Filip
Avatar billede pyroman Nybegynder
21. november 2002 - 14:31 #12
Hey!? - hvorfor er der ikke noget sted hvor jeg kan give point.
Årh de her IMac-maskiner forvrænger alt, de tager livet af mig.
=> barklund
Du må altså vente med at få dine point til jeg kan, ja - se det felt hvor man giver point...
Avatar billede barklund Nybegynder
21. november 2002 - 15:07 #13
Det kan du først, når jeg har lagt et svar...
Avatar billede pyroman Nybegynder
22. november 2002 - 13:20 #14
Ej jeg tåger helt vildt, nåh men Imac plejer alligevl at spasse sider med tables og div-layers helt op
Avatar billede barklund Nybegynder
22. november 2002 - 13:36 #15
fair nok... Tark for point :o)
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