PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rotation per script


lord_draganus
29.05.2002, 20:18
folgendes problem!
Eigentlich wollte ich nichts anderes machen als einen einfach balken um 360° durch ein Actionscript rotieren zu lassen. Jedoch habe ich das Problemdas der Balken sich nicht dreht sondern mir nur eine Meldung ausgegeben wird. Und zwar wird mir lediglich ausgegeben das der Film durch ein script verlangsamt wird, und ob der Film abgespielt werden soll da sich der Computer aufhängen könnte. Was ich gemacht habe ist an sich ganz einfach. Als erstes habe ich den Balken gezeichnet, habe ihn anschliessend als Movieclip deklariert und habe diesem Clip dann den folgenden Code zugewiesen.

onClipEvent (load) {
for (x=0; x=360; x++) {
_rotation= x;
}
}

Ich könnte wetten, das der Fehler mehr als simpel ist und das ich einfach mal wieder den Wald vor lauter Bäumen sehe. Und, hat jemand ne Idee woran es liegen könnte das es nicht funzt?


Aron
29.05.2002, 23:12
Original geschrieben von lord_draganus
Ich könnte wetten, das der Fehler mehr als simpel ist und das ich einfach mal wieder den Wald vor lauter Bäumen sehe. LOL, genau so ist es ...

Du kannst eine ActionScript Animation nicht mit einer for-Schleife machen. Selbst wenn der FlashFilm keine Fehlermeldung ausgeben würde, könntest Du von der Animations nichts sehen, denn die 360 Schritte werden ja alle auf einmal ausgeführt.
Dafür gibt es in Flash den "enterFrame" Eventhandler. "enterFrame" wird ausgeführt sobald der Film zum nächsten Bild springt. Also je nach Einstellung z.B. 12 mal in der Sekunde (12 Frames pro Sekunde). Dein Script müsste also so aussehen.

onClipEvent(load){
x;
}

onClipEvent(enterFrame){
x++
if(x<360){
deinMovieClip._rotation=x;
}


peace:)

TenShoe
30.05.2002, 12:42
Eine andere Möglichkeit wäre, die Animation mit Hilfe von beispielsweise getSeconds an die Zeit zu binden. Folgendes müsste als Aktion im Movieclip stehen:

Zeit = new Date();
sekunden = Zeit.getSeconds();
setProperty ("sekunden", _rotation, sekunden*6);

Damit sich der Balken jede Sekunde um 6° weiter bewegt musst du noch nen 2. Schlüsselbild mit folgendem Inhalt erstellen:

gotoandPlay(1);

Das wäre dann die Bewegung eines Sekundenzeigers.