Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-06-2008, 11:59   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 29
Wink Bilderloop klappt nur beim ersten durchlauf!

Hallo Liebe Flasher,

ich schon wieder! Folgendes Problem hab ich! ich versuche gerade einen dynamischen Bilderloop zu erzeugen wo nebeneinander zwei Bilderloopslaufen sollen! Die sich allerdings während des Abspielens aktualisieren. Das heisst kommt ein neues Bild in den Ordner dazu soll es beim nächsten Durchlauf mitangezeigt werden!

Ich habe jetzt auch schon mal einen Code entwickelt! (allerdings derweil nur für den linken Bildloop aber der rechte sollte ja dann genauso sein)

Jetzt ist es aber so das mein Bilderloop beim ersten mal ohne Probleme abläuft und bei den nächsten Durchgängen die Bilder nicht mehr schön nach einander angezeigt werden und das ganze immer schneller wird! Tja steh wohl etwas am Schlauch aber ich kann mir das irgendwie nicht erklären!

Anbei der Code (anzahl der bilder im code kommen aus einem php script!)
Code:
var bild=2;
var zeit =0;

laden();

function laden() {
	_root.bild=2;
	_root.zeit =0;
	
	var LoadVarObject = new LoadVars();
		LoadVarObject.load("http://localhost/Bildershow/anzahlbilder.php");
		LoadVarObject.onLoad = function(loadSuccess) {
		if (loadSuccess == true) {
			_root.anzahl = this.anzahl;
			verarbeitung();
		}
	};
}
function verarbeitung()
{
	_root.zeit=1000;
	_root.createEmptyMovieClip("kamera_a_1",1);
	_root.kamera_a_1.loadMovie("images/kamera_a/kamera_a_1.jpg");
	_root.kamera_a_1._x =  0;
	_root.kamera_a_1._y =  0;
	setInterval(bildwechsel, _root.zeit)
	
	
}

function bildwechsel ()
{	
	
	_root.createEmptyMovieClip("kamera_a_"+_root.bild,_root.bild);
	_root["kamera_a_"+_root.bild].loadMovie("images/kamera_a/kamera_a_"+_root.bild+".jpg");
	_root["kamera_a_"+_root.bild]._x =  0;
	_root["kamera_a_"+_root.bild]._y =  0;
	
	if (_root.bild==_root.anzahl)
	{
		
		for (var i=1;i<=_root.anzahl;i++)
		{
			unloadMovie(_root["kamera_a_"+_root.i]);
			
		}
		laden();
	}
	else
	_root.bild++;
	
}
Ich hoffe es weiss jemand Rat!

Danke schon mal im vorraus

Liebe Grüße

Kathi
kate018 ist offline   Mit Zitat antworten
Alt 25-06-2008, 15:35   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
Hi,

Du löschst nirgendwo Dein Intervall, aber setzt aber bei jedem "laden();" ein neues, dadurch gibt es immer mehr Intervalle und die Bilder laufen immer schneller...

Das Inteval brauchst Du ja nur ein einziges mal zu starten und beim späteren Aktualisieren, musst Du nur die Parameter ändern, wie viele Bilder es gibt und entsprechend in der Intervall-Methode mit diesen agieren.

Grüße
pape ist offline   Mit Zitat antworten
Alt 26-06-2008, 13:51   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2006
Beiträge: 29
noch nicht ganz gecheckt *gg*

wie genau mach ich denn das ich rufe ja mit hilfe
(setInterval(bildwechsel, _root.zeit)) des intervals die funktion auf???

wie setzt ich das interval nur einmalig und kann trotzdem die funktion mit dem zeitlichen abstand immer wieder aufrufen???

Ich hab jetzt mal versucht das interval zu löschen aber irgendwie macht er da immer noch komische sachen der erste durchlauf läuft wie gehabt einwandfrei beim zweiten bleibt er aber beim ersten bild stehen ewig lange hupft dann kurz aufs letzte und dann wieder aufs erste und so weiter! alles sehr seltsam! anbei der geänderte code:

Code:
var bild=2;
var zeit =0;
var interval=0;
laden();

function laden() {
	_root.bild=2;
	_root.zeit =0;
	
	var LoadVarObject = new LoadVars();
		LoadVarObject.load("http://localhost/Bildershow/anzahlbilder.php");
		LoadVarObject.onLoad = function(loadSuccess) {
		if (loadSuccess == true) {
			_root.anzahl = this.anzahl;
			verarbeitung();
		}
	};
}
function verarbeitung()
{
	_root.zeit=1000;
	_root.createEmptyMovieClip("kamera_a_1",1);
	_root.kamera_a_1.loadMovie("images/kamera_a/kamera_a_1.jpg");
	_root.kamera_a_1._x =  0;
	_root.kamera_a_1._y =  0;
	_root.interval=setInterval(bildwechsel, _root.zeit)
	
	
}

function bildwechsel ()
{	
	
	_root.createEmptyMovieClip("kamera_a_"+_root.bild,_root.bild);
	_root["kamera_a_"+_root.bild].loadMovie("images/kamera_a/kamera_a_"+_root.bild+".jpg");
	_root["kamera_a_"+_root.bild]._x =  0;
	_root["kamera_a_"+_root.bild]._y =  0;
	
	if (_root.bild==_root.anzahl)
	{
		
		for (var i=1;i<=_root.anzahl;i++)
		{
			unloadMovie(_root["kamera_a_"+_root.i]);
			
		}
		clearInterval(_root.interval); 
		laden();
	}
	else
	_root.bild++;
	
}
Liebe Grüße

Kathi

Geändert von kate018 (26-06-2008 um 13:59 Uhr)
kate018 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 19:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele