Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-05-2005, 13:20   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2005
Beiträge: 44
Hilfe, Variable verhält sich seltsam

Hilfe,

ich versucher gerade einer Reihe dynamisch erzeugter MC jeweils einen bestimmten Hyperlink zuzuweisen. Funktioniert auch alles ganz gut bis auf die Tatsache, dass alle MCs den gleichen Link zugewiesen bekommen. Ich verstehe die Wirkung der Variable i hier nicht so ganz.

So wie ich mir das vorstelle müßte doch in dem Script hier unten die Variable i immer um einen nach oben gezählt werden und somit Hyperlinks erzeugen die dann "popupName-Nr-1.html", "popupName-Nr-2.html"... usw. usf. erzeugen.

Was mich jetzt überrascht ist, dass jeder MC die URL "popupName-Nr-7.html".
(picAnzahl ist in meinem Fall =6.)

Wo liegt mein Denkfehler? Wie bekomme ich die Variable so hin, dass jeder MC gemäß seine Nummerierung durch einen entsprechenden Link mit der gleichen Nummerierung bekommt?



Zitat:
for (i:Number = 1; i<= picAnzahl; i++) {

this["pic"+i].onRelease = function() {
getURL("popupName-Nr-" + i + ".html", "_blank");
}

}
Questor ist offline   Mit Zitat antworten
Alt 09-05-2005, 13:27   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Altbekanntes Problem. i wird ja bis zum Ende hochgezählt und hat dann z.B. den Wert 6. Musst du in einer Variable (z.B. id) dem MC mitgeben:
ActionScript:
  1. for (i=1; i<=picAnzahl; i++) {
  2.     this["pic"+i].id = i;
  3.     this["pic"+i].onRelease = function() {
  4.         getURL("popupName-Nr-"+this.id+".html", "_blank");
  5.     };
  6. }
...und der onRelease lässt sich erst auf den MC legen, wenn der Inhalt komplett geladen ist.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 09-05-2005, 13:41   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2005
Beiträge: 44
Wow, eine schnelle Antwort. Besten Dank.

Damit ich es auch verstehen. Wo genau wir "i" hochgezählt bzw. welche Rolle spielt die Funktion. So nach meinem oberflächlichen Verständnis dürfte "i" doch erst dann hochgezählt werden, nachdem die Funktion aufgerufen worden ist und die Schleife in die nächste Runde geht.

Wenn z.B. bei i=1 dann this["pic"+1].onRelease aufgerufen wird, warum ist dann innerhalb der Funktion i schon bis zum Ende durchgezählt?

Da fehlt mir irgendwie noch der richtige Tip warum es so ist.
Questor ist offline   Mit Zitat antworten
Alt 09-05-2005, 13:59   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Die Schleife rattert durch und dann ist "i" halt 7.
Du musst dem Button ja sagen, dass er nicht die jetzige Variable "i" nehmen soll, sondern "i" zum Zeitpunkt der Button-Belegung...
Versteht man das
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 16:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele