Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-10-2004, 10:46   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 4
MC drehen ähnlich Parkuhr in 90, 180,270,360 Schritten

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!
Velli ist offline   Mit Zitat antworten
Alt 11-10-2004, 10:59   #2 (permalink)
aka stauby
 
Benutzerbild von webdust
 
Registriert seit: Mar 2004
Ort: Würzburg
Beiträge: 705
Keine Ahnung, ob´s was bringt, aber 180 bis 360 Grad kann man auch als -180 bis 0 Grad angeben. Vielleicht klappt´s ja so.
__________________
"The things you own end up owning you."
webdust ist offline   Mit Zitat antworten
Alt 11-10-2004, 11:04   #3 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
musst du sogar! sonst gibts halt obengenannten Effekt.
jeypack ist offline   Mit Zitat antworten
Alt 11-10-2004, 11:10   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 4
Ja, schön, aber wie bring ich Flash bei das 270 eigentlich -90 ist?
Velli ist offline   Mit Zitat antworten
Alt 11-10-2004, 11:56   #5 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
probiers mal etwas anders vom Ansatz.
Also bei einer Rotation von '5' macht das bei 90 Grad - 18 Schritte.
Änder dein Script mal so ab:

PHP-Code:
onClipEvent (enterFrame) {
    if (
direction == "plus") {
        
this._rotation += 5;
        
counter++;
        if (
counter == 18) {
            
direction "";
            
trace("stop");
        }
    } else if (
direction == "minus") {
        
this._rotation -= 5;
        
counter++;
        if (
counter == 18) {
            
direction "";
            
trace("stop");
        }
    }
}
onClipEvent (load) {
    
this._rotation 0;

Dann brauchst du auf dem Vorwärtsbutton nur noch so was:

PHP-Code:
on (release) {
    
_root.unterscheibe.counter 0;
    
_root.unterscheibe.direction "plus";

Und für Rückwärts natürlich:

PHP-Code:
on (release) {
    
_root.unterscheibe.counter 0;
    
_root.unterscheibe.direction "minus";

Das 'trace' kannst du natürlich wieder entfernen. Nach dem Test.

Gruß
Jeypack
jeypack ist offline   Mit Zitat antworten
Alt 11-10-2004, 17:00   #6 (permalink)
AchimHomeZone
 
Benutzerbild von onip
 
Registriert seit: Feb 2002
Ort: Cöllefornia / Cologne / Kölle / Köln
Beiträge: 1.541
drehst du dein objekt prinzipiel in 90° schritten,
oder hab ich das falsch verstanden?

sonst auf dein button, geht mit allen gradzahlen (90, 180,270,360):
vor
PHP-Code:
on (release) {
    
mc._rotation+=90;

zurück
PHP-Code:
on (release) {
    
mc._rotation-=90;

das ist alles
__________________
__________________


4. Lunyu 2.13.

Zi Gong fragte, was einen Flasher ausmache.
Konfuzius sprach: "Er predigt nur das, was er zuvor schon selbst in die Tat umgesetzt hat."
onip ist offline   Mit Zitat antworten
Alt 11-10-2004, 18:14   #7 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
@onip: hast du falsch verstanden. Dann springt er ja in 90° Schritten.
Er soll sich aber in 5° Schritten dorthin bewegen.
jeypack ist offline   Mit Zitat antworten
Alt 11-10-2004, 19:20   #8 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 4
Ich habs!!! Ein Tip aus einem anderen Forum hat mich drauf gebracht: Ich muss eine neue Variabel einsetzten:

Beispiel:

MC:

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


und dann der Button:


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


Wichtig ist das man bei 360° wieder auf Null setzt, sonst dreht sichs nicht weiter....

Trotzdem vielen Dank an allen die mir helfen wollten.
Velli ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele