Avatar billede galthen Nybegynder
04. juli 2003 - 19:43 Der er 23 kommentarer og
2 løsninger

for løkke i flash

Jeg har et script som jeg gerne vi have lavet lidt mere dynamisk. Det vil bare desværre ikke helt som jeg vil. Den nuværende kode ser sådan ud:

if(movenum==1){
    gotoandplay(move1);
}
if(movenum==2){
    gotoandplay(move2);
}
if(movenum==3){
    gotoandplay(move3);
}
if(movenum==4){
    gotoandplay(move4);
}
if(movenum==5){
    gotoandplay(move5);
}
if(movenum==6){
    gotoandplay(move6);
}


Istedet vil jeg gerne have kode til at ligne noget nær dette:

for(i=1;i=moves;i++){
    if(movenum==i){
        gotoandplay("move"+i);
    }
}

Nogle forslag.. Det må være her den går galt (gotoandplay("move"+i);)
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 19:57 #1
Muligvis:

  eval("gotoandplay(move"+i+");");
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 19:58 #2
Hvis den virker er det det samme som:

if (movenum>=1 && movenum<=6) {
  eval("gotoandplay(move"+movenum+");");
}
Avatar billede galthen Nybegynder
04. juli 2003 - 20:01 #3
Den reagere desværre på samme måde som gotoandplay("move"+i);
Avatar billede thulstrup Nybegynder
04. juli 2003 - 20:02 #4
nu hedder det også gotoAndPlay :-)
Avatar billede hoejrup Nybegynder
04. juli 2003 - 20:20 #5
for(i=1;i=moves;i++){
    if(movenum == i){
        flyt = eval("move"+i);
        gotoAndPlay(flyt);
    }
}

/per
Avatar billede galthen Nybegynder
04. juli 2003 - 20:45 #6
Det virker stadig ikke...
Trode ellers den var der
Avatar billede hoejrup Nybegynder
04. juli 2003 - 21:59 #7
Hvis det ikke virker, så kan din kan din for løkke ikke få fat på variablerne!

for(i=1;i=moves;i++){
    trace("movenum "  + movenum);
    trace("move1  " + move1);
    if(movenum == i){
        flyt = eval("move"+i);
        gotoAndPlay(flyt);
    }
}

/per
Avatar billede odni Nybegynder
04. juli 2003 - 22:10 #8
for gør jo så at alle movieclips (hvis det er det?) bliver afspillet med det samme (hvis du sætter den på framen ...) du kan afspille movieclips med MC.play - et lille eksempel (som jeg vil løse dit problem - forstår det ik helt):

for (i=1;i<=6;i++){
"move"+i.play();
}

fjern din movenum streng - hvis det her ikke virker må du liiige forklare hvad det er du vil - har du mere kode end det du viser evt. ?
Avatar billede hoejrup Nybegynder
04. juli 2003 - 22:11 #9
Denne her virker

for (i=1; i<moves; i++) {
    trace ("movenum "+movenum);
    trace ("i "+i);
    if (movenum == i) {
        flyt = eval("move"+i);
        trace ("flyt  "+flyt);
        gotoAndPlay (flyt);
    }
}

/per
Avatar billede galthen Nybegynder
04. juli 2003 - 22:52 #10
Det virker stadig ikke.. forløkken gør intet.. Den stopper bare i den frame den er i.
Avatar billede galthen Nybegynder
04. juli 2003 - 22:53 #11
Men Per.
Kan du forklare hvad eval og trace gør?
Avatar billede odni Nybegynder
04. juli 2003 - 22:55 #12
trace spytter værdien ud i output vinduet hvis du debugger filmen (ctrl+enter)
eval sætter vist nok 2 værdier sammen - har jeg ret ?
Avatar billede baitianlong Nybegynder
04. juli 2003 - 23:58 #13
Det er vel bare:

gotoAndPlay(this["move" + i]);

...eller noget (o;
Avatar billede baitianlong Nybegynder
05. juli 2003 - 00:37 #14
nårh ja...

gotoAndPlay(this["move" + movenum]);

(o;
Avatar billede galthen Nybegynder
05. juli 2003 - 00:40 #15
gotoAndPlay(this["move" + movenum]);

Gør det samme som de andre.. Intet.. desværre
Avatar billede baitianlong Nybegynder
05. juli 2003 - 14:00 #16
Jeg har lige prøvet den her af... Den virker altså (o;

stop();
movenum = 2;
blah = "move" + movenum;
gotoAndPlay(blah);
Avatar billede galthen Nybegynder
05. juli 2003 - 14:03 #17
legende.dk>
Men den du skriver der er jo storset identist med den jeg postede i spørgsmålet

gotoandplay("move"+i);
Avatar billede erikjacobsen Ekspert
05. juli 2003 - 14:04 #18
Er det korrekt, ville spørgerens oprindelig kode også virke med denne ændring:
for(i=1;i<=moves;i++){
Avatar billede galthen Nybegynder
05. juli 2003 - 14:05 #19
eksempel
move5=25;

movenum = 5;
blah = "move" + movenum;
gotoAndPlay(blah);

skal gøre det samme som
gotoAndPlay(25);
Avatar billede baitianlong Nybegynder
05. juli 2003 - 14:07 #20
Ja, derfor burde det også virke, husk dog at hvis disse instancer ligger i et movieclip, skal koden naturligvis ligge i samme movieclip, ellers skal du have stien med til mc'et, husk også camelCase på metoderne = mc.gotoAndPlay("move" + i) - tja
Avatar billede galthen Nybegynder
05. juli 2003 - 14:08 #21
move5=25;
skal bare gå til frame nr. 25
Avatar billede galthen Nybegynder
05. juli 2003 - 15:02 #22
Nu har jeg fået det til at virke. Tog lidt fra de forskellige muligheder.

blah = eval("move" + movenum);
gotoAndPlay(blah);

Super response på mit spørgsmål... mange tak... hvem vil have points :o)
Avatar billede hoejrup Nybegynder
11. juli 2003 - 00:12 #23
Velbekomme! Det bestemmer du. :-)

/per
Avatar billede baitianlong Nybegynder
12. juli 2003 - 17:27 #24
Sjovt nok... JEg prøvede ellers den anden (gotoAndPlay("movenum" + i))  af :) ... Men det er da rart det virker - godt samarbejde dér, Hoejrup :)
Avatar billede hoejrup Nybegynder
12. juli 2003 - 19:06 #25
legende.dk>Tak i lige måde. :-)

/per
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