Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-08-2007, 13:45   #1 (permalink)
ChronoGuard
 
Benutzerbild von SpecOps-12
 
Registriert seit: Mar 2002
Ort: Saarbrücken
Beiträge: 2.649
Fehler in Tiefe

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 0i<=numOfItems+1i++) {
        
s[i] = new Object();
        var 
scale:Number fl/(fl+(sAbstand*i));
        
s[i].scale*100;
        
s[i].centerX+(xAbstand*i)*scale;
        
s[i].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 1i<=numOfItemsi++) {
        var 
t:MovieClip slideShow.attachMovie("slideImage""slideImage"+islideShow.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 1i<=numOfItemsi++) {
        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:tx:newXy:newYscale:newSseconds:0.6ease:"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:firstOnex:newXy:newYscale:newSseconds:0.6alpha:70ease:"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:newFirstOnex:newXy:newYscale:newSseconds:0.6alpha:0ease:"easeInOutQuad"func:afterFusescope: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 1i<=numOfItemsi++) {//Nur Kontrolle
            
var t:MovieClip slideShow["slideImage"+i];
            
t.textfeld2.text t.pos;
            
t.textfeld3.text t.getDepth();
        }

    }




}

button.onRelease moveForward
Angehängte Dateien
Dateityp: zip slideShow.fla.zip (6,3 KB, 2x aufgerufen)
__________________
we will stop enhancing the truth in 3, 2, ...
SpecOps-12 ist offline   Mit Zitat antworten
Alt 31-08-2007, 13:54   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.136
Hm, wenn ich dein Script richtig verstanden hab, würde ich es so machen: Die MovieClips in ein Array. Wenn ein Bild nach nach hinten oder vorne soll, swapst du es nach oben und bei jedem swap vertertauscht du die Tiefen der MovieClips, die gerade vertauscht wurden.
Omega Psi ist offline   Mit Zitat antworten
Alt 31-08-2007, 15:35   #3 (permalink)
ChronoGuard
 
Benutzerbild von SpecOps-12
 
Registriert seit: Mar 2002
Ort: Saarbrücken
Beiträge: 2.649
Danke für den Hinweis!
Habs jetzt mittels einem Array gelöst und es funktioniert
__________________
we will stop enhancing the truth in 3, 2, ...
SpecOps-12 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 11:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele