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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-01-2008, 23:46   #1 (permalink)
Neuer User
 
Benutzerbild von mahimahi
 
Registriert seit: Jan 2008
Beiträge: 7
Arrow loadMovieNum

kann mir bitte bitte jemand sagen wie
ich von meiner datei „film.swf“
auf das bild 3 in der szene „menue“ der datei
„main.swf“ springe?

mein code sieht jetzt so aus:

on (release) {
loadMovieNum ("main.swf", 0);
}

das funktioniert zwar ganz gut
nur auf das bild 3 komme ich
damit noch nicht...
vielen dank im voraus
mahimahi ist offline   Mit Zitat antworten
Alt 24-01-2008, 01:00   #2 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Das geht auch erst dann, wenn nach dem Aufruf der Ladefortschritt soweit ist, dass Bild 3 auch geladen ist.
Ein zwei Zeilen nach dem Aufruf ist das vermutlich noch nicht soweit.

Lösung:
Mittels Preloader (muss ja nicht angezeigt werden, der ist auch für sowas gut) prüfen, ob das entsprechende Bild geladen, also verfügbar, ist und erst dann dort hinspringen.

Gruß
Rena

PS: Ach so ... auf Stufe 0 (also den Hauptfilm ersetzen) laden. Das wird dann nicht funktionieren. Denn damit ist dann auch die Anweisung des ursprünglichen Hauptfilms, beim nächsten auf Bild 3 zu springen weg, eine eventuelle Preloderfunktion im Hauptfilm nach o.g. Prinzip ebenso. Ist ungefähr so, wie wenn du bei 'nem Umzug die Helfer anweist, was sie alles tun sollen aber gleichzeitig den Hausschlüssel wegwirfst und die Tür zu machst.
Besser die externen Filme aus einem "Basisfilm" in Moviclips dort laden (loadMovie statt loadMovieNum) oder wenn in eine Stufe, dann nicht auf 0.
__________________
www.rena-hermann.de

The angels have the phone box

Geändert von rena (24-01-2008 um 01:05 Uhr)
rena ist offline   Mit Zitat antworten
Alt 24-01-2008, 09:36   #3 (permalink)
Neuer User
 
Benutzerbild von mahimahi
 
Registriert seit: Jan 2008
Beiträge: 7
hola, danke für deine antwort...
das mit dem preloader ist eigentilich egal da
das nur offline verwedet wird
ich wüste nur mal gern wie
der loadMovieNum befehl
aussehen könnte??
any idea?

Geändert von mahimahi (24-01-2008 um 09:37 Uhr)
mahimahi ist offline   Mit Zitat antworten
Alt 24-01-2008, 12:15   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
rena hat doch geschrieben, dass das so nicht funzt... loadMovieNum lädt einen Film oder ein Bild und erzeugt eine zusätzliche überflüssige Hauptzeitleiste oder überschreibt die aktuelle Hauptzeitleiste. Direkt nach dem loadMovieNum steht allerdings das geladene Bild oder der geladene Film nicht sofort zur Verfügung, weil das Nachladen halt der Bandbreite entsprechend dauern kann.

Wenn du also im nachgeladenen Film springen willst, musst du das Nachladen erst komplett abwarten. Genau das überwacht ein Preloader. Statt eines loadMovie- oder loadMovieNum-Befehls sollte aber die stabilere MovieClipLoader-Klasse zum Nachladen verwendet werden. Mal als Ansatz:
PHP-Code:
//leeren MC erstellen
this.createEmptyMovieClip("con",1);

//Lauscher-Objekt erstellen
var mclListener:Object = new Object();

//MovieClipLoader-Instanz erstellen
var mcLoader = new MovieClipLoader();

//Lauscher auf die Instanz setzen
mcLoader.addListener(mclListener);

//Film nachladen
mcLoader.loadClip("meinFilm.swf"this.con);

//Film ist geladen und MC wurde befüllt:
mclListener.onLoadInit = function(mc:MovieClip) {
   
//jetzt kann der Sprung in "mc" ausgelöst werden
   
mc.gotoAndStop(10);

Auf das Verwenden mehrerer Szenen solltest du aber generell verzichten, Szenen bereiten in der Praxis immer wieder Probleme. Leg besser alles in MCs der Szene 1.
  Mit Zitat antworten
Alt 24-01-2008, 13:47   #5 (permalink)
Neuer User
 
Benutzerbild von mahimahi
 
Registriert seit: Jan 2008
Beiträge: 7
vielen vielen dank
für die schnelle antwort
das ganze klingt für mich noch sehr kompliziert
und ich finde es seltsam, das man mit
loadmovie auf eine datei springen kann
aber nicht auf ein bestimmtes bild in dieser datei, hmm?
also die bandbreite solte in meinem fall keine rolle spielen
da die datei nur 5kb hat und auf die wird nur lokal zugegriffen
das ganze wird nie im internet veröffentlicht.
aber wie schon gesagt ich werds mal mit dem
loader ausprobieren...
& noch 1x danke für die mühe

Geändert von mahimahi (24-01-2008 um 19:47 Uhr)
mahimahi ist offline   Mit Zitat antworten
Alt 24-01-2008, 20:30   #6 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
loadmovie auf eine datei springen kann
aber nicht auf ein bestimmtes bild in dieser datei, hmm?
Das hast du falsch verstanden: mit einem loadMovie lädst du den Film nach, überprüfst dann mit einem Preloader, ob der Film komplett nachgeladen wurde und kannst dann auf einen bestimmten Frame springen.

Nur hat der loadMovie-Befehl diverse Nachteile, deshalb gibt es die MovieClipLoader-Klasse oder in AS3 die Loader-Klasse.

Zitat:
also die bandbreite solte in meinem fall keine rolle spielen
Die Bandbreite spielt immer eine Rolle, denn selbst bei einer guten Verbindung ist der Film ja nicht in der nächsten Mikrosekunde nachgeladen... Asynchrone Befehle wie loadMovie, loadMovieNum, LoadVars.load etc werden zwar ausgeführt, der Response auf diese Befehle kann aber beliebig lange dauern. Und der Folgebefehl wartet nicht solange mit seiner Ausführung...

Geändert von agedoubleju (24-01-2008 um 20:32 Uhr)
  Mit Zitat antworten
Alt 24-01-2008, 23:12   #7 (permalink)
Neuer User
 
Benutzerbild von mahimahi
 
Registriert seit: Jan 2008
Beiträge: 7
Zitat:
Zitat von agedoubleju Beitrag anzeigen
Das hast du falsch verstanden: mit einem loadMovie lädst du den Film nach, überprüfst dann mit einem Preloader, ob der Film komplett nachgeladen wurde und kannst dann auf einen bestimmten Frame springen.
ok, es klingt logisch!
nur es ist mir noch unklar wie ich überprüfe ob der film fertig ist
und ganz wichtig wie springt man dann auf einen bestimmten frame?

also damit habe ich geschaft auf die erste seite zu kommen weiter leider noch nicht:
on (release) {
loadMovieNum ("main.swf", 0);
}

ps: agedoubleju danke für deine geduld
mahimahi ist offline   Mit Zitat antworten
Alt 24-01-2008, 23:34   #8 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
hw hat's bereits erwähnt: in der Flashhilfe nach MovieClipLoader() suchen.
~pyropete~ ist offline   Mit Zitat antworten
Alt 25-01-2008, 09:22   #9 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
nur es ist mir noch unklar wie ich überprüfe ob der film fertig ist
und ganz wichtig wie springt man dann auf einen bestimmten frame?
Beides habe ich im Script weiter oben doch gezeigt: die MovieClipLoader-Klasse ersetzt den loadMovie. Vom Prinzip her erstellst du eine Instanz der Klasse und hängst einen Lauscher (Listener) an.

Dieser Lauscher "horcht" jetzt die ganze Zeit die Verbindung ab und gibt, wenn das Laden beendet ist, eine Rückmeldung. Diese Rückmeldung erfolgt im onLoadInit-Handler. Wenn diese Funktion gestartet wird, ist der Film nachgeladen.

Innerhalb des Filmes kannst du dann wie gewohnt mit Sprungbefehlen wie gotoAndPlay oder gotoAndStop zu einem anderen Frame springen. Du musst nur einen Objektpfad setzen, damit der Player auch weiß, auf welcher Zeitleiste du springen willst.

Netterweise wird die entsprechende Zeitleisteninstanz aber gleich als Parameter übergeben, denn was da in Klammern steht (nämlich mc) ist die Zeitleiste, in der du springen kannst.

mc.gotoAndStop(10) bedeutet dann eben, dass du in der nachgeladenen Zeitleiste bzw. dem nachgeladenen Film direkt nach dem Laden auf Frame 10 springst.
  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:11 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele