Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-05-2005, 10:29   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 9
warum funktioniert das nicht?

Hallo Zusammen!

Der unten angehängte Code soll einen mc "numofimages" mal duplizieren und dann den Bildern in den MCs eine onRelease-Funktion anhängen:

ActionScript:
  1. for(i=0; i < numofimages; i++) {
  2.  
  3.     duplicateMovieClip(holder.thumbnail_mc, "thumbnail" + i, i);
  4.     holder["thumbnail"+i].image._x = i * 92 + 37; //37 entspricht dem Abstand vom Rand bis zur Maske
  5.     holder["thumbnail"+i].image._y = 0;
  6.     holder["thumbnail"+i].image.imgnr = i
  7.  
  8.     target = holder["thumbnail"+i].image;
  9.     trace(holder["thumbnail"+i]);
  10.    
  11.     target.onRelease = function () {
  12.             _global.image = "/media/press/big/" + images_array[i] + ".jpg";
  13.             big.gotoAndPlay(2);
  14.             actualimg.text = int(i) + 1;
  15.                        
  16.             details.onRelease = function () {
  17.                 getURL("javascript:window.open('/components/press/more.php?img=" + images_array[i] + "','','width=620,height=620,left=20,top=20,scrollbars=yes'); void(0);");
  18.             }
  19.         }
  20.        
  21.         target._alpha = 80;
  22.        
  23.         target.onRollOver = function () {
  24.             target._alpha = 100;
  25.         }
  26.        
  27.         target.onRollOut = function () {
  28.             target._alpha = 80;
  29.         }   
  30.     loadMovie("/media/press/small/" + images_array[i] + ".jpg",target);
  31. }

Ist da ein Überlegungsfehler drin, dass ein Klick auf das geladene Bild keine Aktion auslöst?

danke
mcmueh

Geändert von mcmueh (03-05-2005 um 10:31 Uhr)
mcmueh ist offline   Mit Zitat antworten
Alt 03-05-2005, 11:36   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
target.onRelease = function
Das ist ein beliebter Fehler... Der einzelne Schleifenindex ist nach Ablauf der Schleife nicht mehr bekannt. target = holder["thumbnail"+i].image; könnte dann höchstens noch auf den letzten Wert von "i" zeigen.

Besser ist es, einen Festwert dem Objektpfad zuzufügen, bspw.:
PHP-Code:
holder["thumbnail"+i].image.imgnr i

holder
["thumbnail"+i].image.onRelease = function(){
   
_global.image "/media/press/big/" images_array[this.imgnr] + ".jpg";
   
//etc 
[/PHP]
  Mit Zitat antworten
Alt 03-05-2005, 11:53   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 9
Hallo agedoubleju

Danke schon mal für deine Hilfe. Leider funktioniert das ganze noch immer nicht. Der Code sieht jetzt so aus:

ActionScript:
  1. for(i=0; i < numofimages; i++) {
  2.  
  3.     duplicateMovieClip(holder.thumbnail_mc, "thumbnail" + i, i);
  4.     holder["thumbnail"+i].image._x = i * 92 + 37; //37 entspricht dem Abstand vom Rand bis zur Maske
  5.     holder["thumbnail"+i].image._y = 0;
  6.     holder["thumbnail"+i].image.imgnr = i
  7.  
  8.     target = holder["thumbnail"+i].image;
  9.     trace(holder["thumbnail"+i]);
  10.    
  11.     holder["thumbnail"+i].image.onRelease = function () {
  12.             _global.image = "/media/press/big/" + images_array[this.imgnr] + ".jpg";
  13.             big.gotoAndPlay(2);
  14.             actualimg.text = int(this.imgnr) + 1;
  15.                        
  16.             details.onRelease = function () {
  17.                 getURL("javascript:window.open('/components/press/more.php?img=" + images_array[this.imgnr] + "','','width=620,height=620,left=20,top=20,scrollbars=yes'); void(0);");
  18.             }
  19.         }
  20.        
  21.         holder["thumbnail"+i].image._alpha = 80;
  22.        
  23.         holder["thumbnail"+i].image.onRollOver = function () {
  24.             target._alpha = 100;
  25.         }
  26.        
  27.         holder["thumbnail"+i].image.onRollOut = function () {
  28.             target._alpha = 80;
  29.         }   
  30.     loadMovie("/media/press/small/" + images_array[i] + ".jpg",target);
  31. }

Im Anhang habe ich mal die ganze Datei angehängt. Vielleicht hilft dir das...

danke
mcmueh
Angehängte Dateien
Dateityp: zip file.fla.zip (10,8 KB, 1x aufgerufen)
mcmueh ist offline   Mit Zitat antworten
Alt 03-05-2005, 13:45   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Setz dir zuerst mal ein paar trace-Befehle in der Schleife und lass dir damit die Variableninhalte im Testmodus ausgeben, z.B.
PHP-Code:
_global.image "/media/press/big/" images_array[this.imgnr] + ".jpg";
trace("_global.image="+_global.image); 
Vielleicht findet sich der Bug dann schon...
  Mit Zitat antworten
Alt 03-05-2005, 13:57   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi!

Da dürfte doch aber gar nix funktionieren? Du löschst durch den loadMovie-Befehl alle Events, die du auf das Bild (den MC) gelegt hast. Hab da mal was geändert - aber nicht getestet. Aber "Preloader" oder "onRelease dynamisch geladene Bilder" sind bestimmt gute Suchbegriffe.
PHP-Code:
for (i=0i<numofimagesi++) {
    
duplicateMovieClip(holder.thumbnail_mc"thumbnail"+ii);
    
holder["thumbnail"+i].image._x i*92+37;
    
holder["thumbnail"+i].image._y 0;
    
holder["thumbnail"+i].image.imgnr i;
    
//
    
holder["thumbnail"+i].image.createEmptyMovieClip("bild",1);
    
target holder["thumbnail"+i].image.bild;
    
//
    
trace(holder["thumbnail"+i]);
    
holder["thumbnail"+i].image.onRelease = function() {
        
_global.image "/media/press/big/"+images_array[this.imgnr]+".jpg";
        
big.gotoAndPlay(2);
        
actualimg.text int(this.imgnr)+1;
        
details.onRelease = function() {
            
getURL("javascript:window.open('/components/press/more.php?img="+images_array[this.imgnr]+"','','width=620,height=620,left=20,top=20,scrollba  rs=yes'); void(0);");
        };
    };
    
holder["thumbnail"+i].image._alpha 80;
    
holder["thumbnail"+i].image.onRollOver = function() {
        
this._alpha 100;
    };
    
holder["thumbnail"+i].image.onRollOut = function() {
        
this._alpha 80;
    };
    
loadMovie("/media/press/small/"+images_array[i]+".jpg"target);

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (03-05-2005 um 14:00 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 03-05-2005, 20:47   #6 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 9
Danke vielmals an euch beide!

Das ganze funzt!

Bin schon fast am verzweifeln gewesen, da mein anderer Lösungsansatz einfach auf dem IE nicht funktionert hat (weiss jetzt noch nicht warum!?)
siehe (Win Exploarer macht da irgendwas anders... )

danke
mcmueh
mcmueh 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:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele