Avatar billede jammerlab Nybegynder
11. oktober 2002 - 16:25 Der er 17 kommentarer og
1 løsning

Random Image

Dau derude,
Jeg har lavet en overflade i flash... der er 3 slags vinduer... denne flash skal kører hele tiden og den skal vise random imgaes i disse 3 vinduer... hvordan gør jeg det? Altså noget Alpha 0 til 100 og væk igen...
Avatar billede kalaharikid Nybegynder
11. oktober 2002 - 18:10 #1
http://www.actionscripts.org/tutorials/beginner/random_parts_of_a_movie_clip/index.shtml

Her er et script der viser en tilfældig del af et movieclip - Kan du bruge det ?

Kalaharikid
Avatar billede jammerlab Nybegynder
11. oktober 2002 - 18:27 #2
http://www.maersk.dk
det skal være ligsom det... ser lige på det link du sendte :)
Avatar billede jammerlab Nybegynder
11. oktober 2002 - 18:32 #3
jeg bliver utrolig forvirret af at se på den side hehe :)

jeg har 8 billeder.... jeg har 3 felter hvor de skal dukke op i... kan jeg ikke smide de 8 billeder i hver sin swf fil... og få et script til at loade den swf random, og så smide det script hen på de 3 felter.... så burde det virke for alpha effekten kan jeg lave i hver swf fil... men hvordan laber jeg den random funktion ? :)
Avatar billede baitianlong Nybegynder
11. oktober 2002 - 22:26 #4
Skal den putte et tilfældigt movieclip ind i tre vinduer (et ad gangen) og fade dem frem og tilbage ??

I så fald kan du putte alle movieclips'ne ind i alle tre vinduer og give dem et lille script. Skriv lige om det er det du ønsker, eller hvad (o;
Avatar billede jammerlab Nybegynder
11. oktober 2002 - 22:35 #5
jamen jeg har en swf fil.... den skal så vise random billede i de 3 rammer som fader ind og ud igen... jeg har 8 billeder som skal kører random hvis du forstå... det skal de bare blive ved med i en uendelighed...
Avatar billede baitianlong Nybegynder
11. oktober 2002 - 23:03 #6
lav de otte billeder om til hvert sit movieclip, og giv dem instancenavne (pic1, pic2, pic3, pic4.....) Og hiv dem alle ud i rammen.

Skriv så dette på et af dem:

onClipEvent(load) {
  for(i = 1; i < 9; i++) {
      _root["pic" + i]._alpha = 0;
  }
  function find() {
      //trace("lort");
      function findtal() {
          nyttal = random(8) + 1;
      }
      findtal();
      if(nyttal == tal) {
          findtal();
      } else {
          tal = nyttal;
      }
      for(x = 1; x < 9; x++) {
          _root["pic" + x].slutalpha = 0;
      }
      _root["pic" + tal].slutalpha = 100;
  }
  find();
}
onClipEvent(enterFrame) {
    frame++;
    if(frame == 10) {
        find();
        frame = 0;
    }
    if(_alpha != slutalpha) {
        _alpha += (slutalpha - _alpha)/5;
    }
}


...og dette på dem allesammen:

onClipEvent(enterFrame) {
    if(_alpha != slutalpha) {
        _alpha += (slutalpha - _alpha)/5;
    }
}

Så er den der (o;

Se eksempel på det her:
http://www.legendenet.dk/picfader.html
Avatar billede baitianlong Nybegynder
11. oktober 2002 - 23:05 #7
Avatar billede jammerlab Nybegynder
11. oktober 2002 - 23:53 #8
Ja nu kan jeg da se den skifter fint :) men jeg har ændret billed navnene, og de bliver ikke inplamenteret? Det er vold lang tid siden jeg har rodet med flash... ved ikke hvordan det kan lade sig gøre men jeg har glemt alt :|
Sider lidt og tænker... hvis jeg skal lave de billeder som movie clips så bliver de da alle synlige? eller... lost... max lost hehe
Avatar billede baitianlong Nybegynder
12. oktober 2002 - 05:21 #9
1) Hvis du ændrer billed/movieclip navnene, skal scriptet naturligvis ændres. Prøv med pic1 - pic8, som jeg har brugt.

2) Hvert billede er sit eget movieclip, med ovennævnte instancenavn. Og bemærk første løkke i onClipEvent(load). Den sætter _alpha til 0 på de 8 movieclips. Så er de "usynlige" fra starten af (o;
Avatar billede jammerlab Nybegynder
12. oktober 2002 - 12:19 #10
aaahhh... yes sir... og i eksemplet har du så lavet 8 movieclips i form af 8 boxe med hver sin farve? :)
Avatar billede baitianlong Nybegynder
12. oktober 2002 - 15:57 #11
Netop.. Og funktionen ligger bare på det ene af dem, mens

onClipEvent(enterFrame) {
    if(_alpha != slutalpha) {
        _alpha += (slutalpha - _alpha)/5;
    }
}


ligger på dem alle...

Hvis den skal fade hurtigere, kan du ændre femtallet ovenfor til et mindre tal, og omvendt. Hvis de skal blive stående i længere tid inden de skiftes ud, kan du hæve tallet 10 i... if(frame == 10) {
Avatar billede baitianlong Nybegynder
12. oktober 2002 - 16:28 #12
Jeg beklager i øvrigt min linie nr. 6 (trace("lort")) - det var en rest fra testfasen (o;
Avatar billede jammerlab Nybegynder
12. oktober 2002 - 16:28 #13
Fair nok dit eksempel virker jo fint, men jeg trækker den liiiige lidt længere.... fisker lige det jeg skal... det kunne jo være jeg fik et problem...
Avatar billede jammerlab Nybegynder
14. oktober 2002 - 00:13 #14
hej igen legende... du har gjordt dig fortjent til pointsne... men jeg har 1 spørgsmål...
http://www.jammerlab.dk/test.php
jeg har brugt dit script 3 gange bare nævnt 3 forskellige fil navne... her er mit problem... kan jeg ungå at 2/3 ens billeder bliver vist på samme tid?
Avatar billede baitianlong Nybegynder
14. oktober 2002 - 16:32 #15
Ja. Det kan man vel <støn>...

onClipEvent(load) {
  for(i = 1; i < 9; i++) {
      _root["pic" + i]._alpha = 0;
      _root["billede" + i]._alpha = 0;
      _root["skilt" + i]._alpha = 0;
  }
  function find() {
      function findtal() {
          _root.nyttal1 = random(8) + 1;
          _root.nyttal2 = random(8) + 1;
          _root.nyttal3 = random(8) + 1;
      }
      findtal();
      if(_root.nyttal1 == tal1 || _root.nyttal2 == tal2 || _root.nyttal3 == tal3 || _root.nyttal1 == _root.nyttal2 || _root.nyttal2 == _root.nyttal3 || _root.nyttal1 == _root.nyttal3) {
          findtal();
      } else {
          tal1 = _root.nyttal1;
          tal2 = _root.nyttal2;
          tal3 = _root.nyttal3;
      }
      for(x = 1; x < 9; x++) {
          _root["pic" + x].slutalpha = 0;
          _root["billede" + x].slutalpha = 0;
          _root["skilt" + x].slutalpha = 0;
      }
      _root["pic" + tal1].slutalpha = 100;
      _root["billede" + tal2].slutalpha = 100;
      _root["skilt" + tal3].slutalpha = 100;
  }
  find();
}
onClipEvent(enterFrame) {
    frame++;
    if(frame == 10) {
        find();
        frame = 0;
    }
    if(_alpha != slutalpha) {
        _alpha += (slutalpha - _alpha)/5;
    }
}

Så skal billederne/movieclips'ne ligge i 3 bunker (som du har det nu), og de skal hedde billede1, billede2..... og skilt1, skilt2....... og pic1, pic2.......

På dem alle skal der stadig stå:

onClipEvent(enterFrame) {
    if(_alpha != slutalpha) {
        _alpha += (slutalpha - _alpha)/5;
    }
}


Og den ovenstående funktion skal bare ligge på den ene af dem...
Avatar billede jammerlab Nybegynder
14. oktober 2002 - 19:04 #16
*GG* Du er sq da ikke helt dårligt til det her hva? :=) okay lad mig se om jeg har opfattet det rigtigt... den med Alphaen den skal på alle billederne... og den lange kode skal være bare på en af dem? altså 1 gang på hver bunke?
Avatar billede baitianlong Nybegynder
15. oktober 2002 - 00:14 #17
Nej ikke en gang i hver bunke !! Bare een gang på et movieclip !
Avatar billede baitianlong Nybegynder
19. oktober 2002 - 22:09 #18
HALLOOOOOOOOO !!!
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