Anzeige

Nach Preloader MC abspielen?

Nach Preloader MC abspielen? | PSD-Tutorials.de

Erstellt von DaFunsel, 20.07.2009.

  1. DaFunsel

    DaFunsel Guest

    Nach Preloader MC abspielen?
    Guten Abend.
    Ich habe gerade ein totalen Hänger, sitze jetzt ungelogen 24 Stunden an einer Flash-Homepage.
    Ich habe zuvor schon einige Preloader mit eingebaut. Jetzt bin ich an der Startseite, dort habe ich eine Kugel, vor der Kugel ist eine Iris. Es soll nun so sein, das ich in einen MC der auf der Bühne liegt, ein .swf lade, diese .swf ist eine Diashow die in der Kugel angezeigt werden soll. Hinter dem Preloader ligt die Iris, diese soll erst aufgehen, wenn der Preloader 100% von der .swf geladen hat. Danach soll der Preloader ausgeblendet werden.
    Das Laden funktioniert. Aber er zeigt mir keine Prozente an und läd komischerweise noch wärend die Diashow schon abgespielt wird???!!!!
    Wie kann ich das Problem lösen?
    Aufbau:
    Ich habe 7 Ebenen. In dem ersten Bild ist nur ein Preloader für die Inhalte ab Bild 2.
    In Bild 2 habe ich die Kugel, die Iris, eine Maske um den Inhalt nur in der Kugel zu sehen, die anderen Ebenen beinhalten nur unwichtige Dinge.
    Eine Ebene beinhaltet noch ein Stop Befehl ab Bild 2:
    Dann habe ich in Bild 2 dieses hier stehen:
    Code (Text):
    1. [COLOR=#0000ff]this[/COLOR].[COLOR=#0000ff]onEnterFrame[/COLOR] =   [COLOR=#0000ff]function[/COLOR](){
    2.            geladen   =  [COLOR=#0000ff]_root[/COLOR].mc.[COLOR=#0000ff]getBytesLoaded[/COLOR]();
    3.            gesamt    =  [COLOR=#0000ff]_root[/COLOR].mc.[COLOR=#0000ff]getBytesTotal[/COLOR]();
    4.            prozent   =   geladen * 100 / gesamt;
    5.            mc_prozent.[COLOR=#0000ff]text[/COLOR] = [COLOR=#0000ff]Math[/COLOR].[COLOR=#0000ff]round[/COLOR](prozent)+[COLOR=#009900]"   %"[/COLOR];
    6.            [COLOR=#0000ff]if[/COLOR](geladen >= gesamt) {
    7.                       [COLOR=#0000ff]gotoAndPlay[/COLOR]([COLOR=#009900]"iris"[/COLOR]);
    8.                
    9.                      [COLOR=#0000ff]delete[/COLOR] [COLOR=#0000ff]this[/COLOR].[COLOR=#0000ff]onEnterFrame[/COLOR];
    10.                    }
    11. }
    12. mc.[COLOR=#0000ff]loadMovie[/COLOR]([COLOR=#009900]"Dia_Start/Dia_Start.swf"[/COLOR])

    Ich habe in der Animation von der Iris 25 Frames und am Anfang/Ende ein Stop Befehl. Jetzt ist es so, dass der Loader Prozente anzeigt, aber danach wieder anfängt zu laden und die Iris bleibt zu.
    [​IMG]
    Wäre über jede Hilfe sehr dankbar.
    Ich hoffe das Problem ist einigermaßen verständlich, habe echt Kopfbrummen.

    Gruß
     
    #1      
  2. Kerstin77

    Kerstin77 Flashfan

    Dabei seit:
    23.01.2009
    Beiträge:
    205
    Geschlecht:
    weiblich
    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    Hallo,

    vermutlich liegt hier das Problem:

    PHP:
    1. if (geladen >= gesamt) {
    2.    gotoAndPlay("iris");
    3.    delete this.onEnterFrame;
    4. }
    Ist "iris" eine Bildbezeichnung oder der Name des abzuspielenden MCs? Eine Bildbezeichnung sehe ich auf Deinem Screenshot nicht. Wenn es der Name des MCs sein soll, schreib mal:

    PHP:
    1. iris.gotoAndPlay(2);
    Grüße,
    Kerstin
     
    #2      
  3. DaFunsel

    DaFunsel Guest

    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    Ja Super, das klappt schon mal... Vielen Dank.
    Habe den MC "iris" auf der Bühne. Der wird auch abgespielt.
    Ich habe aber das gefühl der Preloader läd nicht richtig. Wenn die Iris sich öffnet fängt die .swf irgendwo in der Mitte an.
    Jetzt ist der Preloader nur noch im Weg, der wird nicht ausgeblentet .. der bleibt bei 100% stehen und die .swf wird abgespielt.

    Gruß
     
    Zuletzt von einem Moderator bearbeitet: 21.07.2009
    #3      
  4. Kerstin77

    Kerstin77 Flashfan

    Dabei seit:
    23.01.2009
    Beiträge:
    205
    Geschlecht:
    weiblich
    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    Wenn Du ihn nicht mehr brauchst, kannst ihn doch einfach löschen:

    PHP:
    1. preloader_mc.swapDepths(100000);
    2. preloader_mc.removeMovieClip();
    Grüße,
    Kerstin
     
    #4      
  5. DaFunsel

    DaFunsel Guest

    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    Hi.
    So einfach kann es sein ... Danke für die Hilfe.
    Ich glaube aber mein Flash spinnt jetzt völlig. Ich habe den Preloader zusammen mit dem dynamischen Textfeld (% Anzeige) zu einem MC convertiert. Habe dem Textfeld auch den Namen zugewiesen, egal wie ich es anspreche, es wird nichts mehr angezeigt. Was ich auch nicht verstehe, das die geladene .swf irgendwo in der Mitte anfängt obwohl er ja angeblich noch läd.

    Gruß
     
    #5      
  6. Kerstin77

    Kerstin77 Flashfan

    Dabei seit:
    23.01.2009
    Beiträge:
    205
    Geschlecht:
    weiblich
    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    Wenn sich das dyn. Textfeld jetzt in einem MC befindet, kannst Du das Textfeld auch nur über den MC ansprechen, also so in etwa:

    PHP:
    1. preloader_mc.dyntext_txt.text = prozent;
     
    #6      
  7. DaFunsel

    DaFunsel Guest

    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    Hui.. Danke :)
    Mhhh ... Das funzt, das wundert mich aber das es mit der alten Variante nicht geht, habe im Netz zum Thema Prelaoder ne Source gefunden wo der Taxt genauso angesprochen wird, wieso klappt das da aber nicht bei meiner Datei? Der Aufbau war der selbe...
    Aber mein Loader muss ja auch iwo was falsch machen, er läd zwar bis 100% dann geht die Iris auf, die .swf wird angezeigt ist aber schon fast einmal durchgelaufen. Das heißt er rechnet doch falsche Prozentwerte zusammen, weil er soll ja die .swf erst abspielen wenn er sie 100% geladen hat aber er fängt ja schon bei geschätzten 30% an sie abzuspielen.
    Gruß
     
    Zuletzt von einem Moderator bearbeitet: 21.07.2009
    #7      
  8. Kerstin77

    Kerstin77 Flashfan

    Dabei seit:
    23.01.2009
    Beiträge:
    205
    Geschlecht:
    weiblich
    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    Hab die Vermutung, das die externe swf gestreamt wird (und somit schon begonnen wird diese abzuspielen, auch wenn sie noch nicht 100% geladen ist).

    Habe allerdings mit loadMovie / AS2 allgemein schon länger nichts mehr gemacht, könntest Du die Datei mal anhängen, dann schaue ich es mir an?

    Kerstin
     
    #8      
  9. DaFunsel

    DaFunsel Guest

    Nach Preloader MC abspielen?
    #9      
  10. DaFunsel

    DaFunsel Guest

    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    So ich habe nochmal ein wenig gebastelt.
    Das Problem mit dem Prelaoder bleibt dennoch.
    Des weiteren verstehe ich eine Sache schon wieder nicht.
    Ich habe in 2 Bildern die übereinander liegen folgende Scripte

    Ebene 3; Bild 2

    Code (Text):
    1.  
    2. this.onEnterFrame =   function(){  
    3.    this.zentrale_ani.zentrale.position.text = "Home";
    4.    
    5.    geladen   =  _root.mc.getBytesLoaded();
    6.    gesamt    =  _root.mc.getBytesTotal();
    7.    prozent   =   geladen * 100 / gesamt;
    8.    preloader.mc_prozent.text = Math.round(prozent)+"   %";
    9.  
    10.    this.zentrale_ani.zentrale.status.text = "Loading";
    11.    
    12.    if(geladen >= gesamt && geladen > 20) {
    13.       iris.gotoAndPlay(2);
    14.       this.zentrale_ani.zentrale.status.text = "Playing";
    15.       delete this.onEnterFrame;
    16.       this.preloader._visible = false;
    17.      
    18.    
    19.    }
    20. }
    21. mc.loadMovie("Dia_Start/Dia_Start.swf")
    22.  
    Ebene 2; Bild 2

    Code (Text):
    1.  
    2. Home.onPress = function() {
    3.  
    4.     iris.gotoAndPlay("51")
    5.    
    6.     mc.loadMovie("Dia_Start/Dia_Start.swf");
    7.  
    8.     this.zentrale_ani.zentrale.position.text = "Home";
    9.  
    10.     ladestatus();
    11. };
    12.  
    13. preloader._visible = false;
    14.  
    15. ladestatus = function () {
    16.  
    17.     preloader.onEnterFrame = function() {
    18.        
    19.         geladen = _root.mc.getBytesLoaded();
    20.         gesamt = _root.mc.getBytesTotal();
    21.        
    22.         if (geladen>=10) {
    23.            
    24.             preloader._visible = true;
    25.            
    26.             prozent = Math.round(geladen/gesamt*100);
    27.            
    28.             preloader.mc_prozent.text = Math.round(prozent)+"   %";
    29.            
    30.             this.zentrale_ani.zentrale.status.text = "Loading";
    31.            
    32.            
    33.             if(geladen >= gesamt && geladen > 20) {
    34.                
    35.                 preloader._visible = false;
    36.                
    37.                 _root.iris.gotoAndPlay(2);
    38.                
    39.                 this.zentrale_ani.zentrale.status.text = "Playing";
    40.                
    41.                 delete this.onEnterFrame;            
    42.            
    43.             }
    44.         }    
    45.     };
    46. };
    47.  
    Ich habe die Aktionen auch schon ohne "this" etc. versucht.
    Er zeigt mir am Anfang im dynamischen Textfeld an, dass er läd, dann wenn er fertig ist, das er es abspielt.
    Klicke ich jedoch auf den "Home" Button, dann läd er zwar die .swf neu aber bleibt wärend des Ladens auf "Playing" stehen.

    Habe hier auch noch mal die erweiterte .fla.
    Hat sich einiges getan.
    File-Upload.net - Start.fla

    Gruß
     
    #10      
  11. Kerstin77

    Kerstin77 Flashfan

    Dabei seit:
    23.01.2009
    Beiträge:
    205
    Geschlecht:
    weiblich
    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    Hi,

    hat ein wenig gedauert, aber (ohne in Deine neue Datei reinzuschauen) hab ich folgende Lösung:


    • im ersten Frame des nachzuladenden swf's ein stop(); einfügen
    • der Preloader in Deiner Hauptdatei im ersten Frame ist völlig nutzlos, kannste löschen (denn der wird ja erst angezeigt, nachdem die Datei geladen wurde)
    • und anstatt loadMovie nimm besser MovieClipLoader
    PHP:
    1. stop();
    2.  
    3. var mcLoader:MovieClipLoader = new MovieClipLoader();
    4. var listener:Object = new Object();
    5. listener.onLoadProgress = function():Void {
    6.     prozent = bytesLoaded * 100 / bytesTotal;
    7.     preloader.mc_prozent.text = Math.round(prozent)+" %";
    8. }
    9. listener.onLoadComplete = function():Void {
    10.     preloader.swapDepths(100000);
    11.     preloader.removeMovieClip();
    12.     iris.gotoAndPlay(2);
    13.     mc.gotoAndPlay(2);
    14. }
    15. mcLoader.addListener(listener);
    16. mcLoader.loadClip("Dia_Start.swf", mc);
    Grüße,
    Kerstin
     
    Zuletzt bearbeitet: 22.07.2009
    #11      
  12. DaFunsel

    DaFunsel Guest

    Nach Preloader MC abspielen?
    AW: Nach Preloader MC abspielen?

    Hallo.
    Vielen Dank für die Mühe. Ich verstehe aber jetzt nicht ganz genau was ich machen soll. Kann sein das ich jetzt ein wenig verwirrt bin, weil ich ja einiges vorgearbeitet habe. Wäre villeicht sinnvoll, wenn du dir meine neue Datei angucken könntest. Habe mir zwar die alte Datei nochmal angeguckt, aber finde keine Verbindung.
    Vom Prinzip her soll es ja so sein, dass wenn man auf einen Button klickt, er die Iris schließt, den dazugehörigen Film läd, den Preloader anzeigt und im Panel in dem dynamischen Textfeld anzeigt (Loading bzw. Playing), dann wieder Iris auf sobald geladen.
    Aber es soll am Anfang der Film automatisch starten, auch mit Loader etc.

    EDIT:
    Habe es nun doch rausbekommen, ein doofer Fehler, warum auch 2 Schlüsselbilder verwenden, wenn es auch mit einem geht :p
    Sieht jetzt so aus:
    Code (Text):
    1.  
    2. this.onEnterFrame =   function(){  
    3.    
    4.    preloader._visible = true;
    5.    this.zentrale_ani.zentrale.position.text = "Home";
    6.    
    7.    geladen   =  _root.mc.getBytesLoaded();
    8.    gesamt    =  _root.mc.getBytesTotal();
    9.    prozent   =   geladen * 100 / gesamt;
    10.    preloader.mc_prozent.text = Math.round(prozent)+"   %";
    11.  
    12.    this.zentrale_ani.zentrale.status.text = "Loading";
    13.    
    14.    if(geladen >= gesamt && geladen > 20) {
    15.       iris.gotoAndPlay(2);
    16.       this.zentrale_ani.zentrale.status.text = "Playing";
    17.       delete this.onEnterFrame;
    18.       this.preloader._visible = false;
    19.      
    20.    
    21.    }
    22. }
    23. mc.loadMovie("Dia_Start.swf")
    24.  
    25.  
    26.  
    27.  
    28.  
    29. Home.onPress = function() {
    30.  
    31.     iris.gotoAndPlay("51")
    32.    
    33.     mc.loadMovie("Dia_Start.swf");
    34.  
    35.     zentrale_ani.zentrale.position.text = "Home";
    36.  
    37.     ladestatus();
    38. };
    39.  
    40. Booth.onPress = function() {
    41.  
    42.     iris.gotoAndPlay("51")
    43.    
    44.     mc.loadMovie("Booth.swf");
    45.  
    46.     zentrale_ani.zentrale.position.text = "Booth";
    47.     zentrale_ani.zentrale.description.text ="Wonderful time of work with great engineers, designers, artists and musicians at the Frankfurt music fair!";
    48.     ladestatus();
    49. };
    50.  
    51. Beau.onPress = function() {
    52.  
    53.     iris.gotoAndPlay("51")
    54.    
    55.     mc.loadMovie("Beau.swf");
    56.  
    57.     zentrale_ani.zentrale.position.text = "Beau";
    58.     zentrale_ani.zentrale.description.text = "My beloved daughter Lotte, My son Nils and my son Manu!";
    59.     ladestatus();
    60. };
    61.  
    62. Time_Machine.onPress = function() {
    63.  
    64.     iris.gotoAndPlay("51")
    65.    
    66.     mc.loadMovie("Time_Machine.swf");
    67.  
    68.     zentrale_ani.zentrale.position.text = "Time Machine";
    69.     zentrale_ani.zentrale.description.text = "Musicians, Here are my old  companions!"
    70.     ladestatus();
    71. };
    72.  
    73. New_Artist.onPress = function() {
    74.  
    75.     iris.gotoAndPlay("51")
    76.    
    77.     mc.loadMovie("New_Artist.swf");
    78.    
    79.     zentrale_ani.zentrale.position.text = "New   Artist";
    80.     zentrale_ani.zentrale.description.text = "Here I am introduceing a great new artist. Mister Marc Seefried and his fantastic work.contact: seefried@gmx.de";
    81.     ladestatus();
    82. };
    83.  
    84. Guestbook.onPress = function() {
    85.  
    86.     iris.gotoAndPlay("51")
    87.     gotoAndPlay("3")
    88. };
    89.  
    90. preloader._visible = false;
    91.  
    92. ladestatus = function () {
    93.  
    94.     preloader.onEnterFrame = function() {
    95.        
    96.         geladen = _root.mc.getBytesLoaded();
    97.         gesamt = _root.mc.getBytesTotal();
    98.        
    99.         if (geladen>=10) {
    100.            
    101.             preloader._visible = true;
    102.            
    103.             prozent = Math.round(geladen/gesamt*100);
    104.            
    105.             preloader.mc_prozent.text = Math.round(prozent)+"   %";
    106.            
    107.             zentrale_ani.zentrale.status.text = "Loading";
    108.            
    109.            
    110.             if(geladen >= gesamt && geladen > 20) {
    111.                
    112.                 preloader._visible = false;
    113.                
    114.                 _root.iris.gotoAndPlay(2);
    115.                
    116.                 zentrale_ani.zentrale.status.text = "Playing";
    117.                
    118.                 delete this.onEnterFrame;            
    119.            
    120.             }
    121.         }    
    122.     };
    123. };
    124.  
    Gruß
     
    Zuletzt von einem Moderator bearbeitet: 23.07.2009
    #12      
Seobility SEO Tool
x
×
×