2015-01-06 98 views
1

我想創建一個簡單的3圖像幻燈片,使用HTML5畫布在Flash CC中的下一個和後退按鈕。我是JavaScript新手,似乎在解決它的問題。Flash CC - HTML5畫布:幻燈片導航

this.stop(); 

this.next_btn.addEventListener("click", playClickNext.bind(this)); 

function playClickNext() 
{ 
    this.gotoAndStop(this.currentFrame + 1); 
} 


this.back_btn.addEventListener("click", playClickBack.bind(this)); 

function playClickBack() 
{ 
    this.gotoAndStop(this.currentFrame - 1); 
} 

我得到它發佈和下一個按鈕的作品,但有時會去錯誤的框架。後退按鈕有時可以工作,有時不會。它所做的最常見的事情也是當點擊時返回到一個隨機幀。

感謝您的幫助!

+0

有沒有可能分享FLA的機會? – Lanny

+0

快速推薦:使用'btn.on'而不是'btn.addEventListener',因爲'on()'可以讓你提供範圍。 http://www.createjs.com/Docs/EaselJS/classes/EventDispatcher.html#method_on – Lanny

回答

1

我放了一個快速樣本,並得到了類似的結果。對我而言,問題在於,無論何時你走到那一幀,腳本所在的框架都會觸發。這意味着按鈕上的聽衆會堆積起來,並多次發射。

理想的解決方案是將代碼從FLA中提取出來,並導入到HTML/JS應用程序中。您可以直接使用實例名稱定位時間軸。舉例來說,在我的應用程序,它是所有主時間軸,所以你可以使用:

exportRoot.next_btn.addEventListener("click", handler); 

爲了解決它沒有重新構建,你也可以只確保之一:

  1. 你的框架與該腳本永遠不會導航到。你可以讓你的第一幀長2幀,並把代碼放在第一幀,並在第二幀放置stop()。然後確保你永遠不會gotoAndStop在1上。你將不得不限制前一個和下一個,因爲你可以在比最大幀更高的幀處gotoAndStop,並且會進行換行。
  2. 每幀刪除所有事件偵聽器。您使用綁定設置偵聽器的方式對於刪除有問題,所以我建議刪除所有偵聽器。

我上傳了一個快速樣本[https://dl.dropboxusercontent.com/u/2224806/Nav.fla],使用第二種方法,主要是因爲它是一個簡單的修復。 對不起,鏈接到期:

讓我知道這是否解決了您的問題,或者它是否與別的東西有關。