我有一个嵌入 HTML 页面的 SWF 文件。尝试执行一个简单的操作 - 使用 JavaScript 转到并播放 SWF 中的某个帧。我正在使用ExternalInterface 来执行此操作,但无论如何我都无法让两者进行通信。
我添加了所有代码,但是当单击调用 javascript 的链接时,它说我的 Flash 对象未定义?
这是 ActionScript 代码:
import flash.external.*;
function getFromJavaScript(frame:int):void
{
gotoAndPlay(frame);
}
ExternalInterface.addCallback("sendtoFlash",getFromJavaScript);
这是 JavaScript:
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 sendtoSwf(numb)
{
var flashMovie = getFlashMovieObject("tour-flash");
flashMovie.sendToFlash(numb);
}
这是嵌入的 SWF:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="335" id="tourFlash" align="middle">
<param name="movie" value="/media/Assets/Flash/tourFlash.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="/media/Assets/Flash/tourFlash.swf" width="600" height="335">
<param name="movie" value="/media/Assets/Flash/tourFlash.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
有什么想法吗?我完全被难住了!有关问题的示例,请查看此处:http://www.onehealthfitness.com.au/get-started/virtual-tour.aspx
谢谢:)
最佳答案
似乎您在 getFlashMovieObject("tour-flash") 调用中使用了错误的值,您的代码中没有名为“tour-flash”的对象,是吗?
除此之外,我建议您添加一个静音按钮,以便访问者可以关闭声音。我倾向于留下无法停止播放声音的页面。
关于javascript - 使用ExternalInterface让Javascript处理SWF文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3948245/