Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-07-2004, 11:22   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 4
Question mehrere setIntervals nacheinander abarbeiten

Hallo, hoffentlich kann mir einer von Euch helfen:

Ich lasse mit setIntevall eine Funktion starten die Objekt a über den Bildschirm bewegt.
Dann möchte ich, dass direkt nach clearInterval die nächste Funktion mit setInterval aufgerufen wird.

Ansich kein Problem - einfach hinter das clearInterval in die Funktion schreiben.

Da ich aber für jede Bewegung die selbe Funktion benutzen möchte, an die dann halt nur der Name des zu bewegenden Objekts, die Richtung und die Länge des Weges übergeben werden, fällt die Möglichkeit weg

Gibt es da irgendeine Möglichkeit, dem Script, das zum ersten mal setInterval aufruft, zu sagen, wann die Intervallschleife beendet ist, damit es erst dann das nächste setIntervall aufruft?

Denn wenn man direkt hinter das setInterval ein weiteres schreibt, wird das ja schon während dem Ablauf des ersten gestartet...

Danke im vorraus
Cykus
cykus ist offline   Mit Zitat antworten
Alt 29-07-2004, 11:36   #2 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 59
wie wäre es mit:

if (objekt._x<=500) {
objekt._x+=10;
} else {
clearInterval (xxxx);
xxx = setInterval (xxxx,xxxx);
}

Geändert von Luigihausen (29-07-2004 um 11:49 Uhr)
Luigihausen ist offline   Mit Zitat antworten
Alt 29-07-2004, 11:58   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 4
Das würde in dem Fall funktionieren, aber wenn ich später im script nur eine Bewegung durchführen muss, kann ich die Funktion nicht mehr gebrauchen, weil sie ja nach dem clearInterval direkt das nächste setInterval aufruft.

Am liebsten wäre es mir, wenn es ne Möglichkeit geben würde, einen festen programmablauf zu haben. in etwa so:

start des filmes - Bewegung 1 - Bewegung 2 - Bewegung 3 - stop
button 1 gedrückt: Bewegung 1 - Bewegung 3
button 2 gecrückt: Bewegung 2

Also ne Möglichkeit, dem Script genau zusagen, ob nach dem clearInterval noch mal eins aufgerufen wird oder das nicht der Fall ist.
cykus ist offline   Mit Zitat antworten
Alt 29-07-2004, 12:29   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 4
Jippieh, hab das Problem gelöst

bis denne
Cykus
cykus ist offline   Mit Zitat antworten
Alt 29-07-2004, 12:37   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 59
dann vielleicht so:

button1 > x=1;
button2 > x=2;
button3 > x=3;

if (objekt._x<=500) {
objekt._x+=10;
} else {
clearInterval (xxxx);
if (x==1) {
xxx = setInterval (xxxx,xxxx);
} elseIf (x==2) {
........
}
}
Luigihausen ist offline   Mit Zitat antworten
Alt 29-07-2004, 12:37   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 59
und wie jetzt?
Luigihausen ist offline   Mit Zitat antworten
Alt 29-07-2004, 12:48   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Beiträge: 4
Code:
function move (parameter, count)
	{
	move_length      = parameter[0];
	objekt           = parameter[1];

	menu_movie[objekt]._y = menu_movie[objekt]._y + ((move_length - menu_movie[objekt]._y)/40) +1;

	if(menu_movie[objekt]._y > move_length){
		clearInterval(move_object);
		new_count = count -1 ;
		if (new_count > 0){
			j=0;
			while(j <= count*2){
				parameter[j] = parameter[j+2];	
				j++;	
			}
			move_object = setInterval(move, "2", parameter, new_count);			
		}
    }
}

move_para = new Array();
move_para[0] = 0;
move_para[1] = "rahmen";
move_para[2] = 100;
move_para[3] = "rahmen";
move_para[4] = 500;
move_para[5] = "rahmen";
move_object = setInterval(move, "2", move_para, "3");

ich übergebe also ein array "parameter" mit den parametern für die bewegung (name des zu verschiebenden objekts und zielwert für _y)
und eine variable "count" mit anzahl der auszuführenden bewegungen.

wenn ein interval fertig ist sieht er anhand von "count", ob noch eine bewegung gemacht werden muss und zieht in diesem fall 1 von count ab, "rückt" die parameter im array nach vorne, sprich überschreibt die parameter der ersten bewegung mit denen der zweiten usw. und startet sich dann wieder neu.
cykus 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 22:51 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele