Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-10-2003, 17:24   #1 (permalink)
filmtip: snatch
 
Registriert seit: Oct 2001
Beiträge: 1.562
referenz im event handler

hi forum

kann mir jemand erklären, wieso trace hier
hier ein 'undefined' ausgibt ?


ActionScript:
  1. function setUpMain(anz) {
  2.     for (var i = 0; i<=anz-1; i++) {
  3.         var mc = this.createEmptyMovieClip('main'+i+'_mc', 50+i);
  4.         mc.createTextField('mm_'+i+'_txt', i+10, 0, i*100, 150, 40);
  5.         mc['mm_'+i+'_txt'].text = (i+1);
  6.         mc.onRollOver = function() {
  7.             trace(this['mm_'+i+'_txt'].text);
  8.         };
  9.     }
  10. }
  11. setupMain(3);

thx & have a nice weekend

Geändert von Skyla (04-10-2003 um 18:35 Uhr)
Skyla ist offline   Mit Zitat antworten
Alt 04-10-2003, 18:25   #2 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
Weil das i nur defined ist solange die Schleife läuft
MacEvil ist offline   Mit Zitat antworten
Alt 04-10-2003, 18:31   #3 (permalink)
filmtip: snatch
 
Registriert seit: Oct 2001
Beiträge: 1.562
ja, ist mir schon klar. die schlaufe läuft ja auch.

i wird im event handler dann aber jedesmal den
wert 3 zugewisen, was ich ebenfalls nicht versteh.
Skyla ist offline   Mit Zitat antworten
Alt 04-10-2003, 18:39   #4 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
du musst i mit in den jeweiligen mc packen:
ActionScript:
  1. mc.i = i;
  2. mc.onRollOver = function() {
  3.             trace(this['mm_'+this.i+'_txt'].text);
  4.         };
thorben.schmitt ist offline   Mit Zitat antworten
Alt 04-10-2003, 23:37   #5 (permalink)
filmtip: snatch
 
Registriert seit: Oct 2001
Beiträge: 1.562
vielen dank Thorben, so geht's. nice one.

aber: verstehen tu ich's immer noch nicht, wieso
er i im event handler nicht mitnimmt.

deine lösung ist aber 1a. dank dir.
Skyla ist offline   Mit Zitat antworten
Alt 04-10-2003, 23:51   #6 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
ActionScript:
  1. trace(this.i);

wird dir nur einen wert (defined) ausgeben, wenn du ihn auch zugewiesen hast. ohne direkte zuweisung, woher soll dein
objekt wissen, daß es ein "i" besitzt ?
warrantmaster ist offline   Mit Zitat antworten
Alt 04-10-2003, 23:52   #7 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
weil du 3 mc`s hast und jedes eine spezifische zuweisung braucht
die identifikation jedes mc`s ist sein "i" aus der schleife
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 05-10-2003, 00:03   #8 (permalink)
filmtip: snatch
 
Registriert seit: Oct 2001
Beiträge: 1.562
hi warrant

da liegst du nicht richtig, schau mal:

ActionScript:
  1. function foo(){
  2.     var i =10
  3.     var mc=_root.createEmptyMovieClip('mc',1);
  4.     mc.onMouseDown=function(){
  5.         trace(i);
  6.     }
  7. }
  8.  
  9. foo()
  10. //output bei mousedown : 10
  11.  

obwohl im body des event-handlers aufgefunden,
findet er die lokale variable.

aber, s'gibt hier schon was, dass ich nich versteh...
Skyla ist offline   Mit Zitat antworten
Alt 05-10-2003, 00:06   #9 (permalink)
filmtip: snatch
 
Registriert seit: Oct 2001
Beiträge: 1.562
hi majo

es kriegt aber eben nicht jeder mc sein i aus aus
SEINER schleife, sondern jeder mc kriegt nur das
i aus der DRITTEN schleife. das ist das, was ich nicht
versteh.

thx für die anteilnahme. vielleicht bich ich auch nur
was übermüdet
Skyla ist offline   Mit Zitat antworten
Alt 05-10-2003, 00:09   #10 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
nope

ActionScript:
  1. function setUpMain(anz) {
  2.         for (var i = 0; i<=anz-1; i++) {
  3.                 var mc = this.createEmptyMovieClip('main'+i+'_mc', 50+i);
  4.                 mc.createTextField('mm_'+i+'_txt', i+10, 0, i*100, 150, 40);
  5.                 mc['mm_'+i+'_txt'].text = (i+1);
  6. mc.id = i;
  7.                 mc.onRollOver = function() {
  8. trace(this.id);
  9.                         trace(this['mm_'+this.id+'_txt'].text);
  10.                 };
  11.         }
  12. }
  13. setupMain(3);
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 05-10-2003, 00:10   #11 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
@skyla

yep, aber das ist doch nicht "sein" i !


check: trace(this.i);



die var findet auch die mouse... oder der kneiper...
warrantmaster ist offline   Mit Zitat antworten
Alt 05-10-2003, 00:17   #12 (permalink)
filmtip: snatch
 
Registriert seit: Oct 2001
Beiträge: 1.562
brauche schlaf. relaxed und nüchtern werd ichs
auch versthen. auf jeden fall: thanks a lot one more time

Geändert von Skyla (05-10-2003 um 00:20 Uhr)
Skyla ist offline   Mit Zitat antworten
Alt 05-10-2003, 00:22   #13 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
nun, die for schleife rasselt durch, was bleibt ist das letzte "i".
warrantmaster 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 06:08 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele