Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-10-2005, 13:58   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 25
Preloading friert Hauptfilm ein bis externes SWF fertig geladen

Hallo Gemeinde,

habe mir mal die Trial von Flash 8 geholt. Normalerweise Arbeite ich mit Flash MX.

Folgendes Problem:

Habe einen Hauptfilm (Projektor) der ein externes SWF mit eingebetetem video reinladen soll. Das ganze ist mit einem Preloader versehen inkl. Ladestatus.

Sobald das externe SWF geladen wird, "friert" mein Projektor ein. Alle Animaitonen stoppen und es wird kein Ladebalken angezeigt.

Sobald das externe SWF fertig geladen ist, funktioniert wieder alles.

Hier der Preloader (aus eurem Forum):
ActionScript:
  1. stop ();
  2. // Hier werden alle Filme festgelegtvar zielfilm1 = "data/nro_busses.swf";
  3. //
  4. //timer1; läuft seit beginn des Films
  5. var timer1 = getTimer()
  6.  
  7. //++++++++++++++++++++++++++++++ externe dateien +++++++++++++++++++++++++++
  8. // container zum reinladen externer dateien (swfs, bilder, filme etc.)
  9. _root.createEmptyMovieClip("ziel", 2);
  10. // position des containers auf der x-achse
  11. _root.ziel._x = 150;
  12. // position des containers auf der y-achse
  13. _root.ziel._y = 10;
  14. _root.onEnterFrame = function () {
  15.         ziel.loadMovie(zielfilm1);
  16.         preloader();
  17. };
  18.  
  19. //////////////////////////////// PRELOADER ////////////////////////////////
  20. preloader = function () {
  21.         /*
  22.         +++++++++++++++++++++++++++++++ der balken +++++++++++++++++++++++++++++++++
  23.         zuerst wird dynamisch ein leerer movieclip erzeugt
  24.         in diesem movieclip wird der balken per flash erzeugt: alpha, farbe, höhe, breite
  25.         */
  26.         _root.createEmptyMovieClip("balken_mc",1);
  27.         // x-position des balkens
  28.         balken_mc._x = startx;
  29.         // y-position des balkens
  30.         balken_mc._y = starty;
  31.         //zeichnen des balkens
  32.         with(balken_mc){
  33.                 beginFill(farbe,alpha);
  34.                 lineTo(0,hoehe);
  35.                 lineTo(breite,hoehe);
  36.                 lineTo(breite,0);
  37.                 lineTo(0,0);
  38.                 endFill();
  39.         };
  40.         /*
  41.         ++++++++++++++++++++++++++++++ die anzeige +++++++++++++++++++++++++++++++++
  42.         schleife zur erzeugung der textfelder fuer die anzeige der kilobytes, prozent und der zeit
  43.         */
  44.         for(var i = 1;i <= 5;i++){
  45.                 //erzeugt ein textfeld mit der instanz "anzeige+i" an einer vorgegebenen position
  46.                 _root.createTextField("anzeige"+i,20+i,startx,starty+(20*i),300,20);
  47.                
  48.                 //formatierung der anzeigetexte
  49.                 anzeigeformat = new TextFormat();
  50.                 anzeigeformat.color = textfarbe;
  51.                 anzeigeformat.font = schriftart;
  52.                 anzeigeformat.size = schriftgroesse;
  53.                 anzeigeformat.bold = schriftfett;
  54.                 anzeigeformat.italic = schriftkursiv;
  55.                 anzeigeformat.underline = schriftunterstrichen;
  56.                 anzeigeformat.align = textausrichtung;
  57.         }
  58.        
  59.         //variablen fuer die anzeige
  60.         _root.onEnterFrame = function(){
  61.                 // gesamtbytes der zu ladenden datei
  62.                 var total = _root.ziel.getBytesTotal();
  63.                 // bereits geladene bytes
  64.                 var geladen = _root.ziel.getBytesLoaded();
  65.                 // timer seit beginn der onEnterFrame schleife
  66.                 var timer2 = getTimer()
  67.                 // rundung der auf gerade zahlenwerte
  68.                 var abgelaufen = Math.round((timer2-timer1)/1000);
  69.                 var tgesamt = Math.round((total*abgelaufen)/geladen);
  70.                 var togo = Math.round(-(abgelaufen-tgesamt));
  71.                 // wenn geladene bytes mit gesamtbytes übereinstimmen
  72.                 if(geladen == total && geladen>50){
  73.                         // werden durch eine schleife alle vorhandenen textfelder gelöscht
  74.                         for(var i = 1;i <= 5;i++){
  75.                                 _root["anzeige"+i].removeTextField();
  76.                         }
  77.                         // der balken wird ebenfalls gelöscht
  78.                         balken_mc.clear();
  79.                         // die onEnterFrame-Anweisung wird aus performancegründen auch gelöscht
  80.                         trace(geladen);
  81.                         delete this.onEnterFrame;
  82.                 }
  83.                 // wenn geladene bytes mit gesamtbytes nicht übereinstimmen, wird prozentwert des ladefortschritts angezeigt
  84.                 else {var prozent = (geladen/total)*100;
  85.                        
  86.                         // definition der anzeigefelder (texthäppchen)
  87.                         anzeige1.text = "Es wurden "+Math.round(geladen/1024)+" Kb von "+Math.round(total/1024)+" Kb geladen";
  88.                         anzeige1.setTextFormat(anzeigeformat);
  89.                         anzeige2.text = "Das sind nach Adam Riese "+Math.round(prozent)+" %";
  90.                         anzeige2.setTextFormat(anzeigeformat);
  91.                         anzeige3.text = "Die abgelaufene Zeit beträgt "+abgelaufen+" Sekunden";
  92.                         anzeige3.setTextFormat(anzeigeformat);
  93.                         anzeige4.text = "Sie müssen sich noch ca. "+togo+" Sekunden gedulden";
  94.                         anzeige4.setTextFormat(anzeigeformat);
  95.                         // balken wird proportional zum prozentwert des ladefortschrittes skaliert
  96.                         balken_mc._xscale = prozent;
  97.                 }
  98.                
  99.         }
  100. };

Danke im Voraus
plumpi ist offline   Mit Zitat antworten
Alt 13-10-2005, 14:08   #2 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
AUA!
Zitat:
ActionScript:
  1. _root.onEnterFrame = function () {
  2.         ziel.loadMovie(zielfilm1);
  3.         preloader();
  4. };
damit startest du unaufhörlich immer wieder neue loads in deinen mc! sowas sollte einmalig geschehen, auf keinen fall in einem oEF! (das schlimme dabei ist auch noch, dass die neu gestarteten loads nicht den vorherigen unterbrechen).

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 13-10-2005, 14:10   #3 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
@janoshnosh: Selber AUA . Guck dir mal die Funktion preload an. Da wird der onEnterFrame auf _root überschrieben. Deshalb onEnterFrame, weil so eine funktion
ActionScript:
  1. preload = function()
im Gesatz zu dieser hier
ActionScript:
  1. function preload()
erst einen Frame später im Film verfügbar ist...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 13-10-2005, 14:10   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 25
Danke erstmal,

fällt mir auch gerade auf.

Habe das ganze auch mal mit einem Button versucht. Selbes resultat.

Ich weiss da echt nicht weiter????????????
plumpi ist offline   Mit Zitat antworten
Alt 13-10-2005, 14:18   #5 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
AUAUA sorry! nicht gesehen!
dann also nicht.....

lädtst du die swf von der platte und ist sie vielleicht besonders groß? bei mir wackelt der pc auch immer ordentlich, wenn ich bilder von der platte preloade, weil das so schnell geht glaube ich.... aber ich dachte immer, das wäre, weil es auch viele bilder sind.

denn sonst sieht der code eigentlich fein aus, wenn nicht mal der frager nen fehler gefunden hat (das load im oEF ist echt verdammt verwirrend!)

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 13-10-2005, 14:22   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 25
Das SWF ist 60 MB groß. Ich lade es von der Platte.

Habe es auch schon mit 10 MB großen SWFs versucht. Immer das gleiche Resultat.

Das Preloading funktioniert ja ansich. Habe mir per TRACE, nach dem das SWF vollständig geladen war, die Filmgröße ausgeben lassen und die war korrekt.

Habs auch schon mit Bildern versucht anstatt mit einem Viedeo im FLV Format. Selbes. Bühne Friert ein. Erst nachdem alles komplett geladen wurde läuft alles wieder prima.
plumpi ist offline   Mit Zitat antworten
Alt 13-10-2005, 14:30   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Was läuft denn auf der Bühne bzw. was "friert da ein"???
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 13-10-2005, 14:30   #8 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
und da wunderst du dich? flash muss die 60MB erstmal in den
arbeitsspeicher schaufeln, bevor es abgespielt wird.
solange friert es ein.
michael ist offline   Mit Zitat antworten
Alt 13-10-2005, 14:38   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 25
Auf der Bühne ist folgende Animation:

"loading Movie..." der text blinkt. Beim Laden blinkt er nicht mehr sondern bleibt bei der letzten position stehen.

Zu der Größe:
War auch mein erster Gedanke.

Habe dann ein SWF mit 5 MB genommen, auch hier das gleiche. Ich denke nicht das es an der Größe liegt.

Habe mit Flash5 schon 20 MB-SWF geladen und das ohne Schwierigkeiten.

Hier noch einige Systemdaten: Win XP , AMD Athlon XP 3200+, 1GB Arbeitsspeicher.

Kann das mal einer ausprobieren.

Der Preloader funktioniert mit Copy und Paste. Nur der Name des SWF muss ausgetauscht werden.

Danke
plumpi ist offline   Mit Zitat antworten
Alt 13-10-2005, 14:42   #10 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
"blinkt" - das ist so eine Aussage... Ist das ein Tween oder vielleicht irgendwie über onEnterFrame animiert?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 13-10-2005, 15:03   #11 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 25
Ist ein simpler Tween.

Ich kann den auch weglassen. Ich erhalte ja nichtmal die Ladeanzeigt und die Textfelder.

Habe den Tween auch schon weggelassen. Selbe problem.

Irgendwie glaube ich dass das mit Flash8 zu tun hat.
plumpi ist offline   Mit Zitat antworten
Alt 13-10-2005, 15:21   #12 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
Zitat:
Zitat von plumpi
Habe mit Flash5 schon 20 MB-SWF geladen und das ohne Schwierigkeiten.
auch von cdrom?
also ich hatte das auch früher schon bei cd-projekten.
habe das gelöst indem ich mit screenweaver eine exe mit
splashscreen daraus gemacht hab.
michael ist offline   Mit Zitat antworten
Alt 13-10-2005, 15:29   #13 (permalink)
Neuer User
 
Registriert seit: Nov 2001
Beiträge: 25
Mit Splash-Screen arbeite ich normalerweise auch.

Nur wenn der Film von CD geladen wird, hätt ich halt gerne eine Statusanzeige, damit derjenige weiss, das der Ladevorgang noch von statten geht.

Bei einem Statischen Screen bricht der ja nach 20 sekunden ab, weil er denkt da tut sich nichts.


Aber wie gesagt. es funktioniert ja nicht mal bei kleineren Dateien.

Also stimmt ja was anderes nicht.

Funktionieren den eure Preloader in Flash8???
plumpi ist offline   Mit Zitat antworten
Alt 13-10-2005, 15:36   #14 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
wie gesagt, das problem hatte ich auch schon
in flash6 u. 7 bei großen dateien von CD

preloader nutzen da nichts.
michael 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 19:24 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele