Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-11-2007, 08:50   #1 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
MovieClipLoader - Breite von externen Bild mit onLoadComplete auslesen

Hallo FF!


Ich erstelle gerade eine Gallery mit externen Bildern und bin durch das Forum auf den MovieClipLoader gestoßen. Leider scheint gerade dessen Vorteil bei mir irgendwie nicht zu klappen. Ich erhalte im onLoadComplete immer noch die Breite:0 wenn ich sie trace. Was läuft da falsch?

PHP-Code:

    i 
0;
        
        var 
mcl:MovieClipLoader = new MovieClipLoader ();
        var 
lstnr:Object = new Object();
        
mcl.addListener(lstnr);
        
        
        function 
lade_gallery() {            
            
_root.current_thumb this.createEmptyMovieClip ("holder_mc_"+ithis.getNextHighestDepth ());
            
mcl.loadClip (_root.file_pfad+gallery[i]['image'], _root.current_thumb);
        }
        
        
lstnr.onLoadInit = function () {
            
trace(i+" gestartet");
        };
        
        
lstnr.onLoadProgress = function(target:MovieClipbytesLoaded:NumberbytesTotal:Number):Void {
            
trace(Math.ceil((bytesLoaded/bytesTotal)*100)+"%"); 
        }
        
        
lstnr.onLoadComplete = function(){
            
trace(i+" fertig: "+_root.current_thumb);
            
trace(i+" width: "+_root.current_thumb._width);
            
trace(i+" height: "+_root.current_thumb._height);
            
_root.current_thumb._x+=200*i;
            if (
i+== gallery.length) {
                    
// alle fertig
                    
play();
                } else {
                    
// nächsten laden
                    
i++;
                    
lade_gallery();
                }
        }

lade_gallery(); 
Wenn ich zwei Frames später nach der Breite frage, erhalte ich den korrekten Wert. Sollte das nicht aber durch den onLoadComplete abgefangen werden?

Generell scheint da noch irgendwas falsch zu laufen. Meine Trace-Ausgabe schaut wie folgt aus:

HTML-Code:
100%
0 fertig: _level0.instance143.holder_mc_0
0 width: 0
0 height: 0
1 gestartet
100%
1 fertig: _level0.instance143.holder_mc_1
1 width: 0
1 height: 0
2 gestartet
100%
2 fertig: _level0.instance143.holder_mc_2
2 width: 0
2 height: 0
3 gestartet
100%
3 fertig: _level0.instance143.holder_mc_3
3 width: 0
3 height: 0
3 gestartet
Fehlt da am Anfang nicht ein "0 gestartet" .. ? o.O


Vielleicht kann mir da ja jemand helfen.


Gruß,
Dwarf
djdwarf ist offline   Mit Zitat antworten
Alt 27-11-2007, 10:22   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Ich erhalte im onLoadComplete immer noch die Breite:0 wenn ich sie trace. Was läuft da falsch?
onLoadComplete bedeutet, dass nur das Laden abgeschlossen ist. Der MC muss aber nicht zwangsläufig befüllt sein, das ist genauso wie bei einem normalen loadMovie. Du musst also noch zusätzlich überprüfen, ob der MC eine Höhe/Breite größer 0 hat. Mit der MovieClipLoader-Klasse geht das ziemlich einfach, indem du einfach den onLoadInit auswertest.
  Mit Zitat antworten
Alt 27-11-2007, 11:17   #3 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
Zitat:
Zitat von agedoubleju Beitrag anzeigen
onLoadComplete bedeutet, dass nur das Laden abgeschlossen ist. Der MC muss aber nicht zwangsläufig befüllt sein, das ist genauso wie bei einem normalen loadMovie. Du musst also noch zusätzlich überprüfen, ob der MC eine Höhe/Breite größer 0 hat.
Ach soo ... das hatte ich dann falsch verstanden. Danke!


Zitat:
Zitat von agedoubleju Beitrag anzeigen
Mit der MovieClipLoader-Klasse geht das ziemlich einfach, indem du einfach den onLoadInit auswertest.
nanu, da hatte ich dann ja einiges falsch verstanden. Dachte der onLoadInit bezieht sich auf den Start des Ladevorgangs. Aber tatsache .. mit:

PHP-Code:
lstnr.onLoadInit = function () {
            
trace(i+" gestartet");
            
trace(i+" object: "+_root.current_thumb);
            
trace(i+" width: "+_root.current_thumb._width);
            
trace(i+" height: "+_root.current_thumb._height);
        }; 
Erhalte ich meine Werte.

Dachte die Reihenfolge wäre:

onLoadInit -> onLoadProgress -> onLoadComplete

Versteh ich dann jetzt richig, dass es so korrekt ist:

onLoadProgress -> onLoadComplete -> onLoadInit

?


Danke für deine Hilfe!

Gruß,
Dwarf
djdwarf ist offline   Mit Zitat antworten
Alt 27-11-2007, 11:52   #4 (permalink)
ActionStripper
 
Benutzerbild von Mr.Twister
 
Registriert seit: Nov 2001
Ort: Oldenburg
Beiträge: 3.275
onLoadInit() bekommt einen Parameter mit übergeben. Mit dem solltest du arbeiten:
ActionScript:
  1. MovieClipLoaderListener.onLoadInit = function(target:MovieClip):void {
  2.     trace(target);
  3. }
So kannst du auch Fallunterscheidungen machen, wenn du den gleichen Listener mehrfach verwendest.

PS:API lesen erleichtert manchmal das Finden von Antworten.
__________________
Design ist AUCH Geschmackssache.
Mr.Twister 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 01:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele