Anzeige

setInterval - überraschendes Verhalten

setInterval - überraschendes Verhalten | PSD-Tutorials.de

Erstellt von sokie, 07.09.2008.

  1. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    setInterval - überraschendes Verhalten
    hallo, in meinem flash habe ich im letzten Bild folgenden Code notiert:
    Code (Text):
    1.  stop(); setInterval(function() {gotoAndPlay(1);}, 5000);
    beim ersten Durchlauf funktioniert es wie erwartet: meine Animation läuft durch, 5 Sekunden 'Pause' , dann Neustart im ersten Bild - wie gewünscht. aber: nach dem zweiten Durchlauf (und allen weiteren) startet es bei Bild1 ohne die 5 Sekunden 'Pause'. woran liegt das?
     
    #1      
  2. h_seldon

    h_seldon Aktives Mitglied

    Dabei seit:
    13.09.2005
    Beiträge:
    338
    Geschlecht:
    männlich
    Ort:
    Nähe München
    setInterval - überraschendes Verhalten
    AW: setInterval - überraschendes Verhalten

    Hallo,

    wenn ich das recht verstehe, dann befindet sich besagtes Script in derselben Zeitleiste, in der auch die Animation vorhanden ist. Jedes Mal, wenn der erste Frame angesteuert wird, führt Flash das gesamte Script erneut aus, richtet also ein weiteres setInterval ein. Das bringt das arme Flash derart durcheinander, dass eine saubere Steuerung nicht mehr möglich ist, mithin die Pausen recht willkürlich erscheinen. Tatsächlich überlagern sich die zahlreichen entstehenden Intervalle. Das kann man vermeiden, indem man das Interval nur ein einziges Mal einrichtet und danach nicht wieder in diesen Frame geht. Wenn der Befehl gotoAndPlay(2) statt (1) lautet und am Ende der Animation ebenfalls der zweite und nicht der erste Frame angesteuert (bzw. am Ende gestoppt) wird, klappt es. Außerdem sollte man ein Interval möglichst in einer Variablen referenzieren, da man ansonsten keinen Zugriff mehr hat, falls man es wieder loswerden möchte.

    Viel Spass
     
    #2      
x
×
×