Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-01-2008, 09:13   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2003
Beiträge: 1
loadMovie weiterer Code wird vor Initialisierung ausgefuehrt

Hallo,

ich moechte Bilder in einen MovieClip "container" laden, der sich bereits auf der Buehne befindet. Der Code unten soll beispielhaft verdeutlichen wie ich das mache. Habe die Methode "laden" dem prototype MovieClip hinzugefuegt. Das Laden selbst funktioniert auch schoen.

Nach dem Laden der Bilder moechte ich allerdings mit Ihnen arbeiten und benoetige sie dazu in einem Array und muss auch auf ihre Breite, x-Koordinate etc. Zugriff haben. Deshalb "warte" ich in der "laden" Methode (in dem onEnterFrame Handler dort) bis das Bild geladen ist. Zum Beweis kann ich dann ueber "trace" die Werte dort anzeigen lassen.

Mein Problem nun: ich bin davon ausgegangen, dass die Programmausfuehrung nach dem Aufruf von "laden(container,"1.jpg");" weitergeht, d.h. mein Array initialisiert ist. Wenn ich aber die "trace" Ausgabe beachte, wird mein Code nach dem Ausruf von "laden" zuerst ausgefuehrt, was bedeutet, mein Array besitzt zu diesem Zeitpunkt noch keine Werte.

Meine Frage: Wie kann ich sicher gehen, dass meine Bilder geladen sind, bevor ich weiter in der Programmausfuehrung gehe? Und zwar ohne dass ich eine Funktion innerhalb von "laden" aufrufe, da diese ja dann bei jedem geladenen Bild aufgerufen wird, ich aber eine weiterverarbeitende Funktion nur einmal aufrufen moechte... Danke fuer jede Antwort, da ich ziemlich ratlos bin..

Code:
//create array for images
img_array = new Array();

//prototype Methode laden
MovieClip.prototype.laden = function (obj,img) {
    
	//load image into object
	obj.loadMovie(img);    

	//wait in event handler till image is loaded
	this.onEnterFrame = function() {
        
		//get bytes
		geladen = obj.getBytesLoaded();
        gesamt = obj.getBytesTotal();
       
	   	//if things are loaded
        if (geladen >= gesamt && geladen > 4) {
			
			//push the image in the array
			_root.img_array.push(obj);
			
			//show values 
			trace(img_array.length);
			trace(img_array[0]._width);
			
			//delete the eventhandler
			delete this.onEnterFrame;
			
        }else{
			//do nothing
		}
    }
}

//load image
laden(container,"1.jpg");


//show values
trace(img_array.length);
trace(img_array[0]._width);
soul.warrior ist offline   Mit Zitat antworten
Alt 18-01-2008, 13:13   #2 (permalink)
halb-neu
 
Benutzerbild von zioschild
 
Registriert seit: Nov 2005
Beiträge: 24
Hi

du möchtest also ein jpg von ausserhalb der swf in einen bereits platzierten mc laden?
Dann empfehle ich dir statt dass du loadMovie benutzt, dir mal die "MovieClipLoader"-geschichten anschaust...

oder mal hier guckst:
MovieClipLoader - Breite von externen Bild mit onLoadComplete auslesen
__________________
Alt+F4 - hilft immer...
zioschild 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 21:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele