Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-10-2004, 13:24   #1 (permalink)
flashing
 
Registriert seit: Oct 2004
Beiträge: 37
Von SWF nach SWF

Hi, kurze Frage:

wenn ich von einem Flashfilm in einer php-seite mit load() einen anderen Flashfilm (komplette SWF-Datei) lade, wird der dann nur dazu geladen, oder richtig ausgetauscht?
fragezurseite ist offline   Mit Zitat antworten
Alt 09-10-2004, 13:36   #2 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Moin,

wenn man einen Film mit loadMovie() lädt, wird er immer in den Speicher des Client geladen und bleibt auch solange da, bis man ihn mit unloadMovie() entlädt.

Wenn du nun auf _level10 eine swf1 hast und dann mit loadMovieNum() eine swf2 auf Ebene 10 lädst, dann wird der vorherige Film (swf1) von der Bühne entfernt und der neue (swf2) kommt dahin.
Der vorherige (swf1) verbleibt dann im Speicher.
Lädst du nun erneut den ersten Film (swf1) wieder auf level10, dann wird swf2 entfernt und swf1 erscheint. Allerdings ist swf 1 direkt da und muss nicht neu geladen werden, da er sich noch im Speicher befindet.

Yves
  Mit Zitat antworten
Alt 09-10-2004, 14:40   #3 (permalink)
flashing
 
Registriert seit: Oct 2004
Beiträge: 37
Aha und kann es vorkommen das die swf1 die swf2 in der Ausführung behindern kann? Weil sie z. B. darüber liegt?

Ich habe nämlich in der swf1 einen Preloader gebaut der dann swf2 ladet, swf2 wird zwar geladen und angezeigt, funktioniert aber nicht richtig! Ladet man nur swf2, klappts...
fragezurseite ist offline   Mit Zitat antworten
Alt 09-10-2004, 14:58   #4 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Zitat:
Zitat von fragezurseite
Aha und kann es vorkommen das die swf1 die swf2 in der Ausführung behindern kann? Weil sie z. B. darüber liegt?
Wenn man swf 1 und swf2 so lädt…

PHP-Code:
//Actionscript 1.0
container.loadMovieNum('swf1.swf',1);
container.loadMovieNum('swf2.swf',2); 
Dann sind beide Instanzen auf der Bühne und müssen auch mit _level1 bzw _level2 angesprochen werden.

Hierbei liegt allerdings swf2 über swf1, was dazu führt, das swf1 eventuell nicht gesehen wird. Aber ansprechen kann man diese trotzdem! Probleme sollte es da nicht geben.


Zitat:
Zitat von fragezurseite
Ich habe nämlich in der swf1 einen Preloader gebaut der dann swf2 ladet, swf2 wird zwar geladen und angezeigt, funktioniert aber nicht richtig! Ladet man nur swf2, klappts...
Ich würde in diesem Fall in der swf1 den Befehl verwenden…

PHP-Code:
//Actionscript 2.0
var newDepth=getNextHigherLevel();
this.loadMovieNum('swf2.swf'newDepth);
/*getNextHigherLevel() eventuell falscher Funktionsname… schau mal in der AS Referenz von MX 2004!*/ 
Dann wird die swf2 auf jedenfall über die swf 1 geladen und nicht „in den Preloader“… da dieser ja sonst mitten drin abbricht, soviel ich weiß.

Wenn dann in der swf1 geladen>=gesamt ist und ergo die swf2 geladen sein sollte, kannst du swf1 entfernen bzw. unsichbar machen.

PHP-Code:
//Actionscript 1.0
this._visible=false;
//Bzw.
this.unloadMovie(); 
Die swf2 müsstest du dann mit newDepth.play(); zb abspielen können.

Alternativ kannst du natürlich auch newDepth=2000; setzen oder irgendein Level, das bekanntermaßen über swf1 liegt. Oder den Wert direkt einsetzen.

Aber am besten, du postet mal dein Script bzw Fla.


LIebe Grüße

Yves
  Mit Zitat antworten
Alt 09-10-2004, 15:05   #5 (permalink)
flashing
 
Registriert seit: Oct 2004
Beiträge: 37
Super, das werd ich gleich mal ausprobieren, Danke!

Hier übrigens der Code der swf1:

Code:
loader.autoLoad = false;
loader.contentPath = "swf2.swf";
pbar.source = loader;
loader.load();
pbar ist der Instanzenname für die ProgressBar aus den UI-Komonenten.
fragezurseite ist offline   Mit Zitat antworten
Alt 09-10-2004, 15:58   #6 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Hi,

dein Code sieht so aus, wie eine MX2004 Komponente zum preloaden… deutest du ja auch an…

Da hab ich keine Ahnung von, da ich diese Dinge nicht nutze… ich schreibs immer von Hand…

Sowas in der Art…

PHP-Code:
//Actionscript 1.0
MC.onEnterFrame=function()
        {
        var 
total=Math.round(this.getBytesTotal()); 
        var 
current=Math.round(this.getBytesLoaded());
        var 
percent=Math.round((current/total)*100);

        if (
percent>&& current>=total
            {
            
//Aktion
            
delete this.onEnterFrame;
            }
        } 
  Mit Zitat antworten
Alt 09-10-2004, 16:02   #7 (permalink)
flashing
 
Registriert seit: Oct 2004
Beiträge: 37
So in etwa habe ich das auch immer gemacht, ich wollte es halt nur mal mit der neuen Komponente ausprobieren, wegen des schönes Designs, na ja ich probier halt noch ein bißchen...
fragezurseite ist offline   Mit Zitat antworten
Alt 09-10-2004, 16:04   #8 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Selbermachen

Yves
  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 11:12 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele