Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-11-2007, 10:50   #1 (permalink)
...hat Spass.
 
Benutzerbild von rulerboy
 
Registriert seit: Mar 2003
Ort: am Wasser
Beiträge: 450
Ich finde mein "i" nicht mehr...

Hallo Leute,

ich habe ein Problem, dass ich eigentlich schon sehr gut durchschaue, aber ich finde einfach keine Lösung:

Das Problem ist, dass in einer for-Schleife alle möglichen Funktionen den attachten Movies zugewiesen werden. Das funktioniert ja bekanntlich mit this["movieclip" + i].doThisOrThat.

Klappt auch alles, nur wenn ich dieses "i" wiederum in einer neuerlichen function, z.B. bei this["movieclip" + i].onRelease = function () {loadMovie(i + ".swf"} verwenden möchte geht das nicht. Irgendwie ja auch logisch.

Nun muss ich aber auf das "i" zurückgreifen, da ich einen dynamischen Pfad aus der XML lesen muss.

Wie bekomme ich das hin???


Hier das gesamte AS:

PHP-Code:
stop();

bigPicture._visible false
bigPicture
.onRelease = function (){this._visible false}

this.breite 0;
this.frame.swapDepths(150);
this.bigPicture.swapDepths(140);
this.glossy.swapDepths(160);


function 
galerie() {
    for (var 
0i<namen.lengthi++) {
        
this.attachMovie("p","picture"+i,50+i);
        
this["picture"+i]._y 72;
        
this["picture"+i]._x this.breite;
        
trace(this["picture"+i]._x+" / "+this["picture"+i]._y);
        
this.breite += this["picture"+i]._width;
        
this["picture"+i].gobig._visible false;
        
this["picture"+i].cover._alpha 50;
        
this["picture"+i].name namen[i];
        
this["picture"+i].aus "aus " kommtaus[i];
        
this["picture"+i].picture.loadMovie(bildkleinpfad[i]);
        
this["picture"+i].onRollOver = function() {
            
this.cover._alpha 0;
            
this.gobig._visible true;
        };
        
this["picture"+i].onRollOut = function() {
            
this.cover._alpha 50;
            
this.gobig._visible false;
        };
        
this["picture"+i].onRelease = function() {
            
_root.bigPicture.loadMovie(bildgrosspfad[i]);
            
trace(bildgrosspfad[i]);
            
this._parent.bigPicture._visible true
        
};
    }
}

siegerliste = new XML();
siegerliste.ignoreWhite true;

siegerliste.onLoad = function(success) {
    if (
success) {
        
_global.namen = [];
        
_global.kommtaus = [];
        
_global.bildkleinpfad = [];
        
_global.bildgrosspfad = [];
        for (var 
0i<siegerliste.firstChild.childNodes.lengthi++) {
            
_global.namen[i] = siegerliste.firstChild.childNodes[i].attributes.name;
            
_global.kommtaus[i] = siegerliste.firstChild.childNodes[i].attributes.aus;
            
_global.bildkleinpfad[i] = siegerliste.firstChild.childNodes[i].attributes.klein;
            
_global.bildgrosspfad[i] = siegerliste.firstChild.childNodes[i].attributes.gross;
            
trace(namen[i]+" aus "+kommtaus[i]+" PFADE: "+bildkleinpfad[i]+"+++"+bildgrosspfad[i]);
        }
        
        
galerie();
        
    } else {
        
trace("Fehler beim Laden der XML datei");
    }
};

siegerliste.load("xml.xml"); 
Mein Problem betrifft die onRelease-Funktion ab Zeile 32. Das trace(grossbildpfad[i]) gibt natürlich undefined aus. Wenn ich es hart reinschreibe, also loadMovie(grossbildpfad[5]), dann geht das natürlich. Aber ich will ja nicht immer Bild 5 laden...


Kann mir jemand helfen? Da wäre ich sehr dankbar für.


LG,

Leo
__________________
Es gibt nichts was so stinkt wie deine Katze, die du gerade mit dem Staubsauger erschreckt hast!

Geändert von rulerboy (26-11-2007 um 10:52 Uhr)
rulerboy ist offline   Mit Zitat antworten
Alt 26-11-2007, 10:55   #2 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
das onRollOver und Relase waren nicht mehr in der for schleife

PHP-Code:
stop();
bigPicture._visible false;
bigPicture.onRelease = function() {
    
this._visible false;
};
this.breite 0;
this.frame.swapDepths(150);
this.bigPicture.swapDepths(140);
this.glossy.swapDepths(160);
function 
galerie() {
    for (var 
0i<namen.lengthi++) {
        
this.attachMovie("p""picture"+i50+i);
        
this["picture"+i]._y 72;
        
this["picture"+i]._x this.breite;
        
trace(this["picture"+i]._x+" / "+this["picture"+i]._y);
        
this.breite += this["picture"+i]._width;
        
this["picture"+i].gobig._visible false;
        
this["picture"+i].cover._alpha 50;
        
this["picture"+i].name namen[i];
        
this["picture"+i].aus "aus "+kommtaus[i];
        
this["picture"+i].picture.loadMovie(bildkleinpfad[i]);
        
this["picture"+i].onRollOver = function() {
            
this.cover._alpha 0;
            
this.gobig._visible true;
            
this["picture"+i].onRollOut = function() {
                
this.cover._alpha 50;
                
this.gobig._visible false;
            };
            
this["picture"+i].onRelease = function() {
                
_root.bigPicture.loadMovie(bildgrosspfad[i]);
                
trace(bildgrosspfad[i]);
                
this._parent.bigPicture._visible true;
            };
        };
    }
}
siegerliste = new XML();
siegerliste.ignoreWhite true;
siegerliste.onLoad = function(success) {
    if (
success) {
        
_global.namen = [];
        
_global.kommtaus = [];
        
_global.bildkleinpfad = [];
        
_global.bildgrosspfad = [];
        for (var 
0i<siegerliste.firstChild.childNodes.lengthi++) {
            
_global.namen[i] = siegerliste.firstChild.childNodes[i].attributes.name;
            
_global.kommtaus[i] = siegerliste.firstChild.childNodes[i].attributes.aus;
            
_global.bildkleinpfad[i] = siegerliste.firstChild.childNodes[i].attributes.klein;
            
_global.bildgrosspfad[i] = siegerliste.firstChild.childNodes[i].attributes.gross;
            
trace(namen[i]+" aus "+kommtaus[i]+" PFADE: "+bildkleinpfad[i]+"+++"+bildgrosspfad[i]);
        }
        
galerie();
    } else {
        
trace("Fehler beim Laden der XML datei");
    }
};
siegerliste.load("xml.xml"); 
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 26-11-2007, 11:11   #3 (permalink)
...hat Spass.
 
Benutzerbild von rulerboy
 
Registriert seit: Mar 2003
Ort: am Wasser
Beiträge: 450
Äääh doch...

Danke für deine Hilfe aber das war ein Schnellschuss, und leider funktioniert er so gar nicht? Was zum Henker hast du gemacht? Kein Compiler-Error aber ein total verbuggtes SWF
__________________
Es gibt nichts was so stinkt wie deine Katze, die du gerade mit dem Staubsauger erschreckt hast!
rulerboy ist offline   Mit Zitat antworten
Alt 26-11-2007, 11:26   #4 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Zitat:
Zitat von bloba Beitrag anzeigen
das onRollOver und Relase waren nicht mehr in der for schleife
Bin ich blind? Klar sind sie in der for-Schleife
und Du hast jetzt den RollOut und Release in
den RollOver-Handler geschachtelt.

@rulerboy:
Du mußt eine ID übergeben, die sich i merkt.
PHP-Code:
...
this["picture"+i].ID i;
this["picture"+i].onRelease = function() {
   
_root.bigPicture.loadMovie(bildgrosspfad[this.ID]);
   
trace(bildgrosspfad[this.ID]);
   
this._parent.bigPicture._visible true;
};
... 
gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 26-11-2007, 11:32   #5 (permalink)
...hat Spass.
 
Benutzerbild von rulerboy
 
Registriert seit: Mar 2003
Ort: am Wasser
Beiträge: 450
Ach gott wie einfach Sorry für die Belästigung mit so geringfügigen Problemen.

Und Danke Gaspode, du mein Lieblings-Hund Muss mal wieder Pratchett lesen, irgendwas neues was man sehr empfehlen kann?
__________________
Es gibt nichts was so stinkt wie deine Katze, die du gerade mit dem Staubsauger erschreckt hast!
rulerboy ist offline   Mit Zitat antworten
Alt 26-11-2007, 11:46   #6 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Zitat:
Zitat von rulerboy Beitrag anzeigen
Muss mal wieder Pratchett lesen, irgendwas neues was man sehr empfehlen kann?
Ich habe den ganz neuen noch nicht gelesen.
Der letzte, den ich sehr gut fand, war »Klonk«.

gruß, gaspode
gaspode 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 18:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele