2016-10-31 2 views
1

Ich habe eine Schaltfläche in Adobe Animate erstellt, die, wenn Sie ihn drücken mit einem anderen Button in einer anderen Farbe ausgetauscht werden sollte, sollten Sie nach 1 Sekunde an die vorherige Szene weitergeleitet werden.Actionscript Verzögerung innerhalb Funktion

Mein Code:

button_answer_2.addEventListener(MouseEvent.CLICK, fl_ClickToGoToPreviousScene); 
function fl_ClickToGoToPreviousScene(event:MouseEvent):void 
{ 
    button_answer_2.visible = false; 
    button_answer_2_red.visible = true; 


     setTimeout(myDelayedFunction,3000); 
     function myDelayedFunction(){ 
       MovieClip(this.root).prevScene(); 
      } 
} 

leider die myDelayedFunction nicht funktioniert, weil es innerhalb eines anderen Funktionen erzeugt ist, kann ich nicht analternative Art und Weise sehen. Könnte mir jemand helfen? (Ich bin nicht der beste Programmierer es so einfach halten, wenn möglich)

Vielen Dank für Ihre Antwort

Antwort

0

Verwenden Inline-Funktion und Test wieder, ich kann es nicht jetzt testen:

setTimeout(function(){ MovieClip(this.root).prevScene(); }, 3000); 
+1

Das ist ein Funktionsausdruck, der bewirkt, dass 'dies' das globale Objekt ist. Das ist nicht Teil der Anzeigelistenhierarchie und hat keine "root" -Eigenschaft. – null

1

Warum nicht einfach die Funktion aus der anderen verschieben. Es gab nie einen Grund, sie zu nisten.

button_answer_2.addEventListener(MouseEvent.CLICK, fl_ClickToGoToPreviousScene); 
function fl_ClickToGoToPreviousScene(event:MouseEvent):void 
{ 
    button_answer_2.visible = false; 
    button_answer_2_red.visible = true; 

    setTimeout(myDelayedFunction,3000); 
} 

function myDelayedFunction():void 
{ 
    MovieClip(this.root).prevScene(); 
} 
Verwandte Themen