Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-05-2004, 22:03   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 18
Variable wird nicht an funktion übergeben.

hi!

Ich müchte ein Element aus einem Array an eine Funktion übergeben und dort mit diesem weiter arbeiten. Leider funktioniert das nicht und ich weiß nicht warum.

Ich habe mal die Stelle aus dem Quellcode kopiert:

ActionScript:
  1. this[MCName].onPress = function() {loadBild(myar[i]); }
  2. function loadBild(bildName)
  3. {
  4.    
  5. }

Jetzt übergebe ich anstatt der Variable ein Text und die funktion erkennt den Parameter und arbeitet damit.

ActionScript:
  1. this[MCName].onPress = function() {loadBild("test"); }
  2. function loadBild(bildName)
  3. {
  4.    
  5. }

Weiß einer warum dies so ist ? Das merkwürdige ist, dass die Variable (myar[i]) in eine Textbox geladen werden kann. Jedoch die Funktion nicht mit ihr arbeitet. Obwohl ich die Variable nicht änder.

Stelle aus dem Quellecode:

ActionScript:
  1. textdatei.text = myar[i];
  2. this[MCName].onPress = function() {loadBild(myar[i]); }
  3. function loadBild(bildName)
  4. {
  5.    
  6. }


danke für eure hilfe

Gruß Janon
_____________________________________________
Hier ist der komplette code:




ActionScript:
  1. var myar=new Array();
  2. var mythm = new Array();
  3. var MCName;
  4. var THName;
  5. var count = 1;
  6. var round = 0;
  7. var txt_loader = new LoadVars();
  8. var txt_loader2 = new LoadVars();
  9. txt_loader.onLoad = function(OK)
  10.  
  11. {
  12.    if(OK)
  13.    {
  14.      myar = this.myar.split(";");
  15.         loadMC();
  16.     }
  17. }
  18. txt_loader.load("index.php");
  19.  
  20.  
  21. function loadMC()
  22. {
  23.    
  24.     for (var i = 0; i<myar.length-1; i++)
  25.         {
  26.             this.MCName = "MCButton"+i;
  27.             this.MCButtonOrig.duplicateMovieClip(this.MCName, i);
  28.             this[MCName]._x = 6;
  29.             this[MCName]._y = (this[MCName]._height+5)*i;
  30.             this[MCName].btn.lblText.text = myar[i];
  31.             this[MCName].onPress = function() {loadBild(myar[i]); }
  32.             this[MCName].onRollOver  = function() {this.btn.lblText.textColor ="0xFFF000";}
  33.             this[MCName].onRollOut  = function() {this.btn.lblText.textColor ="0xFFFFFF";}
  34.             stop();
  35.            
  36.         }
  37.    
  38. }
  39.  
  40.  
  41. function loadThmMC()
  42. {
  43.    
  44.     for (var i = 0; i<mythm.length-1; i++)
  45.         {
  46.            
  47.             this.THName = "ThButton"+i;
  48.             this.THBName = "THBNAME"+i;
  49.             this.BildOrig.duplicateMovieClip(this.THName, (mythm.length+i)-3);
  50.             this.BildButOrig.duplicateMovieClip(this.THBName, i);
  51.            
  52.             this[THName]._y = -80 + (70*count);
  53.             this[THBName]._y = -80 + (70*count);
  54.             if(round eq 1)
  55.             {
  56.                 this[THName]._x = 217;
  57.                 this[THBName]._x = 217;
  58.                 round = 0;
  59.                 count = count + 1;
  60.             }else
  61.             {
  62.                 this[THName]._x = 310;
  63.                 this[THBName]._x = 310;
  64.                 round =round +1 ;
  65.             }
  66.            
  67.            
  68.            
  69.             this[THName].loadMovie (mythm[i]);
  70.            
  71.             mythm[i]=mythm[i].split("tp").join("im");
  72.             mythm[i]=mythm[i].split("THM").join("AUT");
  73.            
  74.        
  75.            
  76.             this[THBName].onPress = function() {
  77.                
  78.             _root.BildOrigBig.loadMovie(mythm[i]);
  79.             _root.BildOrigBig._xscale = 100;
  80.             _root.BildOrigBig._yscale = 100;
  81.             }
  82.             loadMC();
  83.             stop();
  84.            
  85.         }
  86.    
  87. }
  88.  
  89.  
  90. function loadBild(bildName)
  91. {
  92.    
  93.  
  94. txt_loader2.onLoad = function(OK)
  95. {
  96.    if(OK)
  97.    {
  98.       
  99.        count =1;
  100.        round=0;
  101.      mythm = this.mythm.split(";");
  102.         loadThmMC();
  103.        
  104.     }
  105. }
  106. txt_loader2.load("index.php?aktion=load&galleryNr=image/"+bildName);
  107.  
  108.  
  109. }
Janon ist offline   Mit Zitat antworten
Alt 05-05-2004, 22:11   #2 (permalink)
Gib her, ich mach das!
 
Registriert seit: Jul 2003
Ort: Karlsruhe/Kassel
Beiträge: 270
Bau deine Funktion loadMC so um:
ActionScript:
  1. function loadMC()
  2. {
  3.        
  4.         for (var i = 0; i<myar.length-1; i++)
  5.         {
  6.                 this.MCName = "MCButton"+i;
  7.                 this.MCButtonOrig.duplicateMovieClip(this.MCName, i);
  8.                 this[MCName].i = i;
  9.                 this[MCName].myar = myar;
  10.                 this[MCName]._x = 6;
  11.                 this[MCName]._y = (this[MCName]._height+5)*i;
  12.                 this[MCName].btn.lblText.text = myar[i];
  13.                 this[MCName].onPress = function() {loadBild(this.myar[this.i]); }
  14.                 this[MCName].onRollOver  = function() {this.btn.lblText.textColor ="0xFFF000";}
  15.                 this[MCName].onRollOut  = function() {this.btn.lblText.textColor ="0xFFFFFF";}
  16.                 stop();
  17.                
  18.         }
  19.        
  20. }
Sollte gehen
Dr.Atom ist offline   Mit Zitat antworten
Alt 05-05-2004, 22:15   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Ort: Stuttgart
Beiträge: 155
scopee doo

Hat was mit dem Scope der Variable zu tun.

Edit: @Dr.Atom: Genau. Oder gleich den Bildnamen mit an den MC übergeben.
nanodesigner ist offline   Mit Zitat antworten
Alt 05-05-2004, 22:29   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 18
Vielen dank !!! Das hat funktioniert. Ich muss mir das echt nochmal anschaun mit dem this!



danke
Gruß Janon

Geändert von Janon (05-05-2004 um 23:58 Uhr)
Janon ist offline   Mit Zitat antworten
Alt 05-05-2004, 22:33   #5 (permalink)
Gib her, ich mach das!
 
Registriert seit: Jul 2003
Ort: Karlsruhe/Kassel
Beiträge: 270
heute nicht mehr
Dr.Atom ist offline   Mit Zitat antworten
Alt 07-05-2004, 08:44   #6 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 18
hi.

nun habe ich noch ein letztes Problem bei dem duplizieren der mc's. Derzeit werden diese auf der gleichen ebene dubliziert. Ich möchte aber, dass alle in einem movieclip dubliziert werden.



Derzeit wird so dupliziert:
ActionScript:
  1. this.BildOrig.duplicateMovieClip(this.THName, nextDepth);
Angenommen der movieclip heißt mcThumb, dann würde ich das so machen:

ActionScript:
  1. this.BildOrig.duplicateMovieClip(mcThumb .THName, nextDepth);
aber es funktioniert nicht.


Kann mir da jemand helfen ?

danke.

Gruß Janon



Derzeit sieht der komplette dupliziercode so aus:


ActionScript:
  1. function loadThmMC()
  2. {
  3.  
  4.     for (var z = nextDepth;z<=nowNextDepth;z++)
  5.     {
  6.         instanceAtHighestDepth = _root.getInstanceAtDepth(z);
  7.         removeMovieClip(instanceAtHighestDepth);
  8.     }
  9.    
  10.    
  11.     for (var i = 0; i<mythm.length-1; i++)
  12.         {
  13.            
  14.            
  15.             this.THName = "ThButton"+i;
  16.             this.THBName = "THBNAME"+i;
  17.            
  18.            
  19.             this.BildOrig.duplicateMovieClip(this.THName, nextDepth);
  20.             nextDepth++;
  21.             //nextDepth = _root.getNextHighestDepth();
  22.             this.BildButOrig.duplicateMovieClip(this.THBName, nextDepth );
  23.             //nextDepth = _root.getNextHighestDepth();
  24.             nextDepth++;
  25.            
  26.             this[THBName].i = i;
  27.             this[THBName].mythm = mythm;
  28.             this[THName]._y = -80 + (70*count);
  29.             this[THBName]._y = -80 + (70*count);
  30.             if(round eq 1)
  31.             {
  32.                 this[THName]._x = 217;
  33.                 this[THBName]._x = 217;
  34.                 round = 0;
  35.                 count = count + 1;
  36.             }else
  37.             {
  38.                 this[THName]._x = 310;
  39.                 this[THBName]._x = 310;
  40.                 round =round +1 ;
  41.             }
  42.            
  43.            
  44.            
  45.             this[THName].loadMovie (mythm[i]);
  46.            
  47.             mythm[i]=mythm[i].split("tp").join("im");
  48.             mythm[i]=mythm[i].split("THM").join("AUT");
  49.            
  50.             log2.text = mythm[i];
  51.             //this[THBName].onPress = function() {_root.BildOrigBig.loadMovie(mythm[i]); }
  52.        
  53.            
  54.             this[THBName].onPress = function()
  55.             {
  56.                 _root.BildOrigBig.loadMovie(this.mythm[this.i]);
  57.                 _root.BildOrigBig._xscale = 50;
  58.                 _root.BildOrigBig._yscale = 50;
  59.             }
  60.             //loadMC();
  61.            
  62.             
  63.            
  64.         }
  65.         nowNextDepth = nextDepth;
  66.         nextDepth = backNextDepth;
  67.         stop();
  68.    
  69. }
Janon 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 09:28 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele