Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-05-2005, 14:11   #1 (permalink)
MMCP
 
Registriert seit: Jun 2001
Ort: Bayern
Beiträge: 892
Movieclip rotieren Tutorial

ActionScript:
  1. /*
  2. Mit folgendem kleinen Tut könnt ihr MovieClips um ein gedachtes Zentrum, unabhängig vom
  3. tatsächlichen Zentrum drehen.
  4. Prinzipiell kann man das Zentrum eines MC ja bekanntlich nicht verändern. Allerdings ist es
  5. natürlich möglich, festzustellen, wie weit sich ein Punkt bewegt, der vom Zentrum entfernt ist.
  6. Das kann man sich zunutze machen, um die Position des MC zu korrigieren.
  7. Ich habe das hier mal am Beispiel der Rotation gemacht, mit zoomen geht's auch, man muß nur
  8. die Berechnungen etwas anders gestalten. Mach ich vielleicht später mal...
  9. */
  10. //Dreht Clip um gedachten Punkt
  11. rotateClip = function(clip_mc, rotation_number, virtualX_number, virtualY_number) {
  12.     //clip_mc       - der zu drehende Clip
  13.     //rotation_number   - der Wert, der zur aktuellen Rotation addiert wird
  14.     //virtualX_number   - x-Position des virtuellen Drehpunkts (im Koordinatensystem des Zielclips)
  15.     //virtualY_number   - y-Position des virtuellen Drehpunkts (im Koordinatensystem des Zielclips)
  16.     //1. virtuellen Drehpunkt vor Rotation sichern
  17.     var oldVirtualX_number = clip_mc._x + Math.cos(clip_mc._rotation * Math.PI / 180) * virtualX_number - Math.sin(clip_mc._rotation * Math.PI / 180) * virtualY_number;
  18.     var oldVirtualY_number = clip_mc._y + Math.sin(clip_mc._rotation * Math.PI / 180) * virtualX_number + Math.cos(clip_mc._rotation * Math.PI / 180) * virtualY_number;
  19.     //2. Zielclip drehen
  20.     clip_mc._rotation += rotation_number;
  21.     //3. resultierende Position des virtuellen Drehpunkts ausrechnen
  22.     var newVirtualX_number = clip_mc._x + Math.cos(clip_mc._rotation * Math.PI / 180) * virtualX_number - Math.sin(clip_mc._rotation * Math.PI / 180) * virtualY_number;
  23.     var newVirtualY_number = clip_mc._y + Math.sin(clip_mc._rotation * Math.PI / 180) * virtualX_number + Math.cos(clip_mc._rotation * Math.PI / 180) * virtualY_number;
  24.     //Tatsaechlichen Drehpunkt dementsprechend verschieben
  25.     clip_mc._x -= newVirtualX_number - oldVirtualX_number;
  26.     clip_mc._y -= newVirtualY_number - oldVirtualY_number;
  27.    
  28.    
  29.     //Zum testen, den virtuellen Punkt sichtbar machen
  30.     this.attachMovie("test", "test2", 1);
  31.     this["test2"]._x = oldVirtualX_number;
  32.     this["test2"]._y = oldVirtualY_number;
  33. };
  34.  
  35.  
  36.  
  37.  
  38. //Funktion testen (benoetigt mc auf der Buehne - test_mc)
  39. test_mc.onRelease = function() {
  40.     //Irgendein Punkt
  41.     //rotateClip(test_mc, 10, 140, 80);
  42.     //Punkt ausserhalb des MC
  43.     //rotateClip(test_mc, 10, -40, -100);
  44.     //Ecke oben links
  45.     //rotateClip(test_mc, 10, -40, -20);
  46.     //Logische Mitte
  47.     //rotateClip(test_mc, 10, 60, 40);
  48.     //Mitte dynamisch ermitteln (ist etwas umständlich - vielleicht habt ihr ja was einfacheres auf Lager?)
  49.     rotateClip(test_mc, 10, (test_mc.getBounds(this).xMax - test_mc.getBounds(this).xMin) / 2 + test_mc.getBounds(this).xMin, (test_mc.getBounds(this).yMax - test_mc.getBounds(this).yMin) / 2 + test_mc.getBounds(this).yMin);
  50. };

Ein kleines Dankeschön ans Flashforum von mir,

RR
__________________
aha!
Rudi Ratlos ist offline   Mit Zitat antworten
Alt 25-05-2005, 14:39   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Haste net gerade noch nen Link wo man sich's mal angucken kann?

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 25-05-2005, 14:41   #3 (permalink)
MMCP
 
Registriert seit: Jun 2001
Ort: Bayern
Beiträge: 892
Kopier den Code einfach in einen Film. Du brauchst nur einen Clip zum Testen pinseln...

RR
__________________
aha!
Rudi Ratlos ist offline   Mit Zitat antworten
Alt 25-05-2005, 14:58   #4 (permalink)
flashforum
 
Benutzerbild von marc
 
Registriert seit: Jun 2001
Ort: krefeld
Beiträge: 13.866
Thumbs up

