Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-08-2003, 09:02   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 12
loadMovie und stop()

Hi,

ich möchte mittels loadMovie ein externes Flash laden, dieses soll aber erst dann anfangen zu laufen, wenn eine gewisse Anzahl von Bytes geladen wurden. Also eigentlich ein klassisches Preloding. Momentan sieht das so aus:

ActionScript:
  1. this.createEmptyMovieClip ("mov", 1);
  2. this.mov.loadMovie("http://meinedomain.com/test2.swf");
  3. this.mov.stop();
  4.  
  5. this.onEnterFrame =function ()
  6. {
  7.    /*
  8.      Wenn genügend Bytes geladen sind,
  9.      wird this.mov.play() aufgerufen
  10.   */
  11. }
Dummerweise wird das Movie die ganze Zeit über abgespielt. Muss ich das evtl. mit einer weiteren Zeitleiste realisieren?

Irgendwie stehe ich da auf dem Schlauch.

Gruss,
Dirk
Dirk Olbertz ist offline   Mit Zitat antworten
Alt 12-08-2003, 09:41   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,


setz doch einfach im zu ladenden Film ein stop() auf den ersten Frame...

Oder schreib ins onEnterFrame:

ActionScript:
  1. this.onEnterFrame =function () {
  2.     if(this.mov.getBytesLoaded() < this.mov.getBytesTotal()) {
  3.         this.mov.gotoAndStop(1);
  4.     } else {
  5.          this.mov.play();    }
  6. }

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 12-08-2003, 09:49   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 12
Das mit gotoAndStop(1) hat leider nicht funktioniert.

Auf die externen Flashs habe ich leider nicht immer einen Einfluss, deshalb kann ich dort kein Stop einbauen.

Bevor ich noch weiter rumexperimentiere, würde ich auch gerne wissen, _warum_ es nicht funktioniert?

Gruss,
Dirk
Dirk Olbertz ist offline   Mit Zitat antworten
Alt 12-08-2003, 10:02   #4 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
das hängt davon ab, wie dein einzuladendes Movie aussieht.
Das this.mov.stop(); direkt nach dem loadMovie klappt meistens nicht, da es quasi gelöscht wird, sobald das Movie geladen ist.

Dass gotoAndStop(1) nicht funktioniert liegt vermutlich daran, dass im swf die Animation nicht auf der HZL stattfindet, sondern in einem MC im ersten Frame...D.h., das Teil steht ohnehin auf dem ersten Frame. Du müsstest also den Instanznamen des MCs kennen, der dort liegt und ihn bitten, zu stoppen...
also this.mov.meinmc.stop();

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 12-08-2003, 10:29   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 12
Das ist ja ein Mist. Gibt es da nicht sowas wie einen generisch Namen oder eine Instanznummer, auf die man da zurückgreifen kann?

Und wieso funktioniert ein this.mov.stop() nicht, was ja den gesamten Film anhalten soll, aber ein untergeordnetes this.mov."meinmc".stop() soll funktionierten?

AS ist doch eine komische Sprache :-)))

Gruss,
Dirk
Dirk Olbertz ist offline   Mit Zitat antworten
Alt 12-08-2003, 10:46   #6 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Du kannst mittels for(vars in this.mov) { trace(vars); } sehen, welche Variablen, Objekte etc. dort rumliegen.
Mit trace(eval(vars) instanceof MovieClip); siehst du, ob es sich um einen MC handelt (du kannst auch typeof verwenden).

Das spuckt dir dann den Namen aus. Damit sollte es dann gehen (wenn nicht mehrere MCs dort rumliegen)...

this.mov.stop(); stoppt eben nicht den gesamten Film, sondern nur genau die angesprochene Zeitleiste. Die wird mit Sicherheit auch gestoppt, darin liegende MCs allerdings nicht.

Wieso kennst du eigentlich den Aufbau der swf nicht?

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 12-08-2003, 11:09   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 12
Dann werde ich mal weiter experimentieren...

Im Moment kenne ich den Aufbau, da es sich ja um meine Test-SWF handelt. Spätere SWF sollen aber auch von Dritten kommen können, und deshalb möchte ich eine möglichst generische Lösung haben.
Dirk Olbertz ist offline   Mit Zitat antworten
Alt 12-08-2003, 11:15   #8 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
und? wie sieht dein swf aus? ist da nun ein MC, oder nicht?

naja, löblich, löblich, generische Lösungen sind natürlich immer toll.

Aber prinzipiell müsstest du jeden MC, den du findest, stoppen. Nur welchen MC musst du danach starten, damit der Film läuft...
Das findest du schätzungsweise nie heraus.

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 12-08-2003, 11:16   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 12
So, habe Deine traces mal eingebaut. Die einzige Variable, die es dort gibt ist "r" und das ist auch keine Instanz von MovieClip.

Bei diesem Test-Flash handelt es sich um einen QuickTime-Movie, dass ich importiert und dann abgespeichert habe.

Aber auch ein Zugriff über this.mov.r.stop() bringt nichts - kann ja auch nicht, wenn es kein MovieClip ist.

Wie kriege ich dieses verdammte Flash nun dazu anzuhalten? Ist ja zum verrückt werden...

Gruss,
Dirk
Dirk Olbertz ist offline   Mit Zitat antworten
Alt 12-08-2003, 12:03   #10 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
hmm, da bin ich auch überfragt...
d.h., in dem swf liegt nur ein video in der hzl?
das müsste doch zu stoppen sein...

grüße
sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 12-08-2003, 12:59   #11 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 12
So, jetzt geht es mit this.mov.stop(). Der Unterschied ist jetzt nur, dass ich diesen Aufruf auch in die onEnterFrame-Funktion eingebaut habe. Das Aufrufen von stop() direkt nach dem load hat tatsächlich nichts gebracht. Aber nun teste ich in onEnterFrame, ob schon genügend geladen wurde und starte den Film dann. Wenn nicht, rufe ich nochmal stop() auf.

Das führt jetzt endlich zu dem gewünschten Verhalten. Puuh. Das hat ja ganz schön lange gedauert :-)

Gruss und Danke,
Dirk
Dirk Olbertz ist offline   Mit Zitat antworten
Alt 12-08-2003, 13:10   #12 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
na, ist doch schön.

Aber warum hat dann this.mov.gotoAndStop(1); nix gebracht?

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 12-08-2003, 13:43   #13 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 12
Wahrscheinlich, weil ich es auch nur direkt nach dem loadMovie aufgerufen hatte und nicht mehr im onEnterFrame. So wie Du das vorgeschlagen hattest, konnte ich es nicht machen, da noch ein paar andere Berechnungen in onEnterFrame gemacht werden müssen. Eine davon auch nur einmal, etc..

Ich war fälschlicherweise davon ausgegangen, dass das stop() oder gotoAndStop(1) nach dem loadMovie funktionieren müsste. Tut es aber nicht. Genausowenig kann ich nach dem loadMovie direkt die Grösse der Datei auslesen, etc.. Das musste ich auch in onEnterFrame machen.

Naja, wieder was gelernt :-)

Gruss,
Dirk
Dirk Olbertz 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 21:32 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele