15. november 2001 - 13:32Der er
18 kommentarer og 3 løsninger
Actionscript => Spiller ikke...
Jeg har en lille mand, der skal spille på et tilfældigt tidspunkt og bevæge sig til et tilfældigt sted... Det virker fint med at bevæge sig hen et sted på et tidspunkt, men den spiller ikke fra den frame den skal:
onClipEvent (load) { speed = 2; oldtime = 0; home = _x; out = 0; cleaned = 0; } onClipEvent (enterFrame) { // laver ny tid og distance if (oldtime == 0) { newtime = getTimer()+random(50)+5000; dist = (random(250)+40); oldtime = 1; } // styrer mand generelt if (getTimer()>=newtime) { if (_x<=dist) { _root.mand.play(\"walk\"); _x += speed; if (_x>=dist) { out = 1; } } if (out == 1) { _root.mand.play(\"clean\"); cleaned = 1; }
if (cleaned == 1) { _root.mand.play(\"walk\"); _x -= speed;
Det er sikkert fordi clippets variabler i load ikker bliver gemt. Prøv i stedet med onClipEvent (data) { speed = 2; oldtime = 0; home = _x; out = 0; cleaned = 0; }
Aha! det er fordi out = 1 sætter mand i \"clean\" men... med det samme bliver clean = 1 hvilket betyder at den går til \"walk\" før vi når at se clean. Altså en algorithmic error!
Så undlad at sætte variablerne out og clean i onClipEvent(enterFrame) i din sidste frame af \"walk\" sættes out = 1; i din sidste frame af \"clean\" sættes clean=1; Lad mig lige se hvordan vi bør håntere den sidste del...
men du vil kun activere \"walk\",\"clean\",\"clean\",\"walk\" sekvensen hvis (getTimer()>=newtime) og _x<=dist går først til clean når _x>=dist , er det korrekt ?
Du sætter dem også i enterFrame i dine if conditions, det lingoman foreslår er at du rykker dem til den sidste frame af clean delen og den sidste frame af walk delen, for at disse bliver afspillet *før* en ny betingelse træder i kraft og dermed gør at vi aldrig ser clean blive afspillet...den næste if er simpelthen true for hurtigt.....det er sådan jeg har forstået det..
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.