Packe es direkt in die Tutorials. Danke dir!
__________________
Wo sonst? TwitterFlickrXINGFacebook

beyond tellerrand

[ Wo findet ihr mich noch: twitterdribbblezootoolgoogle+facebookmarc.thielespoiler.web ]
marc ist offline   Mit Zitat antworten
Alt 25-05-2005, 15:06   #5 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Zitat:
Zitat von Rudi Ratlos
Kopier den Code einfach in einen Film. Du brauchst nur einen Clip zum Testen pinseln...

RR
Ok, schon ganz nett.

--pp
Angehängte Dateien
Dateityp: zip rotation_MC.zip (3,9 KB, 1345x aufgerufen)
~pyropete~ ist offline   Mit Zitat antworten
Alt 25-05-2005, 15:20   #6 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
Thumbs up

sehr praktisch! danke für die bereitstellung des scripts
cya, 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 25-05-2005, 15:29   #7 (permalink)
buehnentechniker
 
Benutzerbild von honifred
 
Registriert seit: Feb 2002
Ort: trier
Beiträge: 2.448
super! wird jede woche bestimmt einmal danach gefragt. jetzt brauch ich nur den link zu booken

danke!
__________________
Es gibt eine Sache, die schlimmer ist, als die Ausschweifung: die Abstinenz.

Achim 69
honifred ist offline   Mit Zitat antworten
Alt 03-06-2005, 16:12   #8 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
nette sache
weiter so!

pape
pape ist offline   Mit Zitat antworten
Alt 10-07-2005, 14:11   #9 (permalink)
4€ a day...
 
Benutzerbild von Marlboro
 
Registriert seit: Jul 2005
Beiträge: 11
Habe an was ähnlichem recht lange gekaut...

dankeschön, so muss ich schon net fragen!
__________________
Mit dem Rauchen aufzuhören is easy, habs schon tausendmal geschafft...

Come to Marlboro Country
Marlboro ist offline   Mit Zitat antworten
Alt 14-09-2005, 12:44   #10 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: Waiblingen
Beiträge: 53
und wie schaff ichs das sich das ding von alleine dreht - ohne onclipevent?!
toohardforme ist offline   Mit Zitat antworten
Alt 14-09-2005, 14:34   #11 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
Zitat:
Zitat von toohardforme
und wie schaff ichs das sich das ding von alleine dreht - ohne onclipevent?!


also ohne onEnterFrame schleife oder vergleichbares wird es wohl kaum funktionieren! was haste denn vor?

cya, 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 04-11-2005, 07:16   #12 (permalink)
thnkGodImAtheist
 
Benutzerbild von kurthurtig
 
Registriert seit: Nov 2003
Ort: kölle am rhing
Beiträge: 1.853
sodele habs mal versucht, damit es sich von allein dreht.

habe das onRelease in ein onPress geändert: funktioniert
habe ein onEnterFrame eingefügt:

ActionScript:
  1. rotateClip.onEnterFrame = function(clip_mc, rotation_number, virtualX_number, virtualY_number) {
  2. ...
  3. }

klappt nicht. was mach ich falsch?

edit:
habe auch versucht eine zweite funktion reinzuschreiben:
ActionScript:
  1. rotateClip = function(clip_mc, rotation_number, virtualX_number, virtualY_number) {
  2. rotate.onEnterFrame = function() {
  3. ...
  4. }
  5. }
geht auch nicht

edit²:
habe es jetzt so hinbekommen, dass ich beim aufrufen den enterFrame mache. dann klappts. aber warum funktioniert es andersrum nicht?!?

Geändert von kurthurtig (04-11-2005 um 07:43 Uhr)
kurthurtig ist offline   Mit Zitat antworten
Alt 16-12-2005, 13:11   #13 (permalink)
AS EinsZweiDrei
 
Benutzerbild von odyssee
 
Registriert seit: Dec 2005
Ort: Hamburg
Beiträge: 20
Lightbulb Automatisiertes Drehen des MovieClips

Zitat:
Zitat von kurthurtig
edit²:
habe es jetzt so hinbekommen, dass ich beim aufrufen den enterFrame mache. dann klappts. aber warum funktioniert es andersrum nicht?!?
Ich bin mir nicht ganz sicher, ob ich deine Frage richtig verstanden habe, aber meiner Meinung nach ist dies Script nach dem du suchst:

test_mc.onRelease = function() {
// Automatisches Drehen
this.onEnterFrame = function(){
rotateClip(test_mc, 10, 140, 80);
}
};

Wenn du willst, dass sich der Clip dreht, ohne das du diesen vorher klicken musst, damit er sich dreht, sieht das Script wie folgt aus:

test_mc.onEnterFrame = function(){
rotateClip(this, 10, 140, 80);
}

Hoffe, dass dies dir weiterhilft.
Odyssee
odyssee ist offline   Mit Zitat antworten
Alt 03-12-2006, 16:47   #14 (permalink)
Neuer User
 
Registriert seit: Dec 2006
Beiträge: 9
vielen Dank für dieses Tutorial, kann ich wunderbar für mein kleines Ratespiel mit Figur gebrauchen
Koronki 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 01:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele