2012-01-08 161 views
0

我試圖用重新啓動按鈕重新啓動閃光燈。我使用gotoAndPlay(0),但沒有任何反應。我確定點擊事件處理程序正在被調用,因爲我使用trace語句來驗證。點擊重新啓動閃光燈

rs.addEventListener(MouseEvent.CLICK, restart); 

function restart(event:MouseEvent):void { 
    gotoAndPlay(0); 
} 
+0

它是什麼類型的應用程序,代碼放置在哪裏?聽起來像它可能會從一些動畫片段中調用,而不是從舞臺上調用。或者,也許舞臺已經在第一幀(這是一般情況下,除非你做動畫或在時間軸上做代碼) – Kapep 2012-01-08 18:18:59

+0

這是一個法語語音算法的代名詞。它像一棵樹一樣工作。我認爲舞臺已經在第一幀了。 – 2012-01-08 19:13:17

回答

0

第一幀是幀1,不是0

不知道爲什麼土坯決定不進行幀從零開始,但他們所做的:/

+0

gotoAndPlay(1)不起作用 – 2012-01-08 19:07:18

+0

其他評論中提出的問題也非常有效。重新啓動方法放在哪裏?你在1以外的框架?將要幀1重新啓動你的閃存? – 2012-01-08 19:08:46

0

如果您已經添加對象到舞臺,像按鈕或圖形,但從未實際使用舞臺的時間線,舞臺將開始並停留在第一幀。所以'gotoAndPlay'在這種情況下不會起作用。無論如何,重新啓動動畫只會很有用,因爲它不會自行重置任何代碼。

您需要確定您實際想要重置哪些部分以及可以保留哪些部分。您可能不想從您在開始時加載的內存中移除資產,只需再次下載它們即可。有些物體可能被保留,其他物體應該被移除。

據我所知,沒有簡單的方法來重置Flash應用程序,除了可能重新加載整個頁面。下面是一些一般步驟手工「重置」的應用程序:

  1. 爲您的初始化代碼創建一個方法:
    對象的創建,加入到顯示列表,添加事件偵聽器。
  2. 單擊:從舞臺上刪除所有對象,刪除所有事件偵聽器。
  3. 再次調用初始化方法。

理想情況下,您將init方法中的引用設置爲一個新變量,以便舊的可以被垃圾回收。根據代碼結構的不同,您可能需要手動設置一些爲空。確保你不保留任何對你不再需要的對象的引用。