webForumDet fria alternativet

Gjort ett script

6 svar · 627 visningar · startad av His Divine Shadow

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#1

Jag har gjort ett script som simulerar bubblor i vatten genom att göra om ett script som simulerar snöflingor. Det funkar fin-fint men problemet är att när det väl har börjat så kan det inte stannas, det fortsätter fastän man byter scen.

Såhär ser själva koden ut
Först läggs detta till i den första "framen" där bubblorna ska börja

no=25; 
for (i=1;i<=no;i++) { 
   flake.duplicateMovieClip("flake"+i,i); 
}

Sen läggs detta på en "movie clip" som heter "flake", det blir sen bubblorna, eller snöflingorna orginellt

onClipEvent(load) { 
   this._alpha=random(10)+10; 
   this._width=this._height=random(4)+12; 
   this._y=random(200); 
   this._x=random(600); 
   fall_speed = -1-Math.random()*2; 
   k=-Math.PI+Math.random()*Math.PI; 
   rad=0; 
   centerX=300; 
   centerY=100; 
} 
onClipEvent(enterFrame) { 
   rad+=(k/180)*Math.PI; 
   this._x+=Math.cos(rad)+ms; 
   this._y+=fall_speed; 
   ms=(centerX-_root._xmouse)/1000; 
   if (this._y<0) { 
      this._y=200; 
   } 
	if (this._x>640) { 
		this._x=0; 
	} 
	if (this._x<0) { 
		this._x=640; 
	} 
}

Efter detta startat så kan det inte stoppas, inte på nått vis som jag vet. Kan nån hjälpa?

AlarMedlem sedan nov. 2004149 inlägg
#2

Testade lite. Ett sätt att stoppa det hela är att göra "flakes" tidslinje så lång som du vill ha animationen - 100 frames t.ex. Lägg därefter till en layer i "flakes" tidslinje och gör denna 101 frames lång. På frame 101 skriver du stop();
Ett annat sätt skulle kunna vara att lägga till en knapp - synlig eller osynlig. Vid t.ex mouseover på denna fyras följande av: flake.gotoAndStop(101); I detta fall behöver tidslinjen naturligtvis inte vara 100 frames - det räcker med 2 frames som har ett stop(); på både frame 1 och 2.

/Alar

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#3

Men då stannar väl hela animationen? Vill att den nya scenen ska laddas och bubblorna försvinna på samma gång.

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#4

Jag fick inte heller ditt första att funka, kanske jag misuppfattat nått, lade till ett lager ovanför flake layern som var längre och innehöll stop koden men när jag gick till den så stannade allt, förutom bubblorna.

EDIT: OK, jaha, man kan visst dubbelklicka på objekt och dom har enga tidslinjer dom själva... Förstår fortfarande inte hur du menar den andra, får det inte riktigt att gå ihop, det är annars meningen att bubblorna ska komma i all evighet tills man klickar på en knapp som byter scen(den hoppar helt enkelt en frame bortåm alla andra frames).

AlarMedlem sedan nov. 2004149 inlägg
#5

Jag menade att du skulle lägga till ett lager INNE i det movieclip som heter flake. Lagret skall alltså vara 1 frame längre än lagret med bubblan. Då får man stopp på bubblorna.
/Alar

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#6

Det försökte jag först men det funkade inte.

AlarMedlem sedan nov. 2004149 inlägg
#7

Konstigt.., för när jag testar med dina script så funkar det...
/Alar

140 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)