javascript - ExternalInterface 未链接 javascript 和 actionscript 3

标签 javascript actionscript-3 externalinterface

类似的回答问题都没有解决我的问题,所以就这样了。 我想从 JavaScript 调用 actionscript 3 函数,但在 FF 错误控制台中它说我从 JS 调用的函数不存在。它说函数 mover 和 mout 未定义。

这是JS文件中的JS函数

function getFlashMovieObject(movieName) {
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}
function playF() {
getFlashMovieObject("Button2").mover();
}
function playB() {
getFlashMovieObject("Button2").mout();
}

这是 HTML 代码

<object style="width: 413px; height: 76px;" id="Button2" onMouseOver="playF()"  onMouseOut="playB()">
    <param name="movie" value="homepage/flash/Button2.swf">
    <param value="transparent" name="wmode"/>
    <param value="false" name="loop"/>          
    <embed wmode="transparent" play=false src="homepage/flash/Button2.swf" width="413" height="76" loop="false" swliveconnect="true" name="Button2"></embed>
</object>

以及 Actionscript 3 中的代码

ran.stop();
function mover() {
    stopPlayReverse();
this.addEventListener(Event.ENTER_FRAME, playForward, false, 0, true);
}
function mout() {
stopPlayForward();
    this.addEventListener(Event.ENTER_FRAME, playReverse, false, 0, true);
}
function playReverse(e:Event):void {
    if (ran.currentFrame == 1) {
        stopPlayReverse();
    } else {
        ran.prevFrame();
    }
}
function playForward(e:Event):void {
    if (ran.currentFrame == ran.totalFrames) {
    stopPlayForward();
} else {
    ran.nextFrame();
}
}
function stopPlayForward():void {
if (this.hasEventListener(Event.ENTER_FRAME)) {
    ran.removeEventListener(Event.ENTER_FRAME, playForward);
}
}
function stopPlayReverse():void {
    if (this.hasEventListener(Event.ENTER_FRAME)) {
        ran.removeEventListener(Event.ENTER_FRAME, playReverse);
    }
}
ExternalInterface.addCallback("mover", mover);
ExternalInterface.addCallback("mout", mout);

这个想法是我想用javascript控制鼠标悬停,当我将鼠标悬停在对象上时,电影会正常播放,但当我将鼠标悬停在物体上时,电影会向后播放。我在一层上有影片剪辑,在另一层上有我的 actionsrcript 代码。谁能告诉我我做错了什么?谢谢

最佳答案

AS3和JS代码看起来不错,但是你需要设置allowScriptAccess HTML 代码中的标志。

关于javascript - ExternalInterface 未链接 javascript 和 actionscript 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798791/

相关文章:

javascript - 有没有办法重新生成 link_to_add_association(特别是数据关联插入模板)?

flash - 在 ActionScript 中获取图像大小

ruby - TCP套接字停止接收数据直到关闭

javascript - Windows 上的 Flash 和外部接口(interface)问题

javascript - 如何实现 dropzone.js 将文件上传到 Amazon s3 服务器?

javascript - 使用 JS 找到屏幕高度,然后通过 CSS 将其应用到 div 类

javascript - Javascript什么时候可以开始调用Actionscript?

javascript - 将数组从 Flash (AS3) 发送到 JavaScript

flash - IE 9 中的 ExternalInterface.call 泄漏

javascript - Firebase 存储错误 : 404 - ACCESS_BUCKET