项目中遇到一个情况,需要在FLASH播放结束后自动执行一个JS函数,此JS函数是利用JQurey来通过关闭FLASH所在的DIV,并且显示出原先隐藏的另一个DIV容易来代替目前的Flash。
JS代码如下:
<script type="text/javascript">
function showfocus()
{
$(".focus").fadeIn(500);
}
function flashover()
{
$(".flashzone").fadeOut(1000,showfocus);
}
</script>
function showfocus()
{
$(".focus").fadeIn(500);
}
function flashover()
{
$(".flashzone").fadeOut(1000,showfocus);
}
</script>
里面有2个函数 showfocus 是用来显示原先隐藏的一个层,flashover是先关闭当前的层后在执行showfocus
现在目的是想让FLASH播放好后自动调用 flashover 这个函数来实现前面所说的效果。
实现方法如下:
在FLASH相应的位置加上一个关键帧,写入AS代码
import flash.external.ExternalInterface;
ExternalInterface.call("mPause");
ExternalInterface.call("mPause");
如果想执行到这段AS之后延时10秒再去执行JS函数,可以利用setInterval(这是as2中的用法,as3中可以用setTimeout更简单)来实现,如下:
import flash.external.ExternalInterface;
var abc=setInterval(js_pause,10000);
function js_pause(){
ExternalInterface.call("flashover");
clearInterval(abc);
}
var abc=setInterval(js_pause,10000);
function js_pause(){
ExternalInterface.call("flashover");
clearInterval(abc);
}
注:setInterval表示每隔N秒调用一次函数,所以想达到延迟10秒调用函数的效果,在调用完函数之后就要清楚刚才的时间间隔,否则是降低运行速度。
1楼 于 2011-12-1 19:34
对做美工的设计人员很有用