Flash hängt sich auf nach 16.000 Frames

knallbernd

Erfahrenes Mitglied
Hallo,
ich mache grad einen ziemlich langen Flash-movie, und nach 16.000 Frames hängt sich die Zeitleiste auf, d.h. ich kann keine Keyframes mehr setzen und wenn, sind sie leer.
Das ganze schaut auch ein bisschen corrupted aus. Hat da wer Erfahrung, bzw. Lösungsvorschläge?
 
Hi,

mag sein, dass Du da an eine natürliche Grenze stößt. ^^

Vorschlag: Teile Deinen Film in mehrere SWF-Dateien auf und lade im letzten Frame den jeweils nächsten mit loadMovieNum in die unterste Stufe (0).

Gruß
.
 
Funktioniert das auch reibungslos?
Kannst du mir nur kurz betreffende Codezeile schicken. Wie du merkst arbeite ich schon ziemlich lange an dem Projekt, und jetzt passiert auch noch sowas!
 
Kommt drauf an, ob es sich um eine Offline-Anwendung handelt, die z.B. von CD gestartet wird, oder ob das ganze Online stehen soll.

Im ersten Fall sollte folgendes genügen:
PHP:
// im letzten Frame;
loadMovieNum("film2.swf", 0);

Andernfalls solltest Du den nächsten Film im Hintergrund laden. Dazu muss sich der erste Film am besten schon in einem Container befinden. Wenn nötig, poste ich dazu noch eine Anleitung, aber vielleicht hilft Dir der erste Vorschlag schon.

Gruß

P.S.: Wenn es sich um eine "statische" Animation handelt, die wie ein Film abläuft (davon gehe ich bei dieser Frameanzahl aus), wäre es vielleicht sinnvoller, die einzelnen Teile in einem Videoformat zu exportieren und dann mit einer Videobearbeitungssoftware zusammenzuschneiden. ;)
.
 
Nein, nämlich genau zweiteres ist der Fall. Das ganze geht online (an und für sich schon ein Irrsinn).
Ich wär dir sehr dankbar wenn du mir eine 'Anleitung' schicken könntest wie ich das zweite Movie im Hintergrund lade.
 
Warte mal, da fällt mir noch was ein!
Ich könnte doch einfach am Ende ein stop setzten, und dann einfach einen MC aus der Library reinladen, oder?
Allerdings hab' ich während des ganzen Videos eine Navigation, kann ich dann auch zu Frames dieses 'angehängten' Movies springen?
 
Hi,

hier mal ein Beispiel mit zwei Containern. Erstelle eine "index.fla" mit diesem Code:
Code:
var filme = new Array("film1.swf", "film2.swf", "film3.swf");

var current = 0;

var ct1 = this.createEmptyMovieClip("ct1", 1);
var ct2 = this.createEmptyMovieClip("ct2", 2);

ct1._visible = false;

firstMovie();

function firstMovie() {
	ct1._visible = false;
	var ct = ct1.createEmptyMovieClip("ct", 1);
	ct.loadMovie(filme[current]);
	ct1.onEnterFrame = function() {
		ct.stop();
		if (ct.getBytesLoaded() > 0 && ct.getBytesLoaded() >= ct.getBytesTotal()) {
			delete this.onEnterFrame;
			nextMovie();
		}
	}
}
	

function nextMovie() {
	if (current >= filme.length) return;
	var lct = (current % 2 == 0)? ct2 : ct1;
	var pct = (current % 2 == 0)? ct1 : ct2;
	lct._visible = false;
	pct._visible = true;
	pct.ct.play();
	var ct = lct.createEmptyMovieClip("ct", 1);
	ct.loadMovie(filme[current + 1]);
	lct.onEnterFrame = function() {
		this.ct.stop();
	}
	pct.onEnterFrame = function() {
		if (this.ct._currentframe >= this.ct._totalframes) {
			current ++;
			if (current < filme.length) {
				nextMovie();
			} else {
				this.ct.stop();
				delete this.onEnterFrame;
			}
		}
	}
}
In das Array am Anfang kommen nun die Pfade zu deinen Filmen. Während einer läuft, wird der nächste im Hintergrund vorgeladen. Dieses Beispiel funktioniert nur, wenn das Laden der Filme nicht länger dauert als das Abspielen. ;)

Gruß
.
 
Hey!
Hast da ja was feines zusammengezaubert!
Allerdings wird hiermit das angesprochene Problem mit der Navigation nicht zu lösen sein.
Ich glaub' die einfachste Lösung ist wirklich einfach ein Frame am Ende, wo ich einen MC reinpacke mit dem zweiten Teil des Movies.
Flash hat übrigens wirklich eine Limitierung auf 16.001 Frames.
Man lernt nie aus...
 
Zurück