.swf stockt bei dynamischer Galerie

NoGFX

Erfahrenes Mitglied
Ich bin im Moment dabei eine dynamische Slide Galerie zusammen zu schrauben, klappt soweit auch ganz gut, es gibt nur ein kleines Problem:

Ich lasse beispielsweise 20 Bilder laden, sie sind auch soweit alle vollständig geladen, werden richtig eingezeigt etc. - nur wenn ich jetzt die Bilder Slide lasse, fängt das ganze an in regelmäßigen Abständen zu stocken, allerdings das auch nur, bis man das ganze einmal hat durchlaufen lassen, danach läuft es absolut flüssig und ohne jedes Problem.
Ich kann mir wirklich nicht erklären woran es liegt. Es gibt meines erachtens nichts, was es zum Stocken bringen könnte - und das dann auch nur ein einziges mal. Keine Positionsabfrage, nix.

Werde die .fla erstmal nicht posten (ziemlich durcheinander, da nur Prototype) - wenn allerdings niemand auch nur eine Idee hätte, werde ich später nochmal die entsprechende Datei posten.
 
Hi,

wenn Du die .fla nicht postest und auch nichts vom Quellcode zeigst, können wir nur ins Blaue raten.

Wie ordnest Du die Bilder denn an und verschiebst sie? Wenn auf einmal viele Bilder gleichzeitig verschoben werden müssen (z.B. vom linken an den rechten Rand, um dort wieder aufzutauchen), kann es zu einen kleinen Hänger kommen.

Gruß
.
 
Ok, hier dann mal der Code des Ganzen.

AS des Clips für die einzelnen Boxen der Slide-Galerie:
PHP:
var lade = false;
var bewThumb = false;
var geladen = false;
var zeahler = 0;
var bew = false;
var endPic = false;
this.createEmptyMovieClip("frame", 1);
this.createEmptyMovieClip("listener", 2);


frame.beginFill(0xFFFFFF, 5);
frame.lineStyle(1, 0xFFFFFFF, 10);
frame.moveTo(0, 0);
frame.lineTo(450, 0);
frame.lineTo(450, 175);
frame.lineTo(0, 175);
frame.lineTo(0, 0);
frame.endFill();


var cur = 0;
var total = 0;
var max = 0;
thumb_cont._alpha = 0;
thumb_cont.loadMovie("pictures/"+_root.pic[this.id]);
this.onEnterFrame = function() {
	cur = thumb_cont.getBytesLoaded();
	max = thumb_cont.getBytesTotal();
	per = Math.round(cur*100/max);
	preloader.bar._xscale = per;
	if (cur>12 && max>12) {
		if (cur>=max) {
			if (zeahler>=20) {
				geladen = true;
				preloader._alpha += (0-preloader._alpha)/5;
				thumb_cont._alpha += (50-thumb_cont._alpha)/5;
				if (preloader._alpha<=3 && thumb_cont._alpha>=47) {
					lade = true;
					thumb_cont._alpha = 50;
					preloader._alpha = 0;
					delete this.onEnterFrame;
				}
			}
			++zeahler;
		}
	}
};


this.onPress = function() {
	if (lade == true && geladen == true) {
		this.newPos = (112.5+Stage.width/4)-(450*this.id);
		lade = true;
		bew = true;
		_root.toScroll = false;
		this.onEnterFrame = function() {
			if (this.newPos+0.7>_parent._x && this.newPos-0.7<_parent._x) {				
				_parent._x = Math.round(this.newPos);
				listener._x += (50-listener._x)/5;
				thumb_cont._alpha += (100-thumb_cont._alpha)/5;
				if (bewThumb == false)	thumb_cont._y = -listener._x;
				frame.clear();
				frame.beginFill(0xFFFFFF, 5);
				frame.lineStyle(1, 0xFFFFFFF, 10);
				frame.moveTo(0, -listener._x);
				frame.lineTo(450, 0-listener._x);
				frame.lineTo(450, 175+listener._x);
				frame.lineTo(0, 175+listener._x);
				frame.lineTo(0, 0+listener._x);
				frame.endFill();
				maskLayer._height = 174+2*listener._x;
				maskLayer._y = 1-listener._x;
				if (listener._x>=49.5 && thumb_cont._alpha>=97) {
					thumb_cont._alpha = 100;
					endPic = true;
					listener._x = 50;
					frame.clear();
					frame.beginFill(0xFFFFFF, 5);
					frame.lineStyle(1, 0xFFFFFFF, 10);
					frame.moveTo(0, -listener._x);
					frame.lineTo(450, -listener._x);
					frame.lineTo(450, 175+listener._x);
					frame.lineTo(0, 175+listener._x);
					frame.lineTo(0, 0+listener._x);
					frame.endFill();
					maskLayer._height = 174+2*listener._x;
					maskLayer._y = 1-listener._x;
					scrollPicture();
					bewThumb = true;
					if (bewThumb == false) thumb_cont._y = -listener._x;
				}
			} else {
				_parent._x += (this.newPos-_parent._x)/4;
			}
		};
	}
};


this.onRollOut = function() {
	if (bew == true && endPic == true) {
		if (geladen == true) {
			_root.toScroll = true;
			lade = false;
			this.onEnterFrame = function() {
				thumb_cont._alpha += (50-thumb_cont._alpha)/5;
				listener._x += (0-listener._x)/5;
				frame.clear();
				frame.beginFill(0xFFFFFF, 5);
				frame.lineStyle(1, 0xFFFFFFF, 10);
				frame.moveTo(0, -listener._x);
				frame.lineTo(450, 0-listener._x);
				frame.lineTo(450, 175+listener._x);
				frame.lineTo(0, 175+listener._x);
				frame.lineTo(0, 0+listener._x);
				frame.endFill();
				maskLayer._height = 174+2*listener._x;
				maskLayer._y = -listener._x;
				if (listener._x<=0.5 && thumb_cont._alpha<=52) {
					bew = false;
					thumb_cont._alpha = 50;
					listener._x = 0;
					frame.clear();
					frame.beginFill(0xFFFFFF, 5);
					frame.lineStyle(1, 0xFFFFFFF, 10);
					frame.moveTo(0, 0);
					frame.lineTo(450, 0);
					frame.lineTo(450, 175);
					frame.lineTo(0, 175);
					frame.lineTo(0, 0);
					frame.endFill();
					maskLayer._height = 174+2*listener._x;
					maskLayer._y = 1-listener._x;
					delete this.onEnterFrame;
				}
			};
		}
	}
};


function scrollPicture() {
	xSpeed = (maskLayer._xmouse-225)/5;
	ySpeed = (maskLayer._ymouse-70)/2;
	thumb_cont._x -= xSpeed;
	thumb_cont._y -= ySpeed;
	
	
	if (thumb_cont._x>0) thumb_cont._x = 0;
	if (thumb_cont._x<=450-thumb_cont._width) thumb_cont._x = 450-thumb_cont._width;
	if (thumb_cont._y>=-50) thumb_cont._y = -50;
	if (thumb_cont._y<=275-thumb_cont._height) 	thumb_cont._y = 275-thumb_cont._height;
}



AS zum Scrollen des Containers, welche alle Boxen beinhaltet:
PHP:
this.onEnterFrame = function() {
	if (toScroll == true) {
		if (_ymouse>=145 && _ymouse<=435) {
			xSpeed = (_xmouse-Stage.width/2)/5;
			this["bigbox"]._x -= xSpeed;
		}
	}
};
 
Hi,

ich kann nichts erkennen, das auf den ersten Blick das von Dir beschriebene Verhalten provozieren würde. Poste doch bitte mal die komplette Datei, damit ich damit testen kann.

Mir ist im Übrigen nicht ganz klar, warum Du beim onPress "toScroll" auf false setzt, aber nur beim rollOut wieder auf true - was passiert bei einem dragOut bzw. releaseOutside?

die onEnterFrame-Methode beim onPress wird nicht beendet - vielleicht kann man das optimieren.

Gruß
.
 
Mal eine kleine Frage, was passiert bei der Funktion "Save and Compact"?...
Bin eben durch Zufall raufgekommen, seid dem klappt es perfekt.

Es hört sich zumindest danach an, das er die Flashdatei mal aufräumt und alles rauswirft, was nicht gebraucht wird?
 
... genau das macht sie: Soweit ich weiß, kannst Du das in etwa mit einer Defragmentation der Datei vergleichen.


Übrigens: Der Benutzer "nijes" wird von mir unbefristet gesperrt (unerlaubter Doppelakkount), wenn Du mir die identische IP und Thema nicht sehr fix erklärst. ;)
.
.
 
Fixe Erklärung:
der Account war von einem Kollegene, der sich hier kürzlich angemeldet hat.
Habe es auf seinem Rechner getestet und nicht bemerkt, dass ich unter seinem Account poste.
Sorry :-(

Ja, habe ich mir schon gedacht, was ich an der Sache aber dennoch nicht verstehe ist: Ich habe die Datei eigentlich ziemlich sauber gehalten, mal abgesehen von einigem unnötigen Gedöns im AS. Aber solange es klappt, soll es mir auch egal sein ;)
 

Neue Beiträge

Zurück