Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-10-2005, 13:55   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Externe Bilder, _width immer 0

Hi zusammen, also ich lade externe Bilder anhand einer XMl Datei, funktioniert auch tadellos.

Ich lade die Bilder in einen emptyMovieclip, und will sie auf der Bühne anordnen, dass sie immer den gleichen Abstand haben. (die Bilder sind verschieden groß)
Dazu muss ich width und height der jpegs auslesen. Dies funktioniert aber nur wenn ich sie in einen leerenMC lade, und dann Größe und Breite des MCs bestimme. Wenn ich das jetzt mache, kriege ich aber immer 0 für beide Werte ausgegeben.
Ich denke es liegt daran, dass die Bilder noch nicht fertig geladen sind, die Funktion aber weitergeht. Ich muss also irgendwie ne Schleife machen, die wartet bid das Bild fertig geladen ist, und dann Breite und Höhe auslesen.

Hier noch das Skript:
ActionScript:
  1. function xmlgallery() {
  2.    
  3.    
  4.     for(p=0; p<total; p++) {
  5.        
  6.        
  7.         _root.createEmptyMovieClip("thumbmc"+p, p+1);
  8.         _root["thumbmc"+p]._x = Math.round(Stage.width/2 - 30);
  9.         _root["thumbmc"+p]._y = Math.round(Stage.height/2 -30);
  10.         _root["thumbmc"+p].loadMovie(thumb[p], p+1);
  11.         width_mc = _root["thumbmc"+p]._width;
  12.         _root["thumbmc"+p].tween(["_x","_y"],[xpos,ypos], 1);
  13.         xpos = xpos+width_mc;
  14.         trace(width_mc);
  15.        
  16.     }
  17.        
  18. }

width_mc, ist also immer 0, und ich steh irgendwie aufm Schlauch

Danke für die Hilfe.

Geändert von Randy (04-10-2005 um 13:57 Uhr)
Randy ist offline   Mit Zitat antworten
Alt 04-10-2005, 14:25   #2 (permalink)
100% Dreierquote
 
Benutzerbild von AneBanane
 
Registriert seit: Aug 2001
Ort: Weltstadt Kiel
Beiträge: 1.273
du musst sichergehen, dass das bild
in dem moment, in dem du die größe
des mc ermitteln willst, auch schon
vollständig geladen ist.

mach nen preloader und frage erst, wenn
der grünes licht gibt, die _width ab.
AneBanane ist offline   Mit Zitat antworten
Alt 04-10-2005, 14:40   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Du meinse so ungefähr ?

ActionScript:
  1. function xmlgallery() {
  2.        
  3.        
  4.         for(p=0; p<total; p++) {
  5.                
  6.                
  7.                 _root.createEmptyMovieClip("thumbmc"+p, p+1);
  8.                 _root["thumbmc"+p]._x = Math.round(Stage.width/2 - 30);
  9.                 _root["thumbmc"+p]._y = Math.round(Stage.height/2 -30);
  10.                 _root["thumbmc"+p].loadMovie(thumb[p], p+1);
  11.                
  12.                 var end = int( _root["thumbmc"+p].getBytesLoaded()*100/_root["thumbmc"+p].getBytesTotal());
  13.  
  14. if (end >= 100) {
  15.      
  16.                width_mc = _root["thumbmc"+p]._width;
  17.                 _root["thumbmc"+p].tween(["_x","_y"],[xpos,ypos], 1);
  18.                 xpos = xpos+width_mc;
  19.                 trace(width_mc);
  20.                
  21.         }
  22. }
  23.        
  24. }

Geht auch irgendwie ned.

Aber schon mal Danke.

R... immer noch aufm Schlauch
Randy ist offline   Mit Zitat antworten
Alt 04-10-2005, 14:44   #4 (permalink)
100% Dreierquote
 
Benutzerbild von AneBanane
 
Registriert seit: Aug 2001
Ort: Weltstadt Kiel
Beiträge: 1.273
trace mal 'end'.
ist das denn auch 100?
AneBanane ist offline   Mit Zitat antworten
Alt 04-10-2005, 14:50   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Mhhm, irgendwas läuft da falsch. 'End' is auch immer 0, heißt also der geht jetzt ins if- gar nicht mehr rein...
Randy ist offline   Mit Zitat antworten
Alt 04-10-2005, 14:53   #6 (permalink)
100% Dreierquote
 
Benutzerbild von AneBanane
 
Registriert seit: Aug 2001
Ort: Weltstadt Kiel
Beiträge: 1.273
selbes prob ...
du musst onEnterFrame 'end' abfragen und erst dann weitermachen.
AneBanane ist offline   Mit Zitat antworten
Alt 04-10-2005, 15:03   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Ich habs jetzt mal so:
ActionScript:
  1. function xmlgallery() {
  2.        
  3.        
  4.         for(p=0; p<total; p++) {
  5.                
  6.                
  7.                 _root.createEmptyMovieClip("thumbmc"+p, p+1);
  8.                 _root["thumbmc"+p]._x = Math.round(Stage.width/2 - 30);
  9.                 _root["thumbmc"+p]._y = Math.round(Stage.height/2 -30);
  10.                 _root["thumbmc"+p].loadMovie(thumb[p], p+1);
  11.                
  12.                 this.onEnterFrame = function() {
  13.                 var end = int( _root["thumbmc"+p].getBytesLoaded()*100/_root["thumbmc"+p].getBytesTotal());
  14.                 trace (end);
  15.                 if (end >= 100) {
  16.                        
  17.                         width_mc = _root["thumbmc"+p]._width;
  18.                         _root["thumbmc"+p].tween(["_x","_y"],[xpos,ypos], 1);
  19.                         xpos = xpos+width_mc;
  20.                    
  21.                        delete this.onEnterFrame;
  22.                 }
  23.                 }
  24.         }
  25.        
  26. }

Das komische ist nun, dass mir im Ausgabefenster jetzt für 'end' in ner Schleife 0 ausgegeben wird.
Haben emptyMcs überhaupt nen Rückgabewert ? Vielleicht ist ja das mein Problem.
Randy ist offline   Mit Zitat antworten
Alt 04-10-2005, 15:19   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Tag!
Ich kann das jetzt zwar nicht testen, aber vom Prinzip her so:
ActionScript:
  1. function xmlgallery() {
  2.     for (p=0; p<total; p++) {
  3.         _root.createEmptyMovieClip("thumbmc"+p, p+1);
  4.         mc = _root.createEmptyMovieClip("watch"+p, 100+p);
  5.         _root["watch"+p].id = p;
  6.         _root["thumbmc"+p]._x = Math.round(Stage.width/2-30);
  7.         _root["thumbmc"+p]._y = Math.round(Stage.height/2-30);
  8.         _root["thumbmc"+p].loadMovie(thumb[p], p+1);
  9.         mc.onEnterFrame = function() {
  10.             var mc = this._parent["thumbmc"+this.id]
  11.             if (mc._width>0) {
  12.                 _global.width_mc = mc._width;
  13.                 mc.tween(["_x", "_y"], [xpos, ypos], 1);
  14.                 _global.xpos = xpos+width_mc;
  15.                 trace(width_mc);
  16.                 removeMovieClip(this)
  17.             }
  18.         };
  19.     }
  20. }
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 04-10-2005, 17:53   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 597
Ah, es hat klick gemacht. Bin zwar jetzt auch nicht mehr am ArbeitsPC, kanns also nicht testen, sollte aber gehen.

Mille gracie.
Randy 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 08:48 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele