mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 20:20 Benutzername: Passwort: Auto-Login

Thema: Rotationsgeschwindigkeit bei Flash-Menü vom 10.03.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> Rotationsgeschwindigkeit bei Flash-Menü
Seite: 1, 2  Weiter
Autor Nachricht
ExMD
Threadersteller

Dabei seit: 27.01.2005
Ort: Saarland
Alter: 45
Geschlecht: Männlich
Verfasst Mo 10.03.2008 15:22
Titel

Rotationsgeschwindigkeit bei Flash-Menü

Antworten mit Zitat Zum Seitenanfang

Hallöle

ich hab vor einiger Zeit ein fertiges Flash-Menü erhalten, das leicht angepasst werden sollte für eine Homepage.
Bilder drehen sich wie auf einem Karusell, werden unscharf und kleiner, wenn sie in den Hintergrund gelangen und bewegen sich je nach Position des Mauszeigers mit.
Das nervige an dem Script ist die Rotationsgeschwindigkeit, wenn die Maus die Flash-Datei zur Seite hin verlässt. Dann drillert das Ding, dass man nix mehr erkennen kann.
Ich hab jetzt versucht den Code anzupassen, allerdings hatte das den Nachteil, dass sich das auf die gesamte Rotationsgeschwindigkeit ausgewirkt hat. Sprich: Nach dem Laden rotiert das ganze entweder gar nicht oder viel zu langsam.
Vielleicht kann mir jemand weiterhelfen, was ich ändern muss?

Hier meine Änderungen, ab //rot -= (Stage.width/2-_xmouse)/10000*turningspeed; :
Code:

//CHANGEABLE VARIABLES
//image dimensions
imageWidth = 112;
imageHeight = 75;
//span when animation has finished
xxspan = 200;
yyspan = 45;
//Starting span before moving to center
xspan = 5*xxspan;
yspan = 5*yyspan;
//scale when totally at the back (in %)
minimumscale = 25;
//turningspeed
turningspeed = 4;
//use a focal blur
useFocalBlur = true;
focalBlurValue = 2;
//margin from center of carousel where mouse position has no effect on turning
marg = 50;
//SCRIPTS
Stage.scaleMode = "noscale";
Stage.align = "left";
num = 1;
total = 0;
rot = 0;
sliding = false;
J.swapDepths((minimumscale+(100-minimumscale)*(1+(Math.sin(180)))/2));
//import libs
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.display.BitmapData;
zoomed = false;
intThumb._visible = true;
// tween in the middle image
tween = new Tween(J, "_alpha", Strong.easeOut, 0, 100, 400, false);
//tween in the photos
tween = new Tween(this, "xspan", Strong.easeOut, xspan, xxspan, 50, false);
tween = new Tween(this, "yspan", Strong.easeOut, yspan, yyspan, 50, false);
// xml object / ignorewhite
xml = new XML();
xml.ignoreWhite = true;
//load object for parsing
xml.onLoad = function(sucess) {
   if (sucess) {
      storeAll(xml);
   }
};
// load XML
xml.load('photos.xml');
//
// parsing function
function storeAll(xmlDoc_xml) {
   //parse all folders
   for (var n = 0; n<xmlDoc_xml.childNodes.length; n++) {
      this["photo"+n] = new Object();
      //add to folders list
      duplicateMovieClip(intThumb, "thumb"+n, this.getNextHighestDepth());
      thumbRef = this["thumb"+n];
      thumbRef._visible = true;
      thumbRef.num = n;
      thumbRef.link = xmlDoc_xml.childNodes[n].attributes.link;
      thumbRef.urls = xmlDoc_xml.childNodes[n].attributes.urls;
      s = xmlDoc_xml.childNodes[n].attributes.subtitle;
      if (s == undefined) {
         s = "";
      }
      thumbRef.subtitle.text = s;
      loadMovie(thumbRef.urls, thumbRef.loader);
      total += 1;
   }
   //end for folders
   trace("Done, parsed "+n+" photos");
   perinstance = (2*Math.PI)/total;
}
//end function
this.onEnterFrame = function() {
   //rot -= (Stage.width/2-_xmouse)/10000*turningspeed;
   if (_ymouse<slider_bg._y-50) {
      if (_xmouse>Stage.width/2+marg) {
         rot -= (Stage.width/2+marg-_xmouse)/100000*turningspeed;
      }
      if (_xmouse<Stage.width/2-marg) {
         rot -= (Stage.width/2-marg-_xmouse)/100000*turningspeed;
      }
      if (rot<0) {
         rot = Math.PI*2+rot;
      }
      if (rot>Math.PI*2) {
         rot = rot-Math.PI*2;
      }
   }
   if (sliding) {
      rot = (slider._x-slider_bg._x)/slider_bg._width*(Math.PI*2);
   } else {
      slider._x = slider_bg._x+rot/(Math.PI*2)*slider_bg._width;
   }
};
//functions
function getX(number) {
   ax = Stage.width/2+xspan*Math.cos(rot+number*perinstance);
   return ax;
}
function getY(number) {
   ay = Stage.height/2+yspan*Math.sin(rot+number*perinstance);
   return ay;
}
function getScale(number) {
   sc = Math.round((minimumscale+(100-minimumscale)*(1+(Math.sin(rot+number*perinstance)))/2)*100)/100;
   return sc;
}
function blur(dis, number) {
   dis.filters = "";
   if (useFocalBlur) {
      f = focalBlurValue-focalBlurValue*(1+(Math.sin(rot+number*perinstance)))/2;
      var blur = new flash.filters.BlurFilter(f, f, 1);
      var tmpFilters:Array = dis.filters;
      tmpFilters.push(blur);
      dis.filters = tmpFilters;
      dis._alpha = 80+20*(1+(Math.sin(rot+number*perinstance)))/2;
   }
}
function reflect(src, target, alpha) {
   var bdata:BitmapData = new BitmapData(src._width/(src._xscale/100), src._height/(src._yscale/100), true, 0x00ffffff);
   bdata.draw(src);
   var refmc:MovieClip = target.createEmptyMovieClip("refmc", 0);
   refmc.attachBitmap(bdata, 0);
   refmc._yscale = -src._yscale;
   refmc._xscale = src._xscale;
   refmc._y = refmc._height;
   var mask = target.createEmptyMovieClip("mask", 1);
   var matrix = {matrixType:"box", x:0, y:0, w:refmc._width, h:refmc._height, r:(90/180)*Math.PI};
   mask.beginGradientFill("linear", [0xffffff, 0xffffff], [alpha, 0], [0, 100], matrix, "pad");
   mask.moveTo(0, 0);
   mask.lineTo(0, refmc._height);
   mask.lineTo(src._width, refmc._height);
   mask.lineTo(src._width, 0);
   mask.lineTo(0, 0);
   mask.endFill();
   refmc.cacheAsBitmap = true;
   mask.cacheAsBitmap = true;
   refmc.setMask(mask);
}
var myListener:Object = new Object();
Stage.addListener(myListener);
function centerIt() {
   optionsmenu._x = Stage.width-10;
   J._x = Stage.width/2;
   J._y = Stage.height/2;
   back._width = Stage.width+20;
   back._height = Stage.height+20;
   slider_bg._x = (Stage.width-slider_bg._width)/2;
   slider_bg._y = Stage.height-10;
   slider._y = slider_bg._y-10;
}
//
myListener.onResize = function() {
   centerIt();
};
centerIt();



Hier der ursprüngliche Originalcode:
Code:
//CHANGEABLE VARIABLES
//image dimensions
imageWidth = 225;
imageHeight = 150;
//span when animation has finished
xxspan = 350;
yyspan = 55;
//Starting span before moving to center
xspan = 5*xxspan;
yspan = 5*yyspan;
//scale when totally at the back (in %)
minimumscale = 25;
//turningspeed
turningspeed = 4;
//use a focal blur
useFocalBlur = true;
focalBlurValue = 2;
//margin from center of carousel where mouse position has no effect on turning
marg = 50;
//SCRIPTS
Stage.scaleMode = "noscale";
Stage.align = "left";
num = 1;
total = 0;
rot = 0;
sliding = false;
J.swapDepths((minimumscale+(100-minimumscale)*(1+(Math.sin(180)))/2));
//import libs
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.display.BitmapData;
zoomed = false;
intThumb._visible = true;
// tween in the middle image
tween = new Tween(J, "_alpha", Strong.easeOut, 0, 100, 400, false);
//tween in the photos
tween = new Tween(this, "xspan", Strong.easeOut, xspan, xxspan, 50, false);
tween = new Tween(this, "yspan", Strong.easeOut, yspan, yyspan, 50, false);
// xml object / ignorewhite
xml = new XML();
xml.ignoreWhite = true;
//load object for parsing
xml.onLoad = function(sucess) {
   if (sucess) {
      storeAll(xml);
   }
};
// load XML
xml.load('photos.xml');
//
// parsing function
function storeAll(xmlDoc_xml) {
   //parse all folders
   for (var n = 0; n<xmlDoc_xml.childNodes.length; n++) {
      this["photo"+n] = new Object();
      //add to folders list
      duplicateMovieClip(intThumb, "thumb"+n, this.getNextHighestDepth());
      thumbRef = this["thumb"+n];
      thumbRef._visible = true;
      thumbRef.num = n;
      thumbRef.link = xmlDoc_xml.childNodes[n].attributes.link;
      thumbRef.urls = xmlDoc_xml.childNodes[n].attributes.urls;
      s = xmlDoc_xml.childNodes[n].attributes.subtitle;
      if (s == undefined) {
         s = "";
      }
      thumbRef.subtitle.text = s;
      loadMovie(thumbRef.urls, thumbRef.loader);
      total += 1;
   }
   //end for folders
   trace("Done, parsed "+n+" photos");
   perinstance = (2*Math.PI)/total;
}
//end function
this.onEnterFrame = function() {
   //rot -= (Stage.width/2-_xmouse)/10000*turningspeed;
   if (_ymouse<slider_bg._y-50) {
      if (_xmouse>Stage.width/2+marg) {
         rot -= (Stage.width/2+marg-_xmouse)/10000*turningspeed;
      }
      if (_xmouse<Stage.width/2-marg) {
         rot -= (Stage.width/2-marg-_xmouse)/10000*turningspeed;
      }
      if (rot<0) {
         rot = Math.PI*2+rot;
      }
      if (rot>Math.PI*2) {
         rot = rot-Math.PI*2;
      }
   }
   if (sliding) {
      rot = (slider._x-slider_bg._x)/slider_bg._width*(Math.PI*2);
   } else {
      slider._x = slider_bg._x+rot/(Math.PI*2)*slider_bg._width;
   }
};
//functions
function getX(number) {
   ax = Stage.width/2+xspan*Math.cos(rot+number*perinstance);
   return ax;
}
function getY(number) {
   ay = Stage.height/2+yspan*Math.sin(rot+number*perinstance);
   return ay;
}
function getScale(number) {
   sc = Math.round((minimumscale+(100-minimumscale)*(1+(Math.sin(rot+number*perinstance)))/2)*100)/100;
   return sc;
}
function blur(dis, number) {
   dis.filters = "";
   if (useFocalBlur) {
      f = focalBlurValue-focalBlurValue*(1+(Math.sin(rot+number*perinstance)))/2;
      var blur = new flash.filters.BlurFilter(f, f, 1);
      var tmpFilters:Array = dis.filters;
      tmpFilters.push(blur);
      dis.filters = tmpFilters;
      dis._alpha = 80+20*(1+(Math.sin(rot+number*perinstance)))/2;
   }
}
function reflect(src, target, alpha) {
   var bdata:BitmapData = new BitmapData(src._width/(src._xscale/100), src._height/(src._yscale/100), true, 0x00ffffff);
   bdata.draw(src);
   var refmc:MovieClip = target.createEmptyMovieClip("refmc", 0);
   refmc.attachBitmap(bdata, 0);
   refmc._yscale = -src._yscale;
   refmc._xscale = src._xscale;
   refmc._y = refmc._height;
   var mask = target.createEmptyMovieClip("mask", 1);
   var matrix = {matrixType:"box", x:0, y:0, w:refmc._width, h:refmc._height, r:(90/180)*Math.PI};
   mask.beginGradientFill("linear", [0xffffff, 0xffffff], [alpha, 0], [0, 100], matrix, "pad");
   mask.moveTo(0, 0);
   mask.lineTo(0, refmc._height);
   mask.lineTo(src._width, refmc._height);
   mask.lineTo(src._width, 0);
   mask.lineTo(0, 0);
   mask.endFill();
   refmc.cacheAsBitmap = true;
   mask.cacheAsBitmap = true;
   refmc.setMask(mask);
}
var myListener:Object = new Object();
Stage.addListener(myListener);
function centerIt() {
   optionsmenu._x = Stage.width-10;
   J._x = Stage.width/2;
   J._y = Stage.height/2;
   back._width = Stage.width+20;
   back._height = Stage.height+20;
   slider_bg._x = (Stage.width-slider_bg._width)/2;
   slider_bg._y = Stage.height-50;
   slider._y = slider_bg._y-10;
}
//
myListener.onResize = function() {
   centerIt();
};
centerIt();


Danke schon mal im Voraus!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
itac

Dabei seit: 15.04.2004
Ort: -
Alter: 48
Geschlecht: -
Verfasst Mo 10.03.2008 16:33
Titel

Antworten mit Zitat Zum Seitenanfang

Du kannst Die eine Variabel mit maximalen turningspeed (z.B. turningspeedmax) definieren und beim rotieren guckts Du ob deine Geschwindigkeit (turningspeed) nicht über deine min/max-Werte geht

Code:
if(turningspeed>turningspeedmax)turningspeed=turningspeedmax;


salü
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
ExMD
Threadersteller

Dabei seit: 27.01.2005
Ort: Saarland
Alter: 45
Geschlecht: Männlich
Verfasst Di 11.03.2008 09:01
Titel

Antworten mit Zitat Zum Seitenanfang

wie müsste ich den code genau ändern/ergänzen?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
ExMD
Threadersteller

Dabei seit: 27.01.2005
Ort: Saarland
Alter: 45
Geschlecht: Männlich
Verfasst Di 11.03.2008 20:27
Titel

Antworten mit Zitat Zum Seitenanfang

hülfe Mädchen!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Di 11.03.2008 21:14
Titel

Antworten mit Zitat Zum Seitenanfang

morgen gerne, heute keinen Bock mehr....
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
ExMD
Threadersteller

Dabei seit: 27.01.2005
Ort: Saarland
Alter: 45
Geschlecht: Männlich
Verfasst Mi 12.03.2008 13:04
Titel

Antworten mit Zitat Zum Seitenanfang

FlamingArt hat geschrieben:
morgen gerne, heute keinen Bock mehr....


*nett zu flamy rüberlächel* Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Mi 12.03.2008 13:16
Titel

Antworten mit Zitat Zum Seitenanfang

Ich muss noch ein paar Sachen kaufen gehen, danach kuck ich mal.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
ExMD
Threadersteller

Dabei seit: 27.01.2005
Ort: Saarland
Alter: 45
Geschlecht: Männlich
Verfasst Mi 12.03.2008 13:17
Titel

Antworten mit Zitat Zum Seitenanfang

*Thumbs up!*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Flash menü
Flash 3D Menü ?
Flash und CSS- Menü
pop-up menü - flash mx
Flash Rollout Menü
Slide Menü - Flash MX
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Multimedia


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.