Flashhilfe.de - Flash Community

Laden mehrerer Bilder mit LoadClip plus multipler Preloader [Flash 10]

 


AntwortenRegistrieren Seite1  

Olli_K#1
Benutzerbild von Olli_K
Beiträge: 1413
Wohnort: Hauptstadt
Registriert: Dec 2004

09.06.2011, 15:14

Hallo, ersuche Hilfe bei Denkblockade.

Mit folgendem Script lade ich ein Bild in einen bereitgestellten Movieclip.
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
my_mc = new MovieClipLoader();
preload = new Object();
my_mc.addListener(preload);

preload.onLoadProgress = function(targetMC, lBytes, tBytes) {
     filmStreifen.Container1.pText = "% "+Math.round((lBytes/tBytes)*100);
     filmStreifen.Container1.lBytes = "loaded bytes "+lBytes;
     filmStreifen.Container1.tBytes = "total bytes "+tBytes;
};

preload.onLoadInit = function(targetMC) {
     trace(filmStreifen.Container1.imgMC1);
     filmStreifen.Container1.imgMC1._width = 139;
     filmStreifen.Container1.imgMC1._height = 95;
     filmStreifen.Container1.imgMC1._x = 5;
     filmStreifen.Container1.imgMC1._y = 21;
     filmStreifen.Container1.imgMC1._alpha = 0;
     filmStreifen.Container1.imgMC1.onEnterFrame = function() {
        if (this._alpha<100) {
           this._alpha += 5;
        } else {
           delete this.onEnterFrame;
        }
     };
};
my_mc.loadClip("pics/1.jpg",filmStreifen.Container1.imgMC1);
Das funktioniert auch; mit Preloader und anschließender Skalierung und Positionierung. Das ganze soll aber nun dynamischer werden und auf mehrere Bilder/MCs anwendbar werden. Folgendes Script lädt zwar alle Bilder in die Bereitgestellten MCs, aber Preloader und Skalieren funzt nicht mehr:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
for (i=1; i<=ContainerAnzahl; i++) {
     my_mc = new MovieClipLoader();
     this["preload"+i] = new Object();
     my_mc.addListener(this["preload"+i]);
 
     this["preload"+i].onLoadProgress = function(targetMC, lBytes, tBytes) {
        filmStreifen["Container"+i].pText = "% "+Math.round((lBytes/tBytes)*100);
        filmStreifen["Container"+i].lBytes = "loaded bytes "+lBytes;
        filmStreifen["Container"+i].tBytes = "total bytes "+tBytes;
     };
 
     this["preload"+i].onLoadInit = function(targetMC) {
        filmStreifen["Container"+i]["imgMC"+i]._width = 139;
        filmStreifen["Container"+i]["imgMC"+i]._height = 95;
        filmStreifen["Container"+i]["imgMC"+i]._x = 5;
        filmStreifen["Container"+i]["imgMC"+i]._y = 21;
        filmStreifen["Container"+i]["imgMC"+i]._alpha = 0;
        filmStreifen["Container"+i]["imgMC"+i].onEnterFrame = function() {
           if (this._alpha<10) {
              this._alpha += 5;
           } else {
              delete this.onEnterFrame;
           }
        };
     };
     my_mc.loadClip("pics/"+i+".jpg",filmStreifen["Container"+i]["imgMC"+i]);
}
LG | Olli

pixbox
Schlagwörter: loadClip, mehrfach, preloader
Geändert von Olli_K am 09.06.11 um 15:33 Uhr
vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

09.06.2011, 16:18

Hallo,

dein Problem ist, dass du in den Funktionen onLoadProgress und onLoadInit auf i zugreifen willst.
Flash aber führt die for-Schleife aus - zu dem Zeitpunkt ist ja noch kein Bild geladen. Wenn die Schleife fertig ist, dann ist vll bereits das erste Bild fertig geladen - nun willst du das Skalieren/Positionieren, aber mit filmStreifen["Container"+i]["imgMC"+i] bekommst du jetzt filmStreifen["Container"+ContainerAnzahl]["imgMC"+ContainerAnzahl], da die Schleife ja schon fertig geladen ist. Du kannst jetzt eintweder am anfang deiner for-Schleife das i in deinem MC als Variable speichern, oder aber du nutzt in den Funktionen einfach "targetMC" - die Variable beinhaltet nämlich den geladenen MC.
Also reicht es in die funktionen das zu schreiben:

ActionScript:
1
2
3
targetMC._width = 139;
targetMC._height = 95;
[...]

und um den Ladebalken anzusprechen einfach noch ein parent dazwischen:
ActionScript:
1
2
[..]
targetMC._parent.tBytes = "total bytes "+tBytes;
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Olli_K#3
Benutzerbild von Olli_K
Beiträge: 1413
Wohnort: Hauptstadt
Registriert: Dec 2004

Themenautor/in

09.06.2011, 16:25

Da war die Blockade. Danke, hast mir sehr geholfen. Hab zu lange nichts mehr in Flash gemacht, ist wohl doch nicht wie Fahrradfahren.
LG | Olli

pixbox

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de