loadMovie und attachMovie

flashsi

Erfahrenes Mitglied
Hallo Leute,

kann mir jemand erklären, warum folgendes nicht funktioniert:

ich lade per loadMovie eine .swf in einen MC namens leinwand. Nach einer Weile lade ich in den selben MC leinwand mit attachMovie auf Level 10 einen anderen MC aus der Bibliothek.

Sollte er nicht einfach den vorigen MovieClip überschreiben?


Schöne Grüsse
 
Hi.
Zeig mal bitte den Code, mit dem du das machst. attachMovie hängt ja im Prinzip einen Movieclip an einen anderen ran (attach = ranhängen). Wenn du also jetzt leinwand.attachMovie("meineInstanz") machst, wird das nicht leinwand ersetzen, sondern einen MC in leinwand erstellen (der 2te Parameter von attachMovie ist dann der Instanzname dieses neuen MCs, lässt man ihn leer kommt nen Error).

Auch _root.attachMovie("blubb", "leinwand", _root.getNextHighestDepth()); wird nicht so einfach gehen, da der alte MC nicht überschrieben wird. Du solltest also erstmal die alte leinwand löschen und dann mit der zuletzt geposteten Variante von attachMovie deinen MC einladen.

Gruß
jens
 
Code:
leinwand.attachMovie("foto0", "foto00", 10);

v = setInterval(neueswf, 3000);

function neueswf() {
	clearInterval(v);
	loadMovie("foto1.swf", leinwand);
}

taster.onPress = function() {
	clearInterval(v);
	leinwand.unloadMovie("foto1.swf");
	leinwand.attachMovie("foto0", "foto00", 10)
}

Das funktioniert leider nicht. Aber wenn ich einen zweiten MC auf die Bühne setzte mit leinwand2

Code:
taster.onPress = function() {
	clearInterval(v);
	leinwand.unloadMovie("foto1.swf");
	leinwand2.attachMovie("foto0", "foto00", 10)
}

läuft es problemlos. d.h. irgendwie verschwindet nach dem Aufruf setInterval der leinwand MC, oder?
 
Zuletzt bearbeitet von einem Moderator:
Schau mal die mit ! markierten Stellen.

Code:
leinwand.attachMovie("foto0", "foto00", 10); // !

v = setInterval(neueswf, 3000);

function neueswf() {
	clearInterval(v);
	loadMovie("foto1.swf", leinwand);
}

taster.onPress = function() {
	clearInterval(v);
	leinwand.unloadMovie("foto1.swf");
	leinwand.attachMovie("foto0", "foto00", 10); // !
}

Es gibt also zum Zeitpunkt von onPress bereits den MC, den du anhängen willst. Es kann sein, dass Flash ihn trotzdem erstellt - es aber Konflikte mit den Instanznamen gibt und du den neuen MC nicht ansprechen kannst. Was willst du denn genau erreichen - sollen beide MCs parallel existieren, der neue innerhalb der eingeladen swf oder soll der neue die swf ersetzen?

Außerdem: loadMovie("foto1.swf", leinwand); ist veraltet, benutz lieber leinwand.loadMove("foto1.swf");
 
Zuletzt bearbeitet:
Auch wenn ich ihm einen neuen Instanznamen gebe funktioniert es nicht.

Ich möchte verschiedene MC nacheinander laden. Und hatte sie eigentlich in meinem Projekt drin. Aber das es einige Bilder sind, wollte ich sie per loadMovie einladen, bis auf den ersten, damit der gleich erscheint. Somit habe ich ihn per attachMovie geladen. und die anderen werden nach und nach in einem bestimmten Intervall geladen.

Wenn ich die Taste gleich zu Anfang drücke, kommt funktioniert es aber. Komisch.
 
Auch wenn ich ihm einen neuen Instanznamen gebe funktioniert es nicht.

Wer ist 'er'? Es scheint so, als würde das Laden einer swf in einen MC einige funktionien blockieren, auch wenn man ihn wieder entlädt. Mehr dazu hier

Wieso müssen die denn so umbedingt in einem MC sein? Vielleicht reichen ja 2 MCs (einer leinwand, einer foto00) in einem weiteren, übergeordneten MC?
 
Zuletzt bearbeitet:
Zurück