Avatar billede camban Nybegynder
03. januar 2007 - 08:43 Der 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()
Avatar billede camban Nybegynder
03. januar 2007 - 08:44 #1
Jeg har forresten dette lignende i roden

stop();

function randRange(min, max)
{
  tal = Math.round(Math.random()*(max-min))+min;
    //trace(tal);
return tal;
}
Avatar billede kinderaeg Nybegynder
03. januar 2007 - 09:01 #2
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;
}
Avatar billede camban Nybegynder
03. januar 2007 - 09:09 #3
Ok- har lige prøvet. Skal der ændres andet end det der ligger i roden - for der kommer samme billede 2 gange til tider med det script du har skrevet?
Avatar billede kinderaeg Nybegynder
03. januar 2007 - 09:21 #4
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);
    }
  }
}
Avatar billede camban Nybegynder
03. januar 2007 - 09:31 #5
Det ser ud til at virke - mange tak - Ku du give mig et clue om hvordan jeg evt. kunne lave den med rækkefølgen bare fra 1-6 og til 1 igen osv.?
Avatar billede kinderaeg Nybegynder
03. januar 2007 - 09:34 #6
Tjah, det skulle kunne lade sig gøre som følger:

f = function() {
  clearInterval(i);
  if(c == a5) {
    p = b5
  } else {
    p = a5
  }
  if(tal < 6) {
    tal++;
  } else {
    tal = 1;
  }
  (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);
    }
  }
}
Avatar billede camban Nybegynder
03. januar 2007 - 09:35 #7
Tusind tak og go dag :o)
Avatar billede kinderaeg Nybegynder
03. januar 2007 - 09:46 #8
I lige måde :)
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