Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-10-2009, 15:53   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 6
rotieren und stop!

Hallo,

hab ein kleines Problemchen mit dem Rotieren. Ich habe eine Scheibe die beim Klick auf einem Button sich um 20 Grad drehen soll und anhalten. Bei weiterem Klick soll sie sich dann nochmal um weitere 20 Grad drehen und wieder anhalten und so weiter. Es gibt noch einen zweiten Button bei dem auf Klick die Scheibe sich um 20 Grad andersherum dreht, also ist das alles analog nur umgekehrt, daher lassen wir den mal außen vor.

Mein Problem ist, dass ich das mit folgendem Script ja hin gekriegt habe, funktioniert auch ganz gut, nur nach dem 9. Klick fängt die Scheibe sich an zu drehen und hört nicht mehr auf. Hat jemand ne Idee woran das liegen kann?

PHP-Code:
on(press){

    
_root.scheibe.endrotangle _root.scheibe._rotation 20

    
_root.scheibe.onEnterFrame = function(){

        if(
scheibe._rotation >= scheibe.endrotangle){ 

            
delete scheibe.onEnterFrame;

        }else{

            
scheibe._rotation++;

        }
    }

Danke

p.S. wahrscheinlich merkt man es, aber ich kenn mich gar nicht gut in Flash aus
theosam ist offline   Mit Zitat antworten
Alt 21-10-2009, 16:17   #2 (permalink)
SYS 64738
 
Benutzerbild von Das_Nerzkanu
 
Registriert seit: Oct 2006
Ort: Trier
Beiträge: 214
Hi,

das liegt daran, dass der Wertebereich für _rotation zwischen -180 und 180 liegt. (bzw. AS2 rechnet höhere/kleinere Werte dementsprechend um)

Vermutlich hat Dein endrotangle einen Wert über 180, den die _rotation nie erreichen kann. Trace Dir mal die endrotangle und die scheibe._rotation aus, dann siehst Du es.

Grüße

Geändert von Das_Nerzkanu (21-10-2009 um 16:18 Uhr)
Das_Nerzkanu ist offline   Mit Zitat antworten
Alt 21-10-2009, 16:26   #3 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
hi,
habs nicht getestet, aber das sollte so hinhauen:
PHP-Code:
on(press){

    
_root.scheibe.endrotangle _root.scheibe._rotation 20
    
    if ( 
_root.scheibe.endrotangle >= 200 ) {
        
        
_root.scheibe._rotation 0;
        
_root.scheibe.endrotangle _root.scheibe._rotation 20
        
    }

    
_root.scheibe.onEnterFrame = function(){

        if(
this._rotation >= this.endrotangle){ 

            
delete this.onEnterFrame;

        }else{

            
this._rotation++;

        }
    }

cheers,
sal

edit: "Das_Nerzkanu" war schneller als ich und hat natürlich vollkommen recht. deshalb diese neue if bedingung in dem script.
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 21-10-2009, 16:35   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 6
OK, das seh ich ein (9 X 20° sind ja 180°). Und wie kann man das dann lösen? Das Ding muss sich so oft man will hin und her drehen lassen. Und das in beiden Richtungen. Jemand ne Idee?
theosam ist offline   Mit Zitat antworten
Alt 21-10-2009, 16:40   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 6
ne, klappt nicht, das springt nach der 10 Drehung wieder an den Anfang. Hab das mal mit angehangen (falls das funktioniert hat!!!) damit ihr sehen könnt was gemneint ist. (die roten Flächen oben sollen irgendwann mal pfeile sein, eins nach rechts und eins nach links )
Angehängte Dateien
Dateityp: fla drehscheibe-test.fla (400,0 KB, 8x aufgerufen)
theosam ist offline   Mit Zitat antworten
Alt 21-10-2009, 16:41   #6 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
das script oben macht genau das.... man kann so oft klicken wie man will und es wird immer um 20grad gedreht...

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 21-10-2009, 16:44   #7 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
okay... das bsp hätte man vorher sehen müssen.
ein problem was sich bei deinem script ergibt ist folgendes... wenn du nicht wartest bis die drehung beendet ist und wärend der drehung erneut klickst bringste das system schon komplett durcheinander.

schau mal. hier die lösung für das zurückspringen:
PHP-Code:
on(press){

    
_root.scheibe.endrotangle _root.scheibe._rotation 20
    
    if ( 
_root.scheibe.endrotangle >= 200 ) {
        
        
_root.scheibe._rotation = -180;
        
_root.scheibe.endrotangle _root.scheibe._rotation 20
        
    }

    
_root.scheibe.onEnterFrame = function(){

        if(
this._rotation >= this.endrotangle){ 

            
delete this.onEnterFrame;

        }else{

            
this._rotation++;

        }
    }

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!

Geändert von salazar (21-10-2009 um 16:48 Uhr)
salazar ist offline   Mit Zitat antworten
Alt 21-10-2009, 16:56   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 6
super... das klappt ja schon mal sehr gut.

Habs auch gesehen dass wenn man da nochmal klickt bevor die Drehung vollendet ist dass der da durcheinander kommt. Gibt es denn dafür auch eine Lösung? (solange die Drehung nicht abgeschlossen ist, der Button inaktiv ist, oder sowas ähnliches????)
theosam ist offline   Mit Zitat antworten
Alt 21-10-2009, 17:12   #9 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
klaro geht das auch
PHP-Code:
on(press){

    if ( 
_root.scheibe._rotation 20 == ) {
    
        
_root.scheibe.endrotangle _root.scheibe._rotation 20
        
        if ( 
_root.scheibe.endrotangle >= 200 ) {
            
            
_root.scheibe._rotation = -180;
            
_root.scheibe.endrotangle _root.scheibe._rotation 20
            
        }
    
        
_root.scheibe.onEnterFrame = function(){
    
            if(
this._rotation >= this.endrotangle){ 
    
                
delete this.onEnterFrame;
    
            }else{
    
                
this._rotation++;
    
            }
        }
    
    }
    

allerdings hab ich das jetzt auch nur auf die schnelle alles zusammengeschrieben. scripte packt man nämlich eigentlich schon seid flash6 nicht mehr auf button und movieclips drauf. und du scriptest in actionscript1, nicht as2 wie angegeben.
naja... hauptsache es läuft jetzt.

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 21-10-2009, 17:13   #10 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
hey,
hab deinen beitrag in den AS1 bereich verschoben

cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 22-10-2009, 09:12   #11 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
ist dir denn jetzt geholfen und nimmst das stillschweigend hin, oder hakt es immer noch wo?
cheers,
sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 22-10-2009, 09:29   #12 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 6
Guten morgen,

hatte gestern schon Feierabend von daher keine Antwort mehr. Also, rechts herum geht es ja schon mal. Jetzt schau ich mal ob ich das auch ohne Probleme links herum hin kriege. Müsste ja eigentlich alles nur analog umkehren... Ich versuchs einfach mal und sag dann bescheid
theosam ist offline   Mit Zitat antworten
Alt 22-10-2009, 10:39   #13 (permalink)
Neuer User
 
Registriert seit: Sep 2006
Beiträge: 6
Learning by doing :-) Hat letzendlich geklappt... Vielen Dank
theosam 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
einer stop(1) - alle anderen stop(2) capten ActionScript 2 8 11-06-2009 21:19
MC rotieren Karsten572 Flash MX 2004 1 18-08-2004 21:32
MC rotieren! Pat-ro ActionScript 1 1 28-08-2002 20:47
rotieren brennus Flash 4 und Flash 5 5 19-07-2002 21:28
bei _root >stop< auch alle MC >stop<??? arnold85 ActionScript 1 2 12-01-2002 01:54


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele