2016-10-31 225 views
1

我在Adobe Animate中創建了一個按鈕,如果按下他與其他顏色的另一個按鈕進行交換,則應在1秒後將其轉發到上一個場景。Actionscript延遲功能

我的代碼:

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(); 
      } 
} 

黯然myDelayedFunction不起作用,因爲它是另一種機能的研究中,我看不到analternative方式。任何人都可以幫我嗎? (我不是最好的程序員,所以保持它的簡單,如果可能的話)

謝謝您的回答

回答

0

使用內聯函數並再次測試,現在我不能測試:

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

這是一個函數表達式,它使'this'成爲全局對象。這不是顯示列表層次結構的一部分,也沒有'root'屬性。 – null

1

那麼,爲什麼不是簡單地將該功能移出另一個。從來沒有理由將它們嵌套在一起。

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(); 
}