2013-03-11 54 views
0

我現在很安靜,絕望。jquery flash externalinterface

我試圖像許多其他人在這裏得到externalinterface的事情與我的網頁一起工作。 無論我做什麼或如何以正確的方式更改代碼都無所謂,我總是從Firefox或Chrome獲得'沒有方法'報告!

我試圖通過jQuery通過HTML中的「play」鏈接觸發Flash中的播放函數。我無法弄清楚,出了什麼問題!

AS3.0在Flash CS6(播放聲音文件 - Flash內部沒有問題,正常播放):

import flash.external.ExternalInterface; 

ExternalInterface.addCallback("playMusicJS", playMusic); 

function playMusic(evt:MouseEvent):void { 
    soundChannel.stop(); 
    soundChannel = sound.play(); 
    soundTimer.start(); // volume levels and time 
    INSTPlayPause.gotoAndStop(2); 
    soundChannel.addEventListener(Event.SOUND_COMPLETE, soundComplete); 
    INSTPlayPause.INSTPauseBTN.addEventListener(MouseEvent.CLICK, pauseMusic); 
} 

的Javascript(jQuery的):

$(document).ready(function() { 
    $('#play').click(function() { 
    // var flash = document.getElementById("ASPlayer"); // tried as well - no luck 
    var flash = $('#ASPlayer').get(0) 
    flash.playMusicJS(); 
    alert("TEST"); 
    }); 
}); 

和HTML:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="350" height="30"  id="ASPlayer" title="Player"> 
    <param name="movie" value="../_flash/TEST -ExternalInterface-.swf"> 
    <param name="quality" value="high"> 
    <param name="wmode" value="opaque"> 
    <param name="swfversion" value="11.0.0.0"> 
    <param name="expressinstall" value="../_flash/expressInstall.swf"> 
    <param name="allowScriptAccess" value="always" /> 
    <!--[if !IE]>--> 
    <object type="application/x-shockwave-flash" data="../_flash/TEST -ExternalInterface-.swf" width="350" height="30" id="ASPlayer" title="Player"> 
    <!--<![endif]--> 
    <param name="quality" value="high"> 
    <param name="wmode" value="opaque"> 
    <param name="swfversion" value="11.0.0.0"> 
    <param name="expressinstall" value="../_flash/expressInstall.swf"> 
    <param name="allowScriptAccess" value="always" /> 
    <!-- --> 
    <embed src="../_flash/TEST -ExternalInterface-.swf" width="350" height="30" name="ASPlayer" quality="high" wmode="opaque" > 
    <!-- --> 
    <div> 
     <p>Content on this page requires a newer version of Adobe Flash Player.</p> 
     <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" width="112" height="33" /></a></p> 
    </div> 
    <!--[if !IE]>--> 
    </object> 
    <!--<![endif]--> 
</object> 
<p><a href="#" id="play">play</a></p> 
</body> 
<script type="text/javascript" src="TEST.js"></script> 
</html> 

我認爲這可能是一個DOM加載順序問題,我嘗試了很多組合以哪個順序調用函數或者在文件中放置文件的地方,但是也沒有運氣!

我檢查了其他用戶關於該問題的大多數條目,並試用過它們,但仍然無法使用! 我欣賞任何想法或提示:)!

來自德國柏林的祝福!

回答

0
  1. 確保您的腳本被拉入的頁面,以檢查一種方法是通過使用Chrome的調試器/火狐螢火蟲的「來源」選項卡,然後搜索文件。

  2. 確保在包含jQuery之後包含腳本,因爲它肯定是依賴於該腳本的。

  3. 確保您只包含一個jQuery庫。包括多個版本可能會導致問題。

  4. 如果有其他庫被覆蓋$,那麼您的代碼不起作用,因爲$不再是jQuery的別名。您可以使用jQuery.noConflict()以避免與使用相同變量$的頁面上的其他庫衝突。

+0

謝謝你的快速回答! 1.我的腳本在那裏,當我在jQuery函數中放置一個警報時,它彈出。 2.腳本包含在頁面的底部。 3.只有一個jQuery庫'jquery.1.8.3.min.js'包含在頁面的頂部。 4.沒有其他圖書館。 也許一些其他的想法(希望)? – Peter 2013-03-11 09:41:41

+1

謝謝Dasun的努力! 我得到它現在使用swfObject工作! 但我仍然想知道,爲什麼它不適用於'舊學校'的實施......! – Peter 2013-03-11 14:09:00

+0

好吧,這很好聽 – Techie 2013-03-11 14:54:47

相關問題