Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-02-2006, 16:23   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 49
Wie abfragen ob alle Bilder fertig geladen wurden?

Hallo,

ich knabbere nun schon eine Weile an einem Problem. Und zwar lade ich verschiedene Bilder aus einer XML.

Zunächst wird für jeden XML-Eintrag ein Objekt erstellt in dem unter anderem der Bildpfad gespeichert ist (eine eigene Klasse "item"). In dieser Klasse wird dann der MovieClipLoader zum laden der Bilder genutzt.

Nun zum Problem:

Über onLoadInit (ebenfalls in der Klasse implementiert) kann ich ja den fertig geladenen MC skalieren usw., allerdings kann ich von dort nicht auf mein item-Objekt zugreifen . Was mir aber viel wichtiger wäre, irgendwie ermitteln zu können, wann alle Bilder fertig geladen wurden (ohne onEnterFrame).

Ich hab schon stundenlang nach einer Lösung gesucht, aber womöglich fehlt mir die Fachbezeichnung für sowas. Ich hoffe ihr versteht mein Problem und könnt mir weiterhelfen.

Liebe Grüße
Smiller
Smiller ist offline   Mit Zitat antworten
Alt 04-02-2006, 09:20   #2 (permalink)
Nagelneuer User
 
Benutzerbild von hazy fantazy
 
Registriert seit: Dec 2005
Beiträge: 923
Wenn du für jeden gestarteten MovieClipLoader eine Variable hochzählst und dann im onLoadInit wieder runterzählst, müsste alles fertig sein, wenn du wieder bei 0 angekommen bist.
Etwas mehr Kontrolle würde dir die Verwendung eines Arrays bieten. Dort kannst du alle MovieClipLoader reinstopfen und die, die fertig sind, wieder entfernen. Array leer -> alles geladen.

mfg. h
__________________
The fact that you've got "Replica" written on the side of your gun and the fact that I've got "Desert Eagle written on the side of mine ... :D
hazy fantazy ist offline   Mit Zitat antworten
Alt 04-02-2006, 10:06   #3 (permalink)
Neuer User
 
Benutzerbild von :: RK ::
 
Registriert seit: Jan 2002
Beiträge: 5.445
hi,

n kleines bsp, wie man es machen könnte:

Code:
    // Anzahl der noch zu ladenden Bilderremain:Number = 0;// MovieClipLoader Objektevar MCL:MovieClipLoader = new MovieClipLoader();var MCL_LIST:Object = new Object();// laden der BilderloadTiles = function (){    //...    remain++;    MCL.loadClip(pic_path, mc);};// laden war erfolgreichMCL_LIST.onLoadComplete = function (target_mc:MovieClip){    if(remain > 0) remain--;    //...};// laden fehlgeschlagenMCL_LIST.onLoadError = function (target_mc:MovieClip){    if(remain > 0) remain--;    //...    //vielleicht ein Platzhalterbild laden};MCL.addListener(MCL_LIST);
__________________
Das Glück im Leben hängt von den guten Gedanken ab, die man hat.

Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs
:: RK :: ist offline   Mit Zitat antworten
Alt 04-02-2006, 11:42   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 49
Ahhh, super! Danke für den Tipp mit der Zählvariable! Mal sehen wie ich das ganze am geschicktesten mit OOP umsetze...

Habt ihr vielleicht noch einen Tipp, wie ich die Gesamtgröße aller zu ladenden Bilder im voraus ermitteln kann um einen einheitlichen Ladebalken umzusetzen? Ansonsten komm ich ja immer erst zur Ladezeit über die onLoadProgress() an die zu ladenden Bytes für jedes einzelne Bild heran. Zu diesem Zeitpunkt ist es doch aber zu spät um sie alle zu addieren (um den Ladefortschritt zu berechnen), da ja schon geladen wird?! Eine Möglichkeit wäre natürlich noch das ganze in PHP zu ermitteln und in die XML mit reinzuschreiben, dass würd ich aber gerne umgehen.

Liebe Grüße,
Smiller

//edit: Hab jetzt eine Lösung gefunden wie ich den prozentualen Ladestatus ermitteln kann. Einfach anhand der Anzahl bereits geladener und noch zu ladender Bilder. Allerdings läuft das dann ohne Bytegrößen. Falls noch jemand was dazu weiß, immer her damit

Geändert von Smiller (04-02-2006 um 12:10 Uhr)
Smiller ist offline   Mit Zitat antworten
Alt 04-02-2006, 12:20   #5 (permalink)
>>>||<<<
 
Registriert seit: Dec 2002
Ort: München
Beiträge: 208
Code:
    var preloaderGesamt:Number = 0; var gesamtAnzahl:Number = 5 // Gesamtanzahl der Bilder var prozVerteilung = 100/gesamtAnzahl; // Prozentuale Verteilung pro Bild var bereitsGeladen:Number =  0; // Anzahl der Bilder die bereits geladen wurden var meinPreloader:MovieClip = mc_preBla; meinPreloader._xscale = 0; MCL_LIST.onLoadProgress(bytesLoaded:Number, bytesTotal:Number) {       preloaderGesamt = (bereitsGeladen*prozVerteilung)+((prozVerteilung/100)*Math.round(bytesLoaded/bytesTotal*100))       meinPreloader._xscale = preloaderGesamt ; } MCL_LIST.onLoadComplete = function (target_mc:MovieClip) {    bereitsGeladen++;         if (bereitsGeladen < gesamtAnzahl)       // Nächstes Bild laden mit loadClip() };
Viktor M. ist offline   Mit Zitat antworten
Alt 04-02-2006, 12:54   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2002
Beiträge: 49
Natürlich! *vorstirnklatsch* Danke Viktor

Liebe Grüße
Smiller
Smiller 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 10:25 Uhr.

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


Copyright ©1999 – 2014 Marc Thiele