Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-01-2004, 14:00   #1 (permalink)
Neuer User
 
Benutzerbild von mimaba
 
Registriert seit: May 2003
Beiträge: 81
setInterval ID zurücksetzen ?

Hi, also ich habe eine keine Methode erstellt die eine Funktion nach x millisekunden ausführt. danach setze ich die id wieder zurück (hab mal irgendwo gelesenen das es mit -1 gehen soll)
ein trace zeigt aber das die Variable interValID immer inkrementiert wird, so das der Wert immer größer wird. Stört eigentlich nicht aber perfekter wäre es mit einem reset.
Kann mir jemand helfen ? (sorry bin ein newbie)

ActionScript:
  1. MovieClip.prototype.startDelay = function(delay) {
  2.     this.intervalID = setInterval(function (mc) {
  3.         trace("function ausgeführt");
  4.         clearInterval(mc.intervalID);
  5.         mc.intervalID = -1;
  6.     }, delay, this);
  7. };
  8. mc.startDelay(1000);
mimaba ist offline   Mit Zitat antworten
Alt 05-01-2004, 16:47   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Soweit ich weiss geht das nicht. Dass ist aber auch total unwichtig. Der Wert der id geht eigentlich nur den Flashplayer was an.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 05-01-2004, 18:46   #3 (permalink)
Neuer User
 
Benutzerbild von mimaba
 
Registriert seit: May 2003
Beiträge: 81
Smile

gut, dann bin ich ja beruhigt:-)
hier noch ein einfaches Beispiel: Eine Funktion blendet einen movieclip aus, ebenfalls als setInterval definiert:
ActionScript:
  1. function fadeOut(mc) {
  2.     var id = setInterval(function () {
  3.         if (mc._alpha == 0) {
  4.             clearInterval(id);
  5.         } else {
  6.             mc._alpha--;
  7.         }
  8.     }, 40, mc, i);
  9. }
nach meinem verständnis dürfte das garnicht funktionieren, denn beim funktionsaufruf wird das interval gestartet und die referenz darauf in einer lokalen variable definiert. danach ist die funktion fadeOut abgeschlossen und wird aus dem speicher gelöscht - somit dürfte ich das interval nicht mehr stoppen können da id nicht mehr existiert, oder ?

gruß,
mimaba
--
www.polygonal.de
mimaba ist offline   Mit Zitat antworten
Alt 05-01-2004, 19:17   #4 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Seit Flash 6 geht das. Dadurch, dass du die Interval-Funktion innerhalb einer anderen Funktion definierst, bleiben alle Variablen erhalten, die im lokalen Sichtbarkeitsbereich von fadeOut sind.
Die Variablen bleiben solange erhalten, wie es eine Referenz darauf gibt.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 06-01-2004, 12:56   #5 (permalink)
Neuer User
 
Benutzerbild von mimaba
 
Registriert seit: May 2003
Beiträge: 81
Smile

Danke!

gruß.
mimaba
mimaba 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 06:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele