Slettet bruger
21. marts 2003 - 15:55
Der er
9 kommentarer og 1 løsning
Delay i while
Hejsa.. Jeg har et MC som skifter højde efter en variable. Jeg kunne godt tænke mig at den ikke bare skiftede, men gjorde det smooth. Så jeg prøvede at sætte onClipEvent (load) { setProperty (_this, _yscale, 0); } onClipEvent (enterFrame) { vartemp = int(_root.var1cr)/5; settemp = 0; while (tempcount != 5) { settemp = settemp+vartemp; setProperty (_this, _yscale, int(settemp)); tempcount = tempcount+1; } } Men så er der jo ingen pause. Kunne man sætte et delay ind på 200 millisek her: onClipEvent (load) { setProperty (_this, _yscale, 0); } onClipEvent (enterFrame) { vartemp = int(_root.var1cr)/5; settemp = 0; while (tempcount != 5) { settemp = settemp+vartemp; setProperty (_this, _yscale, int(settemp)); tempcount = tempcount+1; // PAUSE } } Jeg har ikke lige kunne hitte af det. Er er en helt anden metode som er bedre?
Annonceindlæg fra itavis
21. marts 2003 - 17:48
#1
Du kan bare bruge en almindelig enterframe til det, while løkker kan ikke bare pauses: onClipEvent (enterFrame) { if (tempcount <= 5) { this._yscale += vartemp; tempcount++; } } noget ala ovenstående, håber du kan se ideen :)
21. marts 2003 - 17:50
#2
den kommer selvfølgelig ikke ret langt på en count på 5 (5 frames) så du kunne jo måle på yscale istedet onClipEvent (enterFrame) { if (this._yscale <= 100) { this._yscale += minVar; } } :)
Slettet bruger
24. marts 2003 - 10:39
#3
Hmm.. tror ikke helt vi snakker om det samme.. :) Jeg har lavet det her: onClipEvent (load) { setProperty (_this, _yscale, 0); } onClipEvent (enterFrame) { _root.vartemp = int(_root.var1cr)/5; _root.settemp = "0"; _root.tempcount = "0"; if (_root.tempcount == "0") { _root.settemp = int(_root.settemp) + int(_root.vartemp); setProperty (_this, _yscale, _root.settemp); _root.delay1.gotoAndPlay("play1"); _root.tempcount = "1"; } if ((_root.tempcount == "1") & (_root.go2 == "true") ) { _root.settemp = int(_root.settemp) + int(_root.vartemp); setProperty (_this, _yscale, _root.settemp); _root.tempcount = int(_root.tempcount) + 1; _root.delay2.gotoAndPlay("play2"); } if ((_root.tempcount == 2) & (_root.go3 == "true") ) { _root.settemp = int(_root.settemp) + int(_root.vartemp); setProperty (_this, _yscale, _root.settemp); _root.tempcount = int(_root.tempcount) + 1; _root.delay3.gotoAndPlay("play3"); } if ((_root.tempcount == 3) & (_root.go4 == "true") ) { _root.settemp = int(_root.settemp) + int(_root.vartemp); setProperty (_this, _yscale, _root.settemp); _root.tempcount = int(_root.tempcount) + 1; _root.delay4.gotoAndPlay("play4"); } if ((_root.tempcount == 4) & (_root.go5 == "true") ) { _root.settemp = int(_root.settemp) + int(_root.vartemp); setProperty (_this, _yscale, _root.settemp); _root.tempcount = int(_root.tempcount) + 1; _root.delay5.gotoAndPlay("play5"); } }
24. marts 2003 - 16:35
#4
Ovenstående siger mig ikke ret meget. Hvor er while-løkken henne? Du efterlyser et script der kan lave en smooth transition fra en skalering til en anden eller hvad? Det gør nedenstående og variablen hedder slut_scale: onClipEvent (load) { slut_scale = 400; friction = 4; } onClipEvent (enterFrame) { this._yscale += (slut_scale - this._yscale)/friction; } mvh mat
Slettet bruger
31. marts 2003 - 11:24
#5
Jamen, den udfører helt scriptet og så viser den det, derfor har jeg lavet nogle mc's med delay.
31. marts 2003 - 14:22
#6
jeg fatter ikke en bjælde af hvad du snakker om? Du kan IKKE få en for-løkke til at vise sine gennemløb enkeltvis - den løber igennem og giver dig et "output" - thats it...
31. marts 2003 - 14:27
#7
..eller en while for den sags skyld - samme ting :)
Slettet bruger
31. marts 2003 - 15:01
#8
Ja.. det er jo det... men jeg har nu fået lavet delay hehe... :) Jeg lukker, hvis det er ok med dig?
31. marts 2003 - 15:38
#9
Hvordan gjorde du så? Du lukker bare lige så meget som du lyster :)
Slettet bruger
24. maj 2004 - 09:40
#10
Så lige det gamle spørgsmål her... Koden blev: (tror jeg) :) Det er jo lidt længe siden nu... onClipEvent (load) { setProperty(_this, _yscale, 0); _root.pill1oldoldheight = 0; _root.pill1smallpiececounter = 0; } onClipEvent (enterFrame) { _root.pill1newoldheight = _root.var1cr; _root.pill1heightdiff = int(_root.pill1newoldheight)-int(_root.pill1oldoldheight); _root.pill1piecesize = int(_root.pill1heightdiff)/5; _root.pill1piecesize = int(Math.ceil(_root.pill1piecesize)); if (_root.pill1largepiececounter == 0) { _root.pill1oldheight = int(_root.pill1oldheight)+int(_root.pill1piecesize); setProperty(_this, _yscale, _root.pill1oldheight); _root.pill1largepiececounter = 1; _root.pill1delay1.gotoAndPlay("play1"); } if ((_root.pill1largepiececounter == 1) && (_root.pill1go2 == true)) { _root.pill1oldheight = int(_root.pill1oldheight)+int(_root.pill1piecesize); setProperty(_this, _yscale, _root.pill1oldheight); _root.pill1largepiececounter = 2; _root.pill1delay2.gotoAndPlay("play2"); } if ((_root.pill1largepiececounter == 2) && (_root.pill1go3 == true)) { _root.pill1oldheight = int(_root.pill1oldheight)+int(_root.pill1piecesize); setProperty(_this, _yscale, _root.pill1oldheight); _root.pill1largepiececounter = 3; _root.pill1delay3.gotoAndPlay("play3"); } if ((_root.pill1largepiececounter == 3) && (_root.pill1go4 == true)) { _root.pill1oldheight = int(_root.pill1oldheight)+int(_root.pill1piecesize); setProperty(_this, _yscale, _root.pill1oldheight); _root.pill1largepiececounter = 4; _root.pill1delay4.gotoAndPlay("play4"); } if ((_root.pill1largepiececounter == 4) && (_root.pill1go5 == true)) { _root.pill1oldheight = int(_root.pill1oldheight)+int(_root.pill1piecesize); setProperty(_this, _yscale, _root.pill1oldheight); _root.pill1largepiececounter = 5; _root.pill1delay5.gotoAndPlay("play5"); _root.pill1largepiececounter = 0; } if (int(_root.pill1heightdiff)<0 && int(_root.pill1heightdiff)>-5 && int(_root.pill1heightdiff) != 0) { _root.pill1remainpice = 0; _root.pill1remainpice = int(_root.pill1heightdiff)*-1; if (int(_root.pill1smallpiececounter) != int(_root.pill1remainpice) || int(_root.pill1remainpice) == 1) { _root.pill1oldheight = int(_root.pill1oldheight)-1; setProperty(_this, _yscale, _root.pill1oldheight); _root.pill1smallpiececounter = int(_root.pill1smallpiececounter)+1; } if (int(_root.pill1smallpiececounter) == int(_root.pill1remainpice)) { _root.pill1piecesize = 0; _root.pill1smallpiececounter = 0; } } _root.pill1oldoldheight = int(_root.pill1oldheight); _root.pill1go2 = false; _root.pill1go3 = false; _root.pill1go4 = false; _root.pill1go5 = false; }
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.