• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-05-2010, 10:14   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2009
Ort: Italien
Beiträge: 53
Exclamation onCLICK (rotate...)

Hallo an alle,
da bin ich wieder mit meinen Fragen ^^

also habe da ein kleines Problem. Ich habe ein Bild genauer gesagt ein rundes Bild. Dieses Bild ist in mehreren kleineren Kreisen unterteilt. Zu Beginn kann man nicht erkennen was das Bild darstellen sollte. Nur wenn man auf einen der Ringe klickt dreht der sich um sagen wir mal 25°. Also muss man alle einzelnen Kreise drehen damit man das Bild erkennen kann.

Dazu jetzt die Frage. Wie erstellt man so etwas in AS3?!? Hab noch fast keine Erfahrung mit Action Script und kann somit auch nicht sagen wie man das angehen sollte.

Kann mir einer von euch vielleicht da weiterhelfen?!?

Danke schon im voraus für alle Antworten...
Illtras ist offline   Mit Zitat antworten
Alt 05-05-2010, 13:02   #2 (permalink)
Neuer User
 
Registriert seit: Nov 2009
Ort: Italien
Beiträge: 53
ich hoffe ich habe mich klar genug ausgedrückt oder ist mein problem schwer zu erkennen?!? hoffe trotzdem dass irgend jemand mir helfen kann; EGAL WER
Illtras ist offline   Mit Zitat antworten
Alt 05-05-2010, 14:27   #3 (permalink)
Neuer User
 
Benutzerbild von Simse179
 
Registriert seit: Feb 2005
Beiträge: 457
Ich denke, Du meinst sowas?

ActionScript:
  1. var meineRinge:Array = [ring1, ring2, ring3, ring4]; //bei Dir werden es wohl einige Ringe mehr sein
  2.  
  3. for (var i:uint = 0; i<meineRinge.length; i++){
  4.     meineRinge[i].addEventListener(MouseEvent.CLICK, drehe);
  5. }
  6.  
  7. function drehe(e:MouseEvent):void{
  8.     e.currentTarget.rotation = 25;
  9. }

vg, Simse
Angehängte Dateien
Dateityp: fla drehen.fla (68,5 KB, 8x aufgerufen)
Simse179 ist offline   Mit Zitat antworten
Alt 05-05-2010, 15:53   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2009
Ort: Italien
Beiträge: 53
ja genau so etwas. aber bei diesem beispiel kann man nur einmal darauf klicken damit sie sich um 25° drehen. dabei meinte ich aber dass sie für jedes mal wo man darauf klickt um 25° drehen. aber ansonsten stimmt schon der grundsatz
Illtras ist offline   Mit Zitat antworten
Alt 05-05-2010, 16:03   #5 (permalink)
Neuer User
 
Benutzerbild von Simse179
 
Registriert seit: Feb 2005
Beiträge: 457
Na dann würd ich das so schreiben:
ActionScript:
  1. e.currentTarget.rotation += 25;
Simse179 ist offline   Mit Zitat antworten
Alt 05-05-2010, 16:23   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2009
Ort: Italien
Beiträge: 53
jaaaa, genau. vielen vielen dank...
Illtras ist offline   Mit Zitat antworten
Alt 24-07-2010, 14:35   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2009
Ort: Italien
Beiträge: 53
hab noch 2 weitere fragen zu diesem beitrag

eigendlich 3 aber mal sehn…

also es funktioniert perfekt dass mit dem rotieren aber nun hab ich etwas versucht und es einfach nicht hinbekommen. ich wollte nähmlich dass jetzt bei einigen kreisen wenn man die anklickt sich nicht nur ein kreis dreht sondern sich ein weiterer mitdreht. also zb so klick 1. kreis bewegt sich nur der 1 kreis, klick auf 2. kreis bewegt sich der 2. und auch der 1. kreis um die grad welche man eingegeben hat. ist das möglich?

und zur 2. frage. die kreise sollten wie ein puzzle sein also mann muss sie drehen damit das bild richtig dargestellt wird. es sollte mit der 1. frage eben ein wenig schwieriger gemacht werden
die 2. frage wäre dann wie man es schafft dass wenn das bild auch verfolständigt wurde, also alle teile richtig gedreht wurden, es automatisch zu einem neuen frame springt.

YouTube - Lets Play Assassins Creed 2 #84 [Blind] Deutsch - Die Wahrheit

minute 2:55
Illtras ist offline   Mit Zitat antworten
Alt 24-07-2010, 14:47   #8 (permalink)
Neuer User
 
Registriert seit: Oct 2009
Ort: Bremen
Beiträge: 147
Zu deiner
1.Frage:
Hierzu benötigst du Referenzen auf deine Objekte. Zum Beispiel in einem Array. Wird nun ein Kreis angeklickt kannst du ja in der entsprechenden Handler-Methode auch andere Kreise rotieren.

ActionScript:
  1. private var circle : Array = [kreis1, kreis2, kreis3, kreis4, kreis5];
  2.  
  3. private function rotate( evt : MouseEvent ) : void
  4. {
  5.     //Per evt.currentTarget bekommst du das Element an das der Handler angehangen wurde
  6.     var circleMC : MovieClip = evt.currentTarget;
  7.     //Hiermit bekommst du die Position deines Kreises im Array heraus
  8.     var index : int = circle.indexOf(circleMC);
  9.  
  10.     //Hier könnte eine switch() - Abfrage hin, in welcher du deine verschiedenen Fälle implementieren kannst
  11. }

Zur 2.Frage:

Wenn jeder Kreis einen bestimmten Status hat, in den er muss, dann kannst du das auch in der Handler-Klasse nach dem Rotieren überprüfen. Wenn alle Kreise in ihrer Zielposition liegen, kannst du per gotoAndPlay() oder gotoAndStop() einen anderen Frame ansteuern.

Geändert von DerTobi (24-07-2010 um 14:48 Uhr)
DerTobi ist offline   Mit Zitat antworten
Alt 24-07-2010, 15:02   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2009
Ort: Italien
Beiträge: 53
ich bedanke mich für die schnelle antwort aber hab GAAAAAAAANZ vergessen zu erwähnen dass ich mit Action Script mehr oder weniger hinten stehe

und muss leider auch zugeben kein einziges wort verstanden zu haben was man ändern sollte oder nicht

natürlich weiß ich dass ich nicht verlangen kann dass andere member meine arbeiten versuchen zu machen und das will ich auch nicht verlangen aber würde mich wirklich wirklich freuen dass mir jemand das zeigen kann…

mfg
Illtras


Ps. wenn jemand zeit und lust hat nen Noob zu helfen. Jede hilfe nehm ich mit freuden an ^^
Illtras ist offline   Mit Zitat antworten
Alt 24-07-2010, 15:17   #10 (permalink)
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 15:40 Uhr)
DerTobi ist offline   Mit Zitat antworten
Alt 24-07-2010, 19:44   #11 (permalink)
Neuer User
 
Registriert seit: Nov 2009
Ort: Italien
Beiträge: 53
hehehe…*vielen dank

werde es gleich mal testen. jop und bei fragen werde ich mich wieder melden falls es oke ist
Illtras ist offline   Mit Zitat antworten
Alt 24-07-2010, 20:25   #12 (permalink)
Neuer User
 
Registriert seit: Nov 2009
Ort: Italien
Beiträge: 53
mhhhhh… scheint nicht so zu klappen wie ichs mir gedacht habe

im anhang mal die flash-datei. sicher ein fehler meinerseits

achja. wie kann man defienieren dass jeder kreis eine unterschiedliche endposition hat also einer 25 der nächste 75 usw…
Angehängte Dateien
Dateityp: fla drehung2.fla (47,0 KB, 5x aufgerufen)
Illtras ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
as3, circle, flashcs4, kreise, rotate

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
[Flash CS4] as2 in as3? rotate aphratec Flash Einsteiger 1 20-11-2009 14:44
Rotate + Pause kaschwei Flash MX 2004 1 20-11-2004 19:24
rotate it low ActionScript 1 5 26-08-2004 13:00
Freehand 3d Rotate Xerial Zusatzprodukte 3 28-07-2003 22:00
rotate menue yotom Flash 4 und Flash 5 1 11-10-2001 16:12


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

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


Copyright ©1999 – 2012 Marc Thiele