Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-09-2005, 12:48   #1 (permalink)
Flash Newbie
 
Benutzerbild von mfeldheim
 
Registriert seit: Aug 2005
Beiträge: 25
_rotate

Hallo zusammen..
Hiermit kann ich das mc center mit dem Mouserad jeweils um den Winkel delta*360/imagelist.length weiterdrehen..
ActionScript:
  1. var mouseListener = new Object();
  2. mouseListener.onMouseWheel = function(delta) {
  3.     center._rotation += delta*360/imagelist.length;
  4. };
  5. Mouse.addListener(mouseListener);

Wie müsste ich es anstellen, um eine animierte Rotation bei Betätigung des Mausrades hinzubekommen?
Ich habe es schon mit einer Schleife versucht, die pro Durchlauf ein wenig weiterdreht, macht aber optisch keinen Unterschied..
ActionScript:
  1. var mouseListener = new Object();
  2. mouseListener.onMouseWheel = function(delta) {
  3. for (i=0; i<12; i++)
  4. {
  5.     center._rotation += delta*360/imagelist.length/12;
  6. }
  7. };
  8. Mouse.addListener(mouseListener);
Kann mir jemand helfen?
Grüße
Michel
__________________
* FlashVars Tutorial
mfeldheim ist offline   Mit Zitat antworten
Alt 22-09-2005, 14:00   #2 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Hi.

Willst Du per Mausrad einfach eine Funktion
aufrufen, die einen MC zum Drehen bringt??

Dann kannste das so machen:

ActionScript:
  1. var mouseListener = new Object();
  2. mouseListener.onMouseWheel = function(delta) {
  3.     mI = setInterval(drehen, 20, delta);
  4. };
  5. Mouse.addListener(mouseListener);
  6. function drehen(wert) {
  7.     _root.center._rotation += wert;
  8. }
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 22-09-2005, 14:48   #3 (permalink)
Danilo Sandner
 
Registriert seit: Jun 2001
Ort: frankfurt am main
Beiträge: 286
vom prinzip her funktioniert das so:
(ich hab mal 10 anstelle deiner imagelist.length genommen)

ActionScript:
  1. var mouseListener = new Object();
  2. mouseListener.onMouseWheel = function(delta) {
  3.         if (delta < 0){
  4.             _root.center.zielwert -= 360/10;
  5.             } else {
  6.                 _root.center.zielwert += 360/10;             
  7. }
  8.        // _root.center._rotation += delta*10;
  9. };
  10. Mouse.addListener(mouseListener);
  11.  
  12. center.speed = .1;
  13. center.zielwert = 0;
  14. center.referenz_wert = 0;
  15. center.onEnterFrame = function(){
  16.     this.nr = (this.zielwert - this.referenz_wert) *this.speed;
  17.     this.referenz_wert += this.nr;     
  18.     this._rotation = this.referenz_wert;
  19.     trace(this.referenz_wert);
  20.     }
__________________
www.DaniloSandner.de

www.FlashTreffen.de (Flashtreffen in Frankfurt)

Geändert von danilo (22-09-2005 um 14:50 Uhr)
danilo ist offline   Mit Zitat antworten
Alt 22-09-2005, 21:42   #4 (permalink)
Flash Newbie
 
Benutzerbild von mfeldheim
 
Registriert seit: Aug 2005
Beiträge: 25
@Thebiz Deinen Ansatz kann ich sicher auch irgendwann gebrauchen, leider war es nicht das, was ich im Moment wollte Hab mich wohl nicht eindeutig ausgedrückt, danke jedenfalls

@danilo & all other
Super, exakt was ich wollte... allerdings hab ich ein Problem:
Ich sollte my_mc._rotate nicht verwenden, weil dieser aus mehreren kleinen mcs besteht, die im Kreis rotieren. Da ich deren Koordinaten während der Rotation abfragen muss (möchte immer das bild, das rechts ist, zoomen), muss ich die Rotation mit jedem einzelnen mc des kreises errechnen.

Hab hier mal deinen Vorschlag eingebaut und kommentiert..
ActionScript:
  1. MovieClip.prototype.yugop = function(imglist, description, posX, posY, alpha, radius, rotate) {
  2.     var angle = 10;
  3.     var images = [];
  4.     var img;
  5.     this._x = posX;
  6.     this._y = posY;
  7.     this._alpha = alpha;
  8.     for (var i = 0; i<imglist.length; i++) {
  9.         img = this.attachMovie("bildrahmen", "img"+i, i);
  10.         // description
  11.         img.desc.text = description[i];
  12.         img.wphase = 2*Math.PI/imglist.length*i;
  13.         img.container.loadMovie(imglist[i]);
  14.         images.push(img);
  15.     }
  16.     var mouseListener = new Object();
  17.     mouseListener.onMouseWheel = function(delta) {
  18.         if (delta < 0){
  19.             _root.center.target_angle -= 360/imglist.length;
  20.         } else {
  21.             _root.center.target_angle += 360/imglist.length;
  22.         }
  23.     };
  24.  
  25.     Mouse.addListener(mouseListener);
  26.     center.speed = 0.25;
  27.     center.target_angle = 3;
  28.     center.reference_angle = 3;
  29.     this.onEnterFrame = function() {
  30.         this.increment = (this.target_angle - this.reference_angle) *this.speed;
  31.         this.reference_angle += this.increment;
  32.         // rotation des kompletten mc center,
  33.         // soll ersetzt werden durch die Rotation wie unten folgt nur eben Schrittweise mit dem Mausrad
  34.         this._rotation = this.reference_angle;
  35.                
  36.         /*  Rotation per Mouse x & Y deaktivieren ---------------------
  37.         angle += center._ymouse/rotate;
  38.         if (angle>=2*Math.PI) {
  39.             angle -= 2*Math.PI;
  40.         }
  41.         if (angle<0) {
  42.             angle += 2*Math.PI;
  43.         }
  44.         ------------------------------------------------------------- */
  45.        
  46.         for (var i = 0; i<images.length; i++) {
  47.             img = images[i];
  48.             img._y = radius*Math.cos(img.wphase+angle);
  49.             img._x = radius*Math.sin(img.wphase+angle);
  50.             r_angle = (Math.atan(img._y/img._x)/Math.PI)*180;
  51.             if (img._x>=0) {
  52.                 img._rotation = r_angle;
  53.             }
  54.             if (img._x<0) {
  55.                 img._rotation = r_angle+180;
  56.             }
  57.             //if (img._y>=0) {
  58.             //  img._height = 155;
  59.             //  img._width = 155;
  60.             //} else {
  61.             //  img._height = 150;
  62.             //  img._width = 150;
  63.             //}
  64.            
  65.             img.onRollOver = function() {
  66.                 // mach was ...
  67.             };
  68.         }
  69.     };
  70. };
  71. // Bild-Dateien
  72. xmlData = new XML();
  73. xmlData.ignoreWhite = true;
  74. xmlData.onLoad = function(loaded) {
  75.     if (loaded) {
  76.         xmlNode = this.firstChild;
  77.         imagelist = [];
  78.         description = [];
  79.         total = xmlNode.childNodes.length;
  80.         for (i=0; i<total; i++) {
  81.             imagelist[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
  82.             description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
  83.         }
  84.  
  85.         // overwrite xml loaded imaglist array
  86.                           imagelist = ["1","2","3","4","5","6","7","8","9","10","11","12"];
  87.         center.yugop(imagelist, description, 500, 500, 100, 300, 5000);
  88.     } else {
  89.         content = "file not loaded!";
  90.     }
  91. };
  92. xmlData.load("images.xml");

Im Anhang das komplette fla
Angehängte Dateien
Dateityp: zip rotate.zip (35,2 KB, 31x aufgerufen)
__________________
* FlashVars Tutorial
mfeldheim 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:07 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele