Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-09-2006, 10:54   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 34
Funktion mit setinterval mehrfach ausführen

Ich hab mit Hilfe der Suchfunktion leider nichts gefunden, deswegen hoffe ich das mir so einer helfen kann.
Ich hab eine Funktion "bewegen" die mir MC über die Bühne bewegen soll. Die Bewegung erfolgt über setInterval. Solange ich nur eine "Instanz" die Function aufrufe klappt auch alles wunderbar, wenn ich aber versuche mehrere MC gleichzeitig zu bewegen functioniert das stoppen nicht mehr.
Hier mal der Code:
Die Bewegen-Funktion
Code:
function beweg(anfang, ende,nummer)
{
	schritte=10;
	entf=ende-anfang;
	a=0;
	inter = setInterval(function () {
	 a++;
		_root["b"+nummer]._x+=int(entf/schritte);
		if (a==10) {
			clearInterval(inter);
		}
	}, 15);
}
Und der Aufruf:
Code:
		for (i=links+1; i<=links+6; i++) {
		beweg(_root["b"+i]._x,posX[i-links],i);
		}
Pidi2002 ist offline   Mit Zitat antworten
Alt 16-09-2006, 11:06   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
inter = setInterval(function () {
Wenn du mehrere Intervalle nutzt, benötigst du natürlich auch mehrere IntervallIDs...
  Mit Zitat antworten
Alt 16-09-2006, 11:16   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2004
Beiträge: 34
Hmm, ändert leider nichts, "nummer" sollte ja jedes Interval eindeutig identifizieren

Code:
	inter[nummer] = setInterval(function () {
	 a++;
		_root["b"+nummer]._x+=int(entf/schritte);
		if (a==10) {
			clearInterval(inter[nummer]);
		}
	}, 15);
EDIT:
Hab jetzt das a auch mal in nen array gepackt und somit für jedes Intervall nen eigenen Zähler: Das komische jetzt ist das er eingetlich das interval löschen müsste, es läuft aber trotzdem weiter:
Code:
	inter[nummer] = setInterval(function () {
	 a[nummer]++;
		_root["b"+nummer]._x+=int(entf/schritte);
		if (a[nummer]==10) {
			trace("Clear: "+nummer);
			clearInterval(inter[nummer]);
		}
	}, 15);

Geändert von Pidi2002 (16-09-2006 um 11:24 Uhr)
Pidi2002 ist offline   Mit Zitat antworten
Alt 16-09-2006, 12:09   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Wenn ich's richtig verstehe, ist deine Syntax halt falsch:
PHP-Code:
var nummer 1;
var 
tl this;
tl["inter"+nummer] = setInterval(function () {
    
trace("hallo");
    
clearInterval(tl["inter"+nummer]);
}, 
1000); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 13:45 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele