Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-07-2004, 22:26   #1 (permalink)
...
 
Registriert seit: Jun 2004
Beiträge: 115
setInterval vs. clearInterval

Ich dachte statt einer Scrollleiste, jag ich einfach die MC durch die Gegen, nur leider funktioniert das irgendwie nicht. Songlist läuft zwar runter und hoch, aber stop nicht. Ich weiß absolut nicht mehr wo dran das liegt, vieleicht kann mir da einer helfen, wär klasse!!

Ich hab die Vermutung das er this.intervallID bei clearInterval nicht kennt, aber vieleich weiß ja einer von euch mehr...würd mich freuen

PHP-Code:
up_mc.onRollOver = function() {
    
this.moveUp = function() {
        
_root.songlist_mc._y _root.songlist_mc._y-1;
        if (
_root.songlist_mc._y<=0) {
            
clearInterval(this.intervallID);
        } else {
            
this.intervallID setInterval(this.moveUp5);
        }
    };
    
this.moveUp();
};
up_mc.onRollOut = function() {
    
clearInterval(this.intervallID);
};
//_________________________________________________________________________
//_________________________________________________________________________
down_mc.onRollOver = function() {
    
this.moveUp = function() {
        
_root.songlist_mc._y _root.songlist_mc._y+1;
        if (
_root.songlist_mc._y>=275) {
            
clearInterval(this.intervallID);
        } else {
            
this.intervallID setInterval(this.moveUp5);
        }
    };
    
this.moveUp();
};
down_mc.onRollOut = function() {
    
clearInterval(this.intervallID);
}; 
Angehängte Dateien
Dateityp: zip moveplaylist.zip (5,1 KB, 8x aufgerufen)

Geändert von Tobi81 (05-07-2004 um 08:30 Uhr)
Tobi81 ist offline   Mit Zitat antworten
Alt 04-07-2004, 23:09   #2 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.347
du hast mx2004 und nicht mx!....

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
Chuck Norris hat den Flash Player für alle mobilen Betriebssysteme!
salazar ist offline   Mit Zitat antworten
Alt 05-07-2004, 08:30   #3 (permalink)
...
 
Registriert seit: Jun 2004
Beiträge: 115
das tut aber für das script nichts zu sache oder? sollte auch in mx funktionieren

im anhang ist die MX Version... damit jeder berühigt ist
Angehängte Dateien
Dateityp: zip moveplaylist.zip (5,1 KB, 2x aufgerufen)

Geändert von Tobi81 (05-07-2004 um 08:33 Uhr)
Tobi81 ist offline   Mit Zitat antworten
Alt 05-07-2004, 08:48   #4 (permalink)
eeeek!
 
Benutzerbild von juggernart
 
Registriert seit: Aug 2002
Ort: Augsburg
Beiträge: 210
Mach das mal so:
ActionScript:
  1. up_mc.onRollOver = function() {
  2.     this.intervallID = setInterval(this, "moveUp", 5);
  3.     this.moveUp = function() {
  4.         if (--_root.songlist_mc._y<=0) {
  5.             clearInterval(this.intervallID);
  6.         }
  7.     };
  8.     this.moveUp();
  9. };
  10. up_mc.onRollOut = function() {
  11.     clearInterval(this.intervallID);
  12. };
  13. //_________________________________________________________________________
  14. //_________________________________________________________________________
  15. down_mc.onRollOver = function() {
  16.     this.intervallID = setInterval(this, "moveUp", 5);
  17.     this.moveUp = function() {
  18.         if (++_root.songlist_mc._y>=275) {
  19.             clearInterval(this.intervallID);
  20.         }
  21.     };
  22.     this.moveUp();
  23. };
  24. down_mc.onRollOut = function() {
  25.     clearInterval(this.intervallID);
  26. };
juggernart ist offline   Mit Zitat antworten
Alt 05-07-2004, 09:55   #5 (permalink)
Neuer Benutzer
 
Benutzerbild von webxvideo
 
Registriert seit: Nov 2003
Ort: berlin
Beiträge: 883
Ich habe mir angewöhnt vor jedes setInterval ein clearInterval zu setzen:

clearInterval(intervalID);
intervalID=setinterval(meineFunction,40);

Damit verhindert man, daß das Interval mehrfach aufgerufen wird.
In diesem Fall löscht dann nämlich clearInterval nur den letzten Intervalaufruf.

In Deinem Falle:
Wenn man mit der Maus üder den Button fährt, startet das Interval. Wenn man nun bei gedrückter Maustaste aus dem Button rausfährt, findet kein RollOut statt, das Interval läuft weiter.
Fährst Du wieder rüber, startet das Interval ein 2.Mal und das 1. kannst Du mit clearInterval(intervalID); nicht mehr löschen.

Geändert von webxvideo (05-07-2004 um 09:56 Uhr)
webxvideo ist gerade online   Mit Zitat antworten
Alt 05-07-2004, 10:09   #6 (permalink)
eeeek!
 
Benutzerbild von juggernart
 
Registriert seit: Aug 2002
Ort: Augsburg
Beiträge: 210
Erweiterung:

ActionScript:
  1. up_mc.onRollOut = up_mc.onDragOut=function () {
  2.     clearInterval(this.intervallID);
  3. };
  4. //
  5. down_mc.onRollOut = down_mc.onDragOut=function () {
  6.     clearInterval(this.intervallID);
  7. };

So wie du es machst ist es leider total falsch, da du bei jedem aufruf von moveUp ein weiteres, neues interval setzt:

} else {
this.intervallID = setInterval(this.moveUp, 5);
juggernart 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:45 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele