2010-03-21 83 views
0

我想從外部.js文件動態放置PNG動畫。首先,我找到了一個簡單的動畫PNG解決方案,它將代碼放在<script>標籤中的任何位置都繪製出動畫,但現在看起來我不知道如何從外部文件正確調用該功能。不能從外部js文件調用動畫PNG腳本

劇本是從AnimatedPNG,它看起來是這樣的:

<script type="text/javascript" src="animatedpng.js"></script> 
<div id="pnganim" align="center"> 
    <script> 
     fishAnim = new AnimatedPNG('fish', 't01.png', 3, 100); 
     fishAnim.draw(false); 
    </script> 
</div> 

現在,我想從external.js文件和jQuery稱之爲:

function addFish(){ 
    $('#pnganim').html('<script type="text/javascript" src="animatedpng.js" />'); 
    fishAnim = new AnimatedPNG('fish', 'fish01.png', 3, 100); 
    myFish = fishAnim.draw(false); 
    $('#pnganim').append(myFish); 
} 

.. 。它不工作。當我點擊一個調用addFish函數的按鈕後,它只會打開空白頁上的第一幀。

我在這裏做錯了什麼?

感謝

回答

0
  1. 我不知道爲什麼你使用$('#pnganim').html('<script ... />);

    只需將此<script type="text/javascript" src="animatedpng.js"></script>放入您的<head>即可。

  2. $('#pnganim').append(myFish);沒有任何意義。該draw函數不返回可能被添加到#pnganim

一個HTML元素,而是用你的代碼也許應該是這樣的

function addFish(){ 
    $('#pnganim').html('<script type="text/javascript">var fishAnim = new AnimatedPNG("fish", "fish01.png", 3, 100);fishAnim.draw(false);</script>'); 
} 
+0

這就是我第一次嘗試,但它也不工作。 Firefox錯誤控制檯在animatedpng.js本身中說明了問題,但在用html手動編寫

0

propably沒有加載你的js腳本,當你做新ANimatedPNG的東西。嘗試檢查控制檯是否有錯誤,指出AnimatedNG未定義。你可以通過使用jQuery的AJAX腳本加載來解決這個問題:

$.getScript('animatedpng.js', function(){ 
    fishAnim = new AnimatedPNG('fish', 'fish01.png', 3, 100); 
    myFish = fishAnim.draw(false); 
    $('#pnganim').append(myFish); //this line looks fishy too (chuckle) 
});