js怎么判断flash,JS判断Flash是否播放结束
分类:新闻中心

js怎么判断flash是否加载完毕了呢?

  • JS判断Flash是否加载完成

    (function () { var flash = 网页上某个flash对象。
    var interval = setInterval(function () {

    try { if(flash.IsPlaying()) {

    //轮询flash的某个方法即可 callBack && callBack.call(flash, args); //回调函数 clearInterval(interval);
    } } catch (ex) {
    } }, 1000); var callBack = function () { alert('loaded'); } })();

js怎么判断flash swf文件是否加载完毕,

js怎么判断flash是否加载完毕了呢?

我们怎么在flash加载完毕之时,回调一个我们设定的js函数?

这个问题,一直困扰了我很久,直到今天,请教了一个非常牛B的人物之后,突然来了感觉!

呵呵,也许,这个问题在你们看来不是问题,不过对于我来说,确实是个问题,因为我一直不知道该怎么判断swf文件是否加载完毕了?

从前都是只知道img.onload等等。

好了,言归正传,我们到底该怎样判断一个flash是否加载完了呢?

没错,就是轮询,然后判断flash的某个方法是否能正常运行?

示例如下(伪代码):

(function () { 
var flash = 网页上某个flash对象。 

var interval = setInterval(function () { 
try { 
if(flash.IsPlaying()) { //轮询flash的某个方法即可 
callBack && callBack.call(flash, args); //回调函数 
clearInterval(interval); 
} 
} catch (ex) { 

} 
}, 1000); 

var callBack = function () { 
alert('loaded'); 
} 
})();

//具体运用时,flash放进setInterval或者setTimeout的函数闭包中时,可能会由于JavaScript单线程问题,导致flash不能调用IsPlaying等flash player函数或者调用结果不对等状况,这里有个临时的解决办法,我们可以读取在轮询函数中读取flash的TotalFrames属性,读取得到,我们就可以认为flash已经完全加载到页面中了!!!

经测试,确实可行,不过可能会有1—2秒的时间延迟。

/////////////有什么不对的地方,欢迎勘误!!!!!!!!!//////////////

/*后面附上可控制Flash Player的js方法列表*/

Play() ---------------------------------------- 播放动画
StopPlay()------------------------------------停止动画
IsPlaying()----------------------------------- 动画是否正在播放
GotoFrame(frame_number)---------------- 跳转到某帧
TotalFrames()------------------------------- 获取动画总帧数
CurrentFrame()------------------------------回传当前动画所在帧数-1
Rewind()-------------------------------------使动画返回第一帧
SetZoomRect(left,top,right,buttom)-------放大指定区域
Zoom(percent)------------------------------改变动画大小
Pan(x_position,y_position,unit)------------使动画在x,y方向上平移
PercentLoaded()----------------------------返回动画被载入的百分比
LoadMovie(level_number,path)----------- 加载动画
TGotoFrame(movie_clip,frame_number)- movie_clip跳转到指定帧数
TGotoLabel(movie_clip,label_name)------ movie_clip跳转到指定标签
TCurrentFrame(movie_clip)--------------- 回传movie_clip当前帧-1
TCurrentLabel(movie_clip)-----------------回传movie_clip当前标签
TPlay(movie_clip)---------------------------播放movie_clip
TStopPlay(movie_clip)----------------------停止movie_clip的播放
GetVariable(variable_name)-----------------获取变量
SetVariable(variable_name,value)-----------变量赋值
TCallFrame(movie_clip,frame_number)---call指定帧上的action
TCallLabel(movie_clip,label)----------------call指定标签上的action
TGetProperty(movie_clip,property)--------获取movie_clip的指定属性
TSetProperty(movie_clip,property,number)-设置movie_clip的指定属性

我们怎么在flash加载完毕之时,回调一个我们设定的js函数?

 

这个问题,一直困扰了我很久,直到今天,请教了一个非常牛B的人物之后,突然来了感觉!

具体运用时,flash放进setInterval或者setTimeout的函数闭包中时,可能会由于JavaScript单线程问题,导致flash不能调用IsPlaying等flash player函数或者调用结果不对等状况,这里有个临时的解决办法,我们可以读取在轮询函数中读取flash的TotalFrames属性,读取得到,我们就可以认为flash已经完全加载到页面中了。

swf文件是否加载完毕, js怎么判断flash是否加载完毕了呢? 我们怎么在flash加载完毕之时,回调一个我们设定的js函数? 这个...

呵呵,也许,这个问题在你们看来不是问题,不过对于我来说,确实是个问题,因为我一直不知道该怎么判断swf文件是否加载完毕了?

 

从前都是只知道img.onload等等。

  • JS判断Flash是否播放结束到最后一帧

好了,言归正传,我们到底该怎样判断一个flash是否加载完了呢?

 

没错,就是轮询,然后判断flash的某个方法是否能正常运行?

<script type="text/javascript"> 

function gotoTestPage(){

    //get flash obj, only work normally in IE
    var flash = document["Shockwaveflash1"];

    //get current page number
    var currentFrame=flash.CurrentFrame();

    //30 is the total, if end
    if(currentFrame==30 && $('#isOpen').html()=="0"){
        $('#isOpen').html("1");
        alert("Please start to do the test.");

        //popup the page with sharepoint dialogue window
        OpenPopUpPage("/en/hr/Pages/ISOnlineTest.aspx",function() {window.location.href="/en/hr/Pages/InformationSecurityTraining.aspx";},960,800);
    }
}

//go to the function each 5 seconds
setInterval(gotoTestPage,5000);
 </script>

 //set open popup page status
<div id="isOpen" style="display: none">0</div>

示例如下(伪代码):

/*后面附上可控制Flash Player的js方法列表*/

(function () { 
var flash = 网页上某个flash对象。 

var interval = setInterval(function () { 
try { 
if(flash.IsPlaying()) { //轮询flash的某个方法即可 
callBack && callBack.call(flash, args); //回调函数 
clearInterval(interval); 
} 
} catch (ex) { 

} 
}, 1000); 

var callBack = function () { 
alert('loaded'); 
} 
})();

Play() ---------------------------------------- 播放动画
StopPlay()------------------------------------停止动画
IsPlaying()----------------------------------- 动画是否正在播放
GotoFrame(frame_number)---------------- 跳转到某帧
TotalFrames()------------------------------- 获取动画总帧数
CurrentFrame()------------------------------回传当前动画所在帧数-1
Rewind()-------------------------------------使动画返回第一帧
SetZoomRect(left,top,right,buttom)-------放大指定区域
Zoom(percent)------------------------------改变动画大小
Pan(x_position,y_position,unit)------------使动画在x,y方向上平移
PercentLoaded()----------------------------返回动画被载入的百分比
LoadMovie(level_number,path)----------- 加载动画
TGotoFrame(movie_clip,frame_number)- movie_clip跳转到指定帧数
TGotoLabel(movie_clip,label_name)------ movie_clip跳转到指定标签
TCurrentFrame(movie_clip)--------------- 回传movie_clip当前帧-1
TCurrentLabel(movie_clip)-----------------回传movie_clip当前标签
TPlay(movie_clip)---------------------------播放movie_clip
TStopPlay(movie_clip)----------------------停止movie_clip的播放
GetVariable(variable_name)-----------------获取变量
SetVariable(variable_name,value)-----------变量赋值
TCallFrame(movie_clip,frame_number)---call指定帧上的action
TCallLabel(movie_clip,label)----------------call指定标签上的action
TGetProperty(movie_clip,property)--------获取movie_clip的指定属性
TSetProperty(movie_clip,property,number)-设置movie_clip的指定属性

//具体运用时,flash放进setInterval或者setTimeout的函数闭包中时,可能会由于JavaScript单线程问题,导致flash不能调用IsPlaying等flash player函数或者调用结果不对等状况,这里有个临时的解决办法,我们可以读取在轮询函数中读取flash的TotalFrames属性,读取得到,我们就可以认为flash已经完全加载到页面中了!!!

 

经测试,确实可行,不过可能会有1—2秒的时间延迟。

/////////////有什么不对的地方,欢迎勘误!!!!!!!!!//////////////

/*后面附上可控制Flash Player的js方法列表*/

Play() ---------------------------------------- 播放动画
StopPlay()------------------------------------停止动画
IsPlaying()----------------------------------- 动画是否正在播放
GotoFrame(frame_number)---------------- 跳转到某帧
TotalFrames()------------------------------- 获取动画总帧数
CurrentFrame()------------------------------回传当前动画所在帧数-1
Rewind()-------------------------------------使动画返回第一帧
SetZoomRect(left,top,right,buttom)-------放大指定区域
Zoom(percent)------------------------------改变动画大小
Pan(x_position,y_position,unit)------------使动画在x,y方向上平移
PercentLoaded()----------------------------返回动画被载入的百分比
LoadMovie(level_number,path)----------- 加载动画
TGotoFrame(movie_clip,frame_number)- movie_clip跳转到指定帧数
TGotoLabel(movie_clip,label_name)------ movie_clip跳转到指定标签
TCurrentFrame(movie_clip)--------------- 回传movie_clip当前帧-1
TCurrentLabel(movie_clip)-----------------回传movie_clip当前标签
TPlay(movie_clip)---------------------------播放movie_clip
TStopPlay(movie_clip)----------------------停止movie_clip的播放
GetVariable(variable_name)-----------------获取变量
SetVariable(variable_name,value)-----------变量赋值
TCallFrame(movie_clip,frame_number)---call指定帧上的action
TCallLabel(movie_clip,label)----------------call指定标签上的action
TGetProperty(movie_clip,property)--------获取movie_clip的指定属性
TSetProperty(movie_clip,property,number)-设置movie_clip的指定属性

您可能感兴趣的文章:

  • js实现延时加载Flash的方法
  • 使用javascript获取flash加载的百分比的实现代码
  • Javascript 判断Flash是否加载完成的代码
  • 纯js无flash仿搜狐女人频道FLASH图片切换效果代码
  • JS仿flash上传头像效果实现代码
  • 可以媲美Flash的JS导航菜单
  • 屏蔽Flash右键信息的js代码
  • JavaScript 类似flash效果的立体图片浏览器
  • JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
  • js实现网页检测是否安装了 Flash Player 插件
  • js简单判断flash是否加载完成的方法

本文由美高梅网址发布于新闻中心,转载请注明出处:js怎么判断flash,JS判断Flash是否播放结束

上一篇:ready概念介绍及使用方法 下一篇:没有了
猜你喜欢
热门排行
精彩图文