我一直在寻找问题的答案,我制作了一个 Flash 动画。我正在尝试在它结束时启动一个功能。 我试过直接在Flash中做,我不知道我是否做对了。 我的代码:
JavaScript
$(document).ready(function() {
flashMovie = $('#wrapanim .movie');
flashMovie.flash({
swf: 'RechercheYT.swf',
width: 1000,
height: 650,
play: true,
});
$("#skipA").click(function() {
enter();
});
});
function enter()
{
$("#wrapanim").fadeOut(200);
.....
}
HTML
<div id="wrapanim">
<div id="skipA" class="skip">
X
</div>
<div class="movie"></div>
</div>
对于 AS3 解决方案:在最后一个关键帧上我放置了以下代码:
import flash.external.ExternalInterface; ExternalInterface.call("enter()");
It didn't worked. The last clip of my animation kept running indefinitely.
我曾经直接使用 setTimeout() 来启动 Enter() 函数,但我不喜欢这个解决方案,它可能会导致一些问题,动画可能会在结束之前被剪切。
为了简单起见,我正在寻找一种在 SWF 文件末尾执行 JavaScript 函数的方法。
感谢所有花时间回答和帮助我的人。
EDITS :
谢谢你的回答,你写的我都试过了,还是不行。我什至尝试了多种嵌入 SWF 的方法,仍然是同样的问题。
<object type="application/x-shockwave-flash" data="RechercheYT.swf"
style="width:1000px;height:650px;">
<param name="movie" value="RechercheYT.swf" />
<param name="AllowScriptAccess" value="always" />
<param name="wmode" value="opaque" />
<param name="quality" value="high" />
<param name="menu" value="false" />
</object>
关于我的动画:
import flash.external.ExternalInterface;
ExternalInterface.call("enter");
(无论括号与否,我都有同样的问题)对于我尝试的每个代码,总是同样的问题,动画显示完美,但最后一个影片剪辑并且只有最后一个影片剪辑不断转动。所以我开始认为它来自动画,也许不是代码,如果是这种情况,我不知道该怎么办。
最佳答案
您的问题可能是由于您的ExternalInface调用中的括号引起的:
ExternalInterface.call("enter()");
改用这个:
ExternalInterface.call("enter");
此外,请确保您允许在 swf 嵌入代码中进行脚本访问:
<param name='AllowScriptAccess' value='always'/>
关于javascript - 使用 AS3 或 JS/Jquery 在 SWF 动画结束时执行 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24047757/