javascript - 使用ExternalInterface让Javascript处理SWF文件时出现问题

标签 javascript actionscript flash

我有一个嵌入 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/

相关文章:

javascript - 可扩展横幅 CSS、Javascript、Flash

javascript - $cookies.get 不是一个函数——Angular JS

audio - ActionScript 3.0 中缺少 Sound.position 属性

java - 父类中的 getter 和 setter

用于生成 flash 文件的 Python 库

javascript - 卡住 req.flash 不是函数错误

javascript - 删除特定字符并替换为单词

javascript - 递归添加对象属性

javascript - 单击CheckBox时会触发sap.m.Input更改事件

regex - ActionScript 使用\Q 来忽略特价。得到奇怪的结果