Hi,
Ist vielleicht etwas vermessen, aber ich suche seit Stunden einen Fehler und werd bald wahnsinnig.
Und zwar berechnet ein Script die Tiefe bei einer SlideShow immer dann falsch, wenn das letzte Bild von vorne nach hinten verschoben wird.
Hier mal zum besseren Verständnis
http://www.plasmajet.de/test/slideShow.html
Vielleicht findet ja irgendwer auf den ersten Blick den Fehler.
Ich komm einfach nicht weiter
PHP-Code:
import com.mosesSupposes.fuse.*;
ZigoEngine.register(Fuse,PennerEasing,FuseFMP);
var slideShow:MovieClip = this;//Um "_root" in Functionen zu vermeiden
var numOfItems:Number = 3;//Anzahl der Bilder
var centerX:Number = 662;//Startposition x
var xAbstand:Number = 40;//Abstand x der Bilder
var centerY:Number = 201;//Startposition y
var yAbstand:Number = 0.5;//Abstand y der Bilder
var sAbstand:Number = 20;//Abstand Skalierung der Bilder
var fl:Number = 250;// "Brennweite"
var s:Array = new Array();//Array für Positionen (Inhalt, x, y, s (=Skalierung))
function initArray() {//Füllt Array mit den möglichen Positionen
for (var i:Number = 0; i<=numOfItems+1; i++) {
s[i] = new Object();
var scale:Number = fl/(fl+(sAbstand*i));
s[i].s = scale*100;
s[i].x = centerX+(xAbstand*i)*scale;
s[i].y = centerY+(yAbstand*i)*scale;
}
slideShow.initImages();
}
initArray();
function initImages() {//Legt die Bilder an und positioniert sie auf nach Array s[i];
for (var i:Number = 1; i<=numOfItems; i++) {
var t:MovieClip = slideShow.attachMovie("slideImage", "slideImage"+i, slideShow.getNextHighestDepth());
t._xscale = t._yscale=s[i].s;
t._x = s[i].x;
t._y = s[i].y;
t.swapDepths(s.length-i);
t.pos = i;// Teilt dem Bild seine Position im Array mit - wird später beim Tween wieder abgerufen;
t.textfeld.text = i;
t.textfeld2.text = t.pos;
t.textfeld3.text = t.getDepth();
t._alpha = 70;
}
}
function moveForward() {
for (var i:Number = 1; i<=numOfItems; i++) {
var t:MovieClip = slideShow["slideImage"+i];//Temporäre Variable für benutzen Movieclip
if (t.pos == 1) {// Für forderste Position gilt Sonderreglung
var firstOne:MovieClip = t;
trace(firstOne.getDepth());
firstOne.swapDepths(firstOne.getDepth()+1);
trace(firstOne.getDepth());
} else {// Alle Images außer forderste Position auf nächstniedrigere Position tweenen
var newX:Number = s[t.pos-1].x;
var newY:Number = s[t.pos-1].y;
var newS:Number = s[t.pos-1].s;
t.pos -= 1;
t.swapDepths(s.length-t.pos);
var f:Fuse = new Fuse();
f.push({target:t, x:newX, y:newY, scale:newS, seconds:0.6, ease:"easeInOutQuad", scope:slideShow});
f.start();
}
}
/***** Sonderbehandlung für vorderste Position: ********/
var tempDepth:Number = firstOne.getDepth();
firstOne.pos = numOfItems+1;
firstOne.swapDepths(s.length-firstOne.pos);
firstOne.duplicateMovieClip("newFirstOne",tempDepth);//Dubliziert vorderstes Image, um es gleichzeitig auszufaden und hinten wieder anzufügen.
newFirstOne.pos = 1;
firstOne._alpha = 0;
firstOne._x = s[numOfItems+1].x;
firstOne._y = s[numOfItems+1].y;
firstOne._xscale = firstOne._yscale=s[numOfItems+1].s;
var newX:Number = s[firstOne.pos-1].x;
var newY:Number = s[firstOne.pos-1].y;
var newS:Number = s[firstOne.pos-1].s;
//trace("firstOne newX = "+newX+", newY = "+newY+", newS = "+newS);
var f1:Fuse = new Fuse();
f1.push({target:firstOne, x:newX, y:newY, scale:newS, seconds:0.6, alpha:70, ease:"easeInOutQuad", scope:slideShow});
f1.start();
var newX:Number = s[newFirstOne.pos-1].x;
var newY:Number = s[newFirstOne.pos-1].y;
var newS:Number = s[newFirstOne.pos-1].s;
//trace("newFirstOne newX = "+newX+", newY = "+newY+", newS = "+newS);
var f2:Fuse = new Fuse();
f2.push({target:newFirstOne, x:newX, y:newY, scale:newS, seconds:0.6, alpha:0, ease:"easeInOutQuad", func:afterFuse, scope:slideShow});
f2.start();
function afterFuse() {
removeMovieClip(newFirstOne);//Dubliziertes Movieclip wird nach abgeschlossenem Tween wieder gelöscht.
firstOne.pos -= 1;
firstOne.swapDepths(s.length-firstOne.pos);
for (var i:Number = 1; i<=numOfItems; i++) {//Nur Kontrolle
var t:MovieClip = slideShow["slideImage"+i];
t.textfeld2.text = t.pos;
t.textfeld3.text = t.getDepth();
}
}
}
button.onRelease = moveForward;