Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-01-2005, 12:46   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
_rotation stoppen??

moin.
folgendes problem:
ich will etwas mit "_rotation" drehen, das dann nach 90° automatisch stoppt. das auslösen der drehung geschieht ganz einfach über "release".
leider funzt das stoppen bisher gar nicht. ich hab es mit ner for-schleife versucht, und hitTest (objekt-auf-dem-kreis.hitTest(objekt-außerhalb).
aber es geht nicht.

freue mich über hilfe!
mfg
fireshark
FireShark ist offline   Mit Zitat antworten
Alt 07-01-2005, 12:56   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
wie sieht denn dein script zum drehen aus?

...kannst doch im endeffekt einfach mit ner if frage machen:
ActionScript:
  1. if(Obj._rotation>=90){...};

pape
pape ist offline   Mit Zitat antworten
Alt 07-01-2005, 12:57   #3 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
_rotation ist eine Eigenschaft eines MCs, die du auch über einen onEnterFrame kontinuierlich verändern kannst:
ActionScript:
  1. this.onEnterFrame = function(){
  2.    if(_level0.meinMC._rotation <= 90){
  3.       _level0.meinMC._rotation ++;
  4.    }
  5.    else{
  6.       delete this.onEnterFrame;
  7.    }
  8. }
  Mit Zitat antworten
Alt 07-01-2005, 15:32   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
danke erstmal! das hat mich irgendwie schon mal weitergebracht, obwohl ich das mit der if-anweisung als erstes ausprobiert habe (sorry - das hatte ich vergessen zu schreiben).
das problem ist, dass die rotation durch release ausgelöst werden soll, aber dann auch stetig (onEnterFrame). deshalb verwende ich signal-variablen. und ich habe das gefühl, dass diese tatsache mich so verwirrt, dass ich es einfach nicht hinkriege.
momentan sieht es so aus:
PHP-Code:
onEnterFrame = function() {
    
drehen();
}
function 
drehen() {
    if (
kreis.signal == && kreis._rotation <= 90) {
        
kreis._rotation += 3;
    }
    if (
kreis.signal == && kreis._rotation >= 90) {
        
kreis._rotation -= 3;
    }
}
hoch.onRelease = function() {
    
// oder sollte die bedingung eher hier stehen? dann geht es aber auch nicht
    
kreis.signal 1;
}
runter.onRelease = function() {
    
// bzw hier...
    
kreis.signal 2;

mfg
fireshark
FireShark ist offline   Mit Zitat antworten
Alt 07-01-2005, 16:27   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
hat niemand ne idee?

so sieht es etwas einfacher aus:
PHP-Code:
onEnterFrame = function() {
    if (
signal == 1kreis._rotation += 3;
    if (
signal == 2kreis._rotation -= 3;
}
hoch.onRelease = function() {signal 1};
runter.onRelease = function() {signal 2}; 
mfg
fireshark
FireShark ist offline   Mit Zitat antworten
Alt 07-01-2005, 16:39   #6 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
was genau hast du überhaupt vor?
was funzt nicht?
stimmen die pfade?
fla?
pape ist offline   Mit Zitat antworten
Alt 07-01-2005, 16:56   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
also:
es geht um die vorbereitung einer website.
ein rundes dingens (kreis) soll sich auf knopfdruck um 90° drehen. es befinden sich darauf vier "links". sobald eines im roten rechteck erscheint (nach 90° drehung), soll der text in der mitte der bühne zu sehen sein und der "kreis" soll aufhören, sich zu drehen. außerdem gibt es zwei schaltflächen für je links- und rechtsdrehung.

mfg
fireshark
FireShark ist offline   Mit Zitat antworten
Alt 07-01-2005, 17:31   #8 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
wie wärs denn mit ner function.. in etwa so:
ActionScript:
  1. stop();
  2. speed=3;
  3. drehen = function (s) {
  4.     if(!amdrehen) {
  5.         amdrehen=true;
  6.         r_start = kreis._rotation;
  7.         _root.onEnterFrame = function () {
  8.             if (Math.abs(kreis._rotation-r_start)>=90) {
  9.                 delete _root.onEnterFrame;
  10.                 amdrehen=false;
  11.             } else {
  12.                 kreis._rotation+=s;
  13.             }
  14.         }
  15.     }
  16. }
  17. rechts.onRelease = function () {
  18.     drehen(speed);
  19. }
  20. links.onRelease = function () {
  21.     drehen(-speed);
  22. }
?

grz
pape
pape ist offline   Mit Zitat antworten
Alt 07-01-2005, 17:34   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2004
Beiträge: 138
weyhey, correcto!!
vielen dank - jetzt klappt es endlich! das ist genau das, was ich brauchte.

danke nochmal!!!
mfg
fireshark


EDIT: ich verstehe nur eines nicht. egal, welche richtung - nach zwei mal 90° ist der jeweilige "link" um ca. 3° versetzt. das lässt sich dann nicht mehr ändern. wieso?

Geändert von FireShark (07-01-2005 um 17:47 Uhr)
FireShark ist offline   Mit Zitat antworten
Alt 07-01-2005, 19:28   #10 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hm.. wird wohl daran liegen, dass der aus 181 ° -179° macht... musste dementsprechend dann kurz abändern..

grz
pape
pape ist offline   Mit Zitat antworten
Alt 07-01-2005, 19:48   #11 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
habs dir noch kurz gesändert:
ActionScript:
  1. stop();
  2. speed=5;
  3. while (90%speed) {
  4.     speed++;
  5. }
  6. drehen = function (s) {
  7.     if(!amdrehen) {
  8.         amdrehen=true;
  9.         r_start = kreis._rotation;
  10.         count=Math.abs(90/s);
  11.         i=0;
  12.         _root.onEnterFrame = function () {
  13.             if (i>=count) {
  14.                 delete _root.onEnterFrame;
  15.                 amdrehen=false;
  16.             } else {
  17.                 kreis._rotation+=s;
  18.                 i++;
  19.             }
  20.         }
  21.     }
  22. }
  23. rechts.onRelease = function () {
  24.     drehen(speed);
  25. }
  26. links.onRelease = function () {
  27.     drehen(-speed);
  28. }
speed muss jetzt auch nicht unbedingt ein teiler von 90 sein!

grz
pape

Geändert von pape (07-01-2005 um 19:50 Uhr)
pape 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 02:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele