Thema: [Flash CS4] - onCLICK (rotate...)
Einzelnen Beitrag anzeigen
Alt 24-07-2010, 14:17   #10 (permalink)
DerTobi
Neuer User
 
Registriert seit: Oct 2009
Ort: Bremen
Beiträge: 147
Ok, neuer Versuch.

ActionScript:
  1. var circles : Array = [kreis1, kreis, kreis3, kreis4, kreis5];
  2.  
  3. function init() : void
  4. {
  5.     for each( var circle : MovieClip in circles)
  6.     {
  7.         circle.addEventListener(MouseEvent.CLICK, rotate);
  8.         //Andere Dinge die du für die Kreise setzen möchtest
  9.         //Zum Beispiel eine Endrotation? Also bei welchem Rotationswert das Ding an der richtigen position ist?
  10.         //Beispiel: Nach 3x Rotieren wäre dieser Kreis an der richtigen Position.
  11.         //Da es ein MovieClip ist, kannst du dem Kreis einfach eine neue Eigenschaft "endAngle" geben
  12.         circle.endAngle = 75;
  13.     }
  14. }
  15.  
  16. function rotate( evt : MouseEvent ) : void
  17. {
  18.     var index : int = circles.indexOf(evt.currentTarget);
  19.    
  20.     evt.currentTarget.rotation += 25;
  21.     //Je nach Kreisindex (also Position im Array)
  22.     switch(index)
  23.     {
  24.         case 0:
  25.             //Beispiel: Nicht nur der erste Kreis soll rotieren, sondern auch der 2. und 3.
  26.             circles[1].rotation += 25;
  27.             circles[2].rotation += 25;
  28.             //Wie du siehst, beginnt man beim Zählen der Array-Elemente mit 0.
  29.             //Also achte darauf, wenn du deine unterschiedlichen Kreise ansprichst
  30.             break;
  31.         case 1:
  32.             //Hier andere Kreise rotieren lassen
  33.             break;
  34.         case 2:
  35.             break;
  36.         case 3:
  37.             break;
  38.     }
  39.    
  40.     //Nachdem alles rotiert ist, überprüfst du ob die Endpositionen erreicht sind
  41.     //Deine Zählvariable
  42.     var count : int = 0;
  43.     for each( var circle : MovieClip in circles )
  44.     {
  45.         //Wenn die aktuelle Rotation dem Endrotationswert entspricht erhöhe den Zähler um eins
  46.         if(circle.endAngle == circle.rotation)
  47.             count++;
  48.     }
  49.     //Wenn für jedes Element die Bedingung oben eingetreten ist, also alle ihren Endrotationswert besitzen,
  50.     //dann leite weiter zu neuem Frame
  51.     if(count == circles.length)
  52.         gotoAndStop(2); //Deine Framenummer oder per gotoAndStop("label") ein Framelabel ansprechen
  53. }

Hoffe das hilft dir etwas weiter.

Bei Fragen fragen

Geändert von DerTobi (24-07-2010 um 14:40 Uhr)
DerTobi ist offline   Mit Zitat antworten