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);)
Annonceindlæg fra Computerworld
Muligvis: eval("gotoandplay(move"+i+");");
Hvis den virker er det det samme som: if (movenum>=1 && movenum<=6) { eval("gotoandplay(move"+movenum+");"); }
Den reagere desværre på samme måde som gotoandplay("move"+i);
nu hedder det også gotoAndPlay :-)
for(i=1;i=moves;i++){ if(movenum == i){ flyt = eval("move"+i); gotoAndPlay(flyt); } } /per
Det virker stadig ikke... Trode ellers den var der
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
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. ?
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
04. juli 2003 - 22:52
#10
Det virker stadig ikke.. forløkken gør intet.. Den stopper bare i den frame den er i.
04. juli 2003 - 22:53
#11
Men Per. Kan du forklare hvad eval og trace gør?
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 ?
04. juli 2003 - 23:58
#13
Det er vel bare: gotoAndPlay(this["move" + i]); ...eller noget (o;
05. juli 2003 - 00:37
#14
nårh ja... gotoAndPlay(this["move" + movenum]); (o;
05. juli 2003 - 00:40
#15
gotoAndPlay(this["move" + movenum]); Gør det samme som de andre.. Intet.. desværre
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);
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);
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++){
05. juli 2003 - 14:05
#19
eksempel move5=25; movenum = 5; blah = "move" + movenum; gotoAndPlay(blah); skal gøre det samme som gotoAndPlay(25);
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
05. juli 2003 - 14:08
#21
move5=25; skal bare gå til frame nr. 25
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)
11. juli 2003 - 00:12
#23
Velbekomme! Det bestemmer du. :-) /per
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 :)
12. juli 2003 - 19:06
#25
legende.dk>Tak i lige måde. :-) /per
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.