2010-08-25 59 views
0

如果有人能夠看到他們是否能找到問題所在,那麼需要幫助並且非常需要幫助。
我想通過使用js函數來觸發嵌入在網頁中的swf電影。 這是一個使用我找到的示例代碼的空運行,我最終只是希望電影播放和通過js指令停止,當點擊一個href。 網站是http://simplywebdzine.com/ASJS_test.html無法通過JS觸發swf中的As3函數

在SWF AS3的代碼是:

import flash.external.ExternalInterface; 
ExternalInterface.addCallback("sendTextToFlash", getTextFromJavaScript); 
function getTextFromJavaScript(str):void { 
trace(str); 
} 

THANK YOU

添加完整的HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org  /TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<script type="text/javascript"> 
function setCurrentPage(newPage) { 
    currentPage = newPage; 
    SendDataToFlashMovie(newPage); 
} 
function getFlashMovieObject(movieName){ 
if (window.document[movieName]){ 
    return window.document[movieName]; 
} 
if (navigator.appName.indexOf("Microsoft Internet")==-1){ 
    if (document.embeds && document.embeds[movieName]) 
     return document.embeds[movieName]; 
} 
else{ 
    return document.getElementById(movieName); 
} 
} 
function SendDataToFlashMovie(newPage){ 
var flashMovie=getFlashMovieObject("myFlashMovie"); 
flashMovie.sendTextToFlash(newPage); 
} 

</script> 
</head> 
<body> 

<a href="#" onClick="setCurrentPage('Home')">Home</a> 

    <object height="250" width="380" id="myFlashMovie" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash 
/swflash.cab#version=8"  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> 
<param value="myFlashMovie.swf" name="movie"> 
<param value="high" name="quality"> 
<param value="transparent" name="wmode"> 
<param value="#FFFFFF" name="bgcolor"> 
<param value="true" name="allowFullScreen"> 
<param value="true" name="swLiveConnect"> 
<param value="always" name="allowScriptAccess"> 

<embed height="250" align="middle" width="380" src="myFlashMovie.swf" quality="high" 
pluginspage="http://www.macromedia.com/go/getflashplayer" play="false" 
loop="false"  scale="showall" wmode="transparent" devicefont="false" 
bgcolor="#000000" menu="true" allowfullscreen="false" allowscriptaccess="always" 
salign="" type="application/x-shockwave-flash" name="myFlashMovie"> 

</object></body> 
</html> 
+0

你的HTML/Javascript是什麼樣的? – drummondj 2010-08-25 20:22:00

+0

約翰 我擔心在這裏發佈太多的代碼,所以我給了一個鏈接到網頁,其中html和java可以在頁面源中看到。 但我會發布完整的代碼,如果需要的話! – Edbro 2010-08-25 21:09:39

回答

0

確保在添加允許腳本訪問PARAM你的閃存嵌入(通常這是問題)

<param name="allowScriptAccess" value="always" /> 
+0

是的,我在嵌入和對象方面都做了這個Theo – Edbro 2010-08-25 21:08:08

0

看起來您在鏈接到的HTML代碼中存在拼寫錯誤。你有這樣的代碼:

<a href onclick="javascript:SendDahMovie();">trigger</a> 

但是你定義的JS函數爲:

function SendDataToFlashMovie(newPage){ 
    var flashMovie=getFlashMovieObject("myFlashMovie"); 
    flashMovie.sendTextToFlash(newPage); 
} 

每次點擊trigger鏈接,不只是你的函數不叫,而且頁面重新加載。所以嘗試修復這個名稱不匹配。

PS:順便說一句,你的代碼實際上工作。

我跑從螢火這個JS代碼:

SendDataToFlashMovie('testing'); 

而且我可以看到的flashlog.txt跟蹤。

+0

很多謝謝Juan Pablo,我一直在嘗試各地,並意識到我在那裏留下了一個reduntant鏈接以及錯字。 知道它的作品給了我希望。至少我知道我有有效的代碼可以玩。 – Edbro 2010-08-26 10:26:11