Flashhilfe.de - Flash Community

Externe Bilder preloaden? [Flash 8]

 


AntwortenRegistrieren Seite1  

Eicoon#1
Benutzerbild von Eicoon
Beiträge: 51
Registriert: Oct 2006

03.08.2007, 11:23

Ich habe schon mehrmals einen einfachen Preloader verwendet der das gesamte Flashfile vorrausläd, auch mit ner Prozentanzeige, den gesamten Bytes und den bereits geladenen Bytes....nun habe ich das Problem das ich ein File habe was hauptsächlich aus externen Bildern besteht! Wenn ich diesen Preloader verwende bringt das nix da er nur das Flashfile vorläd, nicht aber die ganzen Bilder. Gibt es denn ne Möglichkeit dass er auch die externen Bilder vorläd? Am besten auch das man dme sagen kann welche Bilder? Sprich Pfade angibt von denen die er direkt vorladen soll? Somit dann also im Endeffekt ein Preloader der das Flashfile an sich läd und gleichzeitig auch die angegebenen externen Bilder!

Werbung
Beiträge: 0
Registriert: Feb 2016


Eicoon#2
Benutzerbild von Eicoon
Beiträge: 51
Registriert: Oct 2006

Themenautor/in

07.08.2007, 11:21

Weiß wirklich keiner was?
Hab so Sachen wie

ActionScript:
1loadMovie("big.jpg", "_root.mc");


probiert, das bringt aber nix....der zeigt bei "_root.getBytesTotal" dann nicht mehr an....also bringt mich das nicht weiter...gibts da keine Möglichkeit?

Kyuyo#3
Benutzerbild von Kyuyo
Beiträge: 44
Wohnort: Mönchengladbach
Registriert: Jul 2006

07.08.2007, 11:34

Schau mal hier vorbei ;)

http://www.flashforum.de/forum/showthread.php?s=&threadid=28366

pact kiz reman#4
Benutzerbild von pact kiz reman
Beiträge: 172
Registriert: May 2006

07.08.2007, 11:35

Hier mal schnell eine Variante:

Code in den ersten Frame der Zeitleiste:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//--> Lädt Bild mit Preloader
// Achtung: weiterer Code in den entsprechenden MCs!
// lädt Bild in MC
altPic_mc.loadMovie ("images/alt_index.jpg");

// Intervall für die Funktion ladeFortschritt starten
var ladeFortschritt_intervall:Number = setInterval(ladeFortschritt, 50);

// Funktion zum Ermitteln des Ladestatus
function ladeFortschritt() {
   // geladene und gesamte Byte Anzahl ermitteln
   geladen = altPic_mc.getBytesLoaded();
   gesamt = altPic_mc.getBytesTotal();
   prozent = geladen/gesamt*100;
   
   if(prozent > 99.99) {
      // Intervall stoppen, wenn Laden quasi beendet ist
      clearInterval(ladeFortschritt_intervall);
   }
}


Jetzt muss nur noch ein Objekt entsprechend animiert werden.
Ich mache das gern Objektbasiert also, legen einen MC für den LAdebalken an und packe dort folgenden Code rein:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
onClipEvent (load) {
   this._xscale = 0;
    smooth = 4;
}

onClipEvent (enterFrame) {
   newXscale = _root.prozent;
   if (_xscale != newXscale) {
       if (this._xscale < newXscale) {
            step = (newXscale -  this._xscale) / smooth;
            this._xscale += step;
       } else {
            step = (this._xscale - newXscale) / smooth;
            this._xscale -= step;
       }
   if (step < 0.5) this._xscale = newXscale;
   }
}


Damit ändert der Ladebalken seine Breite in %.
Achtung, das ist abhängig von der Framerate und funktioniert nur, wenn der erste Frame immer wieder lädt. Also im Kreis. Möchtest du nach dem Laden einen anderen Frame aufrufen, musst du dass vielleicht so machen:

ActionScript:
1
2
3
if (_root.prozent = 100) {
      gotoAndStop(2);
   }


Probier mal rum!
Gruß

Gruss + Dank!
Patrick
Werbung
Beiträge: 0
Registriert: Feb 2016


Eicoon#5
Benutzerbild von Eicoon
Beiträge: 51
Registriert: Oct 2006

Themenautor/in

07.08.2007, 12:13

Ladeanimation und so habe ich bereits....habe mit deinem code ein wenig gebastelt aber irgendwie klappt da sjicht so ganz....aber ich kam auf ne andere Idee....leider funktioniert das auch nicht so wie ich mir das vorstelle!

ActionScript:
1
2
3
4
5
6
7
bild1.loadMovie ("big.jpg");

bytesges = _root.getBytesTotal() + bild1.getBytesTotal();

geladenebytes = _root.getBytesLoaded() + bild1.getBytesLoaded();

prozent = int ((geladenebytes/bytesges)*100);


Habe einfach gedacht ich addiere die Bytes des Flashfiles mit den Bytes des bildes....naja leider scheint es nicht zu funktionieren...wenn ich mir mit Trace "bild1.getBytesTotal();" ausgeben lasse kommt auch leider nur undefined zurück...geht es überhaupt so in der Art das man sozusagen die Bytes des Bildes auf die des SWFs drufpackt und es dann mitgeladen wird?
Geändert von Eicoon am 07.08.07 um 12:14 Uhr
Eicoon#6
Benutzerbild von Eicoon
Beiträge: 51
Registriert: Oct 2006

Themenautor/in

07.08.2007, 15:50

Habs nu wieder ganz anders: 

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
28
29
MovieClip.prototype.image = function (file,handler,hObj) {
    pic = this.createEmptyMovieClip("img",1)
    crt = this.createEmptyMovieClip("controll",2)
    pic.loadMovie (file)
    crt.onEnterFrame = function () {
        pic._visible = false
       
      bytesges = pic.getBytesTotal();
      geladenebytes = pic.getBytesLoaded();
      prozent = int(geladenebytes*100/bytesges)

      
      
      maske._yscale = prozent;


      if (prozent >= 99)
      {
      nextFrame();
   
      }
      

    }
}


Preload = _root.createEmptyMovieClip("leer",1)
Preload.image("big.jpg", "parameter");



Somit gehts.....nun läd der zwar nur das bild vor aber das reicht so...naja nu hab ich aber 20 bilder....kann man das einfach mit nem array machen oder wie klappt das am besten???
Geändert von Eicoon am 07.08.07 um 15:51 Uhr

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   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de