2016-04-27 15 views
0

我在使用prototype.when創建js時使用sprite-sheet動畫。當我單獨做它的工作正常,但是當我將它集成到項目中時動畫不是在控制檯中列出可見且沒有錯誤。請看小提琴來理解我的問題。 here is the js fiddle linkfiddle link找不到在create-js中運行的動畫,沒有列出錯誤

當我單獨運行此代碼時,它的工作正常。但是當在我的項目中實現時,動畫不可見。並且控制檯中不顯示錯誤。

[downpot] [2] [POT1] [3]

[POT2] [4]

+0

你可以將圖像添加到小提琴嗎?它可以很簡單地是一個縮放問題,該對象被繪製/動畫越界。 –

+0

另外,您只需要一個Ticker監聽器(您有3個)。它不應該破壞任何東西,但是你不想每次打勾更新你的舞臺3次。 – Lanny

+0

@taran我已添加圖片 – Gopal

回答

0

這裏是一個小提琴改性。 https://jsfiddle.net/lannymcnie/t4a2cdbc/

我的變化:

  • 我用一個容器,這使得整個動畫設置更容易移動。這被稱爲this.container,並且所有的孩子都被添加到它。這將刪除所有「lc」容器。
  • 我將動畫改爲lc1lc2lc3。它們作爲變量存儲在PotChips實例中以便於參考。它們被添加到相同的容器中。
  • 當創建實例中,我使用的局部變量「LC」,其僅在本地函數中使用:var lc = this.lc1 = new ...etc
  • 我通過this作爲lc.on()方法的第三參數,該參數調用方法中的範圍PotChips實例。這意味着您可以使用this來引用任何實例的屬性。
  • 我刪除了多餘的Ticker監聽器。你只需要一個,它現在在構造函數中。
  • 我擺脫了「運行」SpriteSheet的第二個參數。這是「第一個動畫/幀」參數,它是原始的「授權運行」SpriteSheet演示使用的參數。相反,我立即撥打lc.gotoAndPlay(0)。您應該可以使用框架名稱,但由於某些原因它們不能正常工作 - 我將進一步研究。
  • 我擺脫了lc實例上的所有x/y參數。您可能想要使用正確的值重新添加它們。
  • 我改爲使用HTTPS,以避免控制檯錯誤

這是不完美的spritesheet圖像(第2個動畫似乎並沒有得到在正確的時間刪除),但它應該是一個好的開始,並告訴你如何解決這些問題。

希望有幫助!

+0

非常感謝您的幫助..將在我的代碼 – Gopal

+0

@ lanny中嘗試這個:你給的代碼工作正常,但是當我將它與我的angularjs項目集成時,它不工作,控制檯中不顯示錯誤,並且動畫不可見。我應該添加額外的代碼,以使其與angularjs ?????一起工作。如果我爲每個畫布使用單獨的畫布,則動畫是可見的,但對於所有功能的單個畫布不起作用。 – Gopal

+0

我將不得不看到正在執行的代碼才能弄清楚發生了什麼。 – Lanny