[FL5] MC drehen ähnlich Parkuhr in 90, 180,270,360 Schritten

Velli

Grünschnabel
Hallo erstmal

Ich hätte da folgendes Problem: Ich möchte einen MC via ActionScript auf Knopfdruck drehen ähnlich wie eine Parkuhr, also in BEIDE Richtungen. Und zwar soll die Drehung in 90° Schritten erfolgen, je nachdem bei welcher Gradzahl ich mich grad befinde. Bis jetzt is noch alles OK. Ich hab die Drehung wenn ich >0 && < 90 bin bis auf 90° und wenn ich >=90 && < 180 bis auf 180° - ABER JETZT KOMMTS: wenn ich >=180 && < 270 probiere drehr sich das Mistding einfach unendlich weiter und bleibt nicht bei 270° stehen.....

Irgendjemand einen kleinen Tip wie ich das beheben kann

Anbei mein bisheriges Script:

Für den MC:

onClipEvent (enterFrame) {
if (this._rotation < this.pos) {
this._rotation +=5;
this.test = this._rotation;
}
if (this._rotation > this.pos) {
this._rotation -=5;
this.test = this._rotation;
}
}
onClipEvent (load) {
this._rotation =0;
this.pos =0;
}


Und für den Vorwärts-Button:

on (release) {
if (_root.unterscheibe.pos < 90) {
_root.unterscheibe.pos = 90;
} else if (_root.unterscheibe.pos >= 90 && _root.unterscheibe.pos < 180) {
_root.unterscheibe.pos = 180;
} else if (_root.unterscheibe.pos >= 180 && _root.unterscheibe.pos < 270) {
_root.unterscheibe.pos = 270;
} else if (_root.unterscheibe.pos >= 270 && _root.unterscheibe.pos < 360) {
_root.unterscheibe.pos = 360;
}
}


(Rückwärtsbutton, dann natürlich umgekehrt ....)

Danke für jede Hilfe!
 
Hi,

Flash arbeitet mit positiven Werten von 0 - 180 und nagativen von -180 - 0 für die _rotation-Eigenschaft. Sprich: Wenn Du einem MC die _rotation 270 gibst, und die Eigenschaft direkt danach wieder abfragst, bekommst Du -90 zurückgeliefert.

Lösung: arbeite mit 2 Werten: einen, der die gewünschte Rotation ausdrückt und dem tatsächlichen _rotation-Wert, der lediglich den Wert der Hilfsvariable zugewiesen bekommt.

Gruß

.
 
Das ist ja komisch....
Aber wie bring ich jetzt Flash bei das 270 = -90 ist? Vorallem die zwischenwerte (mach die drehung ja in 5er schritten)
 
Schritten

Sagte ich ja: Ersetz zunächst überall die Eigenschaft _rotation durch eine andere Variable (nenne sie z.B. .rotation ohne den Unterstrich). Diese Variable sollte sich nun korrekt verhalten. Um den Clip dann tatsächlich zum Rotieren zu bringen, brauchst Du nur noch der _rotation-Eigenschaft den Wert Deiner Membervariable "rotation" zuzuweisen (kannst auch 360 abziehen, wenn der Wert zwischen 180 und -0 liegt, aber das ist nicht unbedingt notwendig).

Gruß

.
 

Neue Beiträge

Zurück