mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 13:21 Benutzername: Passwort: Auto-Login

Thema: [Tutorial] dyn. Flash-Preloader zum Laden externer Dateien vom 17.06.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Multimedia -> [Tutorial] dyn. Flash-Preloader zum Laden externer Dateien
Seite: Zurück  1, 2, 3, 4, 5, 6  Weiter
Autor Nachricht
DROPSI

Dabei seit: 27.12.2005
Ort: Zwickau
Alter: -
Geschlecht: Männlich
Verfasst Do 29.12.2005 12:30
Titel

Antworten mit Zitat Zum Seitenanfang

ok..ich probier mal mein Glück...trotzdem Danke
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Mr.Ice.T

Dabei seit: 04.05.2006
Ort: -
Alter: 57
Geschlecht: Männlich
Verfasst Do 04.05.2006 10:08
Titel

Re: [Tutorial] dyn. Flash-Preloader zum Laden externer Datei

Antworten mit Zitat Zum Seitenanfang

pejot hat geschrieben:
Servus

Hallo ! Das sieht ja alles prima aus und ich kann diesen Preloader gut gebrauchen. Aber irgendetwas mach ich falsch! Habe den Prel. in meine Page eingebunden und er erscheint auch, aber das Video ( wmv-format) wird nicht geladen. Bin halt nicht d e r Megaprofi, mehr ein Hobbyprogrammer......Hilfe wäre nett !! Was mache ich falsch ??

Aufgrund einiger Rückfragen zu diesem Tutorial, wie man denn externe Daten (.swf-Dateien, Bilder oder Filme) mit diesem komplett dynamischen Preloader lädt, habe ich zwei neue Tutorials geschrieben.
Die Features bleiben die gleichen, wie im eben genannten Tut.

Tutorial 1: „Laden einer Datei von einer externen Quelle mit einem dynamischen Preloader"
Tutorial 2: „Laden multipler Dateien von externen Quellen mit einem dynamischen Preloader“


Tutorial 1: „Laden einer Datei von einer externen Quelle mit einem dynamischen Preloader"


1.1 unkommentierter Quelltext zu besseren Übersicht
Code:

        var zielfilm = "bilder/bild1.jpg";
        var startx = 290 ;
        var starty = 190 ;
        var breite = 250;
        var hoehe = 10;
        var farbe = 0x3399CC;
        var alpha = 100;
   var textfarbe = 0x3399CC;
   var schriftart = "Verdana";
   var schriftgroesse = 10;
        var schriftfett = 1;
   var schriftkursiv = 0;
   var schriftunterstrichen = 0;
   var textausrichtung = "left";
   //
        _root.createEmptyMovieClip("ziel", 2);
        _root.ziel._x = 10;
        _root.ziel._y = 10;
        _root.ziel.loadMovie(zielfilm);
   //
        _root.createEmptyMovieClip("balken_mc",1);
      balken_mc._x = startx;
      balken_mc._y = starty;
      with(balken_mc){
      beginFill(farbe,alpha);
      lineTo(0,hoehe);
      lineTo(breite,hoehe);
      lineTo(breite,0);   
      lineTo(0,0);
      endFill();
      };
         for(var i = 1;i <= 5;i++){
         _root.createTextField("anzeige"+i,20+i,startx,starty+(20*i),300,20);
                 anzeigeformat = new TextFormat();
       anzeigeformat.color = textfarbe;
       anzeigeformat.font = schriftart;
       anzeigeformat.size = schriftgroesse;
       anzeigeformat.bold = schriftfett;
       anzeigeformat.italic = schriftkursiv;
       anzeigeformat.underline = schriftunterstrichen;
       anzeigeformat.align = textausrichtung;
       }
         _root.onEnterFrame = function(){
        var t = _root.ziel.getBytesTotal();
        var g = _root.ziel.getBytesLoaded();
        var st = getTimer();
        var rt = Math.round((st-at)/1000);
        var et = Math.round((t*rt)/g);
        var ct = Math.round(-(rt-et));
        if(g == t && g>50){
       for(var i = 1;i <= 5;i++){
         _root["anzeige"+i].removeTextField();
       }
       balken_mc.clear();
       delete this.onEnterFrame;
         }
        else {var a = (g/t)*100;
       anzeige1.text = "Es wurden "+Math.round(g/1024)+" Kb von "+Math.round(t/1024)+" Kb geladen";
       anzeige1.setTextFormat(anzeigeformat);
       anzeige2.text = "Das sind nach Adam Riese "+Math.round(a)+" %";
       anzeige2.setTextFormat(anzeigeformat);
       anzeige3.text = "Die abgelaufene Zeit beträgt "+rt+" Sekunden";
       anzeige3.setTextFormat(anzeigeformat);
       anzeige4.text = "Sie müssen sich noch ca. "+ct+" Sekunden gedulden";
       anzeige4.setTextFormat(anzeigeformat);
       balken_mc._xscale = a;
      }

};




1.2 kommentierter Quelltext
Code:

// pfad zu einer externen datei – das kann z.b. ein pfad zu einer swf, zu einem bild oder einem film sein
        var zielfilm = "bilder/bild1.jpg";
//++++++++++++++++++++++++++++++ optik des preloaders +++++++++++++++++++++
// anfangswert des balkes auf der x-achse
        var startx = 290 ;
// anfangswert des balkes auf der y-achse
        var starty = 190 ;
// balkenbreite
        var breite = 250;
// balkenhoehe
        var hoehe = 10;
// balkenfarbe
        var farbe = 0x3399CC;
// transparenz des balkens
        var alpha = 100;
// textfarbe      
   var textfarbe = 0x3399CC;
// schriftart
   var schriftart = "Verdana";
// schriftgröße
   var schriftgroesse = 10;
// schrift fett?
        var schriftfett = 1;
// schrift kursiv?
   var schriftkursiv = 0;
// schrift unterstrichen?
   var schriftunterstrichen = 0;
// textausrichtung
   var textausrichtung = "left";
//
//++++++++++++++++++++++++++++++ externe dateien +++++++++++++++++++++++++++
// container zum reinladen externer dateien (swfs, bilder, filme etc.)
        _root.createEmptyMovieClip("ziel", 2);
// position des containers auf der x-achse
        _root.ziel._x = 10;
// position des containers auf der y-achse
        _root.ziel._y = 10;
// die zu ladende externe quelle
        _root.ziel.loadMovie(zielfilm);
/*
+++++++++++++++++++++++++++++++ der balken +++++++++++++++++++++++++++++++++
zuerst wird dynamisch ein leerer movieclip erzeugt
in diesem movieclip wird der balken per flash-drawing-api erzeugt: alpha, farbe, höhe, breite
*/
        _root.createEmptyMovieClip("balken_mc",1);
// x-position des balkens
      balken_mc._x = startx;
// y-position des balkens
      balken_mc._y = starty;
//zeichnen des balkens
      with(balken_mc){
      beginFill(farbe,alpha);
      lineTo(0,hoehe);
      lineTo(breite,hoehe);
      lineTo(breite,0);   
      lineTo(0,0);
      endFill();
      };
/*
++++++++++++++++++++++++++++++ die anzeige +++++++++++++++++++++++++++++++++
schleife zur erzeugung der textfelder fuer die anzeige der kilobytes, prozent und der zeit
*/   
         for(var i = 1;i <= 5;i++){
//erzeugt ein textfeld mit der instanz "anzeige+i" an einer vorgegebenen position
         _root.createTextField("anzeige"+i,20+i,startx,starty+(20*i),300,20);
      
//formatierung der anzeigetexte
                 anzeigeformat = new TextFormat();
       anzeigeformat.color = textfarbe;
       anzeigeformat.font = schriftart;
       anzeigeformat.size = schriftgroesse;
       anzeigeformat.bold = schriftfett;
       anzeigeformat.italic = schriftkursiv;
       anzeigeformat.underline = schriftunterstrichen;
       anzeigeformat.align = textausrichtung;
       }

//variablen fuer die anzeige
         _root.onEnterFrame = function(){
// gesamtbytes der zu ladenden datei
        var t = _root.ziel.getBytesTotal();
// bereits geladene bytes
        var g = _root.ziel.getBytesLoaded();
// timer für die zeitanzeige
        var st = getTimer();
// rundung der auf gerade zahlenwerte
        var rt = Math.round((st-at)/1000);
        var et = Math.round((t*rt)/g);
        var ct = Math.round(-(rt-et));
// wenn geladene bytes mit gesamtbytes übereinstimmen
        if(g == t){
// werden durch eine schleife alle vorhandenen textfelder gelöscht   
       for(var i = 1;i <= 5;i++){
         _root["anzeige"+i].removeTextField();
       }
// der balken wird ebenfalls gelöscht
       balken_mc.clear();
// die onEnterFrame-Anweisung wird aus performancegründen auch gelöscht
       delete this.onEnterFrame;
         }
// wenn geladene bytes mit gesamtbytes nicht übereinstimmen, wird prozentwert des ladefortschritts angezeigt
        else {var a = (g/t)*100;
   
// definition der anzeigefelder (texthäppchen)
       anzeige1.text = "Es wurden "+Math.round(g/1024)+" Kb von "+Math.round(t/1024)+" Kb geladen";
       anzeige1.setTextFormat(anzeigeformat);
       anzeige2.text = "Das sind nach Adam Riese "+Math.round(a)+" %";
       anzeige2.setTextFormat(anzeigeformat);
       anzeige3.text = "Die abgelaufene Zeit beträgt "+rt+" Sekunden";
       anzeige3.setTextFormat(anzeigeformat);
       anzeige4.text = "Sie müssen sich noch ca. "+ct+" Sekunden gedulden";
       anzeige4.setTextFormat(anzeigeformat);
// balken wird proportional zum prozentwert des ladefortschrittes skaliert
       balken_mc._xscale = a;
      }

}


Die Größe des Preloader beträgt nur 1kB und eignet sich somit auch perfekt zum Preloaden von Dateien mit geringer Datenmenge

Der Code ist natürlich wie immer äußerst ausführlich auskommentiert. Sollten trotzdem ein Problem oder Fragen auftauchen, postet bitte hier im Thread. Bitte nicht per PN, damit auch andere User was davon haben, die sich evtl. mit demselben Problem herumschlagen müssen.



anschauen
saugen

Viel Spaß damit!

Gruß PeJot
Menno!
  View user's profile Private Nachricht senden
Anzeige
Anzeige
OloX

Dabei seit: 09.06.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 09.06.2006 22:42
Titel

hi

Antworten mit Zitat Zum Seitenanfang

hi leute,
wollte so ein teil auch bei meinen Intro eibauen Menno!
aber es funtzt einfach nicht * Nee, nee, nee * * Keine Ahnung... *
kenn jemand mein teil richtig machen das es funtzt ???
FLA http://dmsgamer.dm.funpic.de/intro.fla
dan bitte die bearbeitte FLA und die SWF an @ schiken ?? Lächel
wähere echt coo! *hehe* *hehe*
ps soll zu finalv4.swf Gleden werden^^
DANE schonmal im voraus


Zuletzt bearbeitet von OloX am Fr 23.06.2006 23:34, insgesamt 4-mal bearbeitet
  View user's profile Private Nachricht senden
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Sa 10.06.2006 06:59
Titel

Antworten mit Zitat Zum Seitenanfang

Kannst Du dir unter http://www.flaming-art.com/MGI/intro.fla runterladen. Du must aber noch in deinen Film ein stop() im ersten Frame einbauen, da der sonst anfängt zu spielen bevor er fertig ist mit laden.

Allerdings muss ich sagen, sind da sachen drin, die totaler Humbug sind Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
OloX

Dabei seit: 09.06.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 10.06.2006 13:57
Titel

Antworten mit Zitat Zum Seitenanfang

wenn ich da stop() in der ersten frame einbaue dann bleibt das bild schwartz ^^
Help me *Schnief*
ps der hauptfilm hat 5 Ebenen *zwinker*


Zuletzt bearbeitet von OloX am Sa 10.06.2006 13:59, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
phihochzwei
Moderator

Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht: Männlich
Verfasst Sa 10.06.2006 18:54
Titel

Antworten mit Zitat Zum Seitenanfang

Gaaaaanz ruhig Lächel


Such mal im Preloader die Zeile

Code:


clearInterval(showPreloader)




über diese Zeile schreibst Du einfach

Code:


_root.ziel.gotoAndPlay(2)



und schon läufts Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
OloX

Dabei seit: 09.06.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst So 11.06.2006 10:11
Titel

Antworten mit Zitat Zum Seitenanfang

heul funtzt immernoch nicht *Huch* * grmbl * *hu hu huu* * Nee, nee, nee *
  View user's profile Private Nachricht senden
Kai.S

Dabei seit: 20.12.2005
Ort: München
Alter: 41
Geschlecht: Männlich
Verfasst Fr 23.06.2006 08:57
Titel

Antworten mit Zitat Zum Seitenanfang

Pejot, wärst du bitte so lieb und fixt den DL Link aus deinem Tut Lächel

* Ich bin unwürdig *
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen [Flash] Preloader soll nicht gesamte Animation laden
[Flash CS3 & AS2] Preloader mit mehreren SWF-Dateien
[Tutorial] Erstellen und auslesen von XML-Dateien mit Flash
Hilfe - laden externer Bilder in ein MC (FlashMX)
PHP/JavaScript Code: Bilder aus externer Quelle laden
Probleme mit Scrollbuttons beim Laden externer .txt-Datei
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3, 4, 5, 6  Weiter
MGi Foren-Übersicht -> Multimedia


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.