Java-如何页面上判断flash已经加载完毕?

WP主题讨论 WP主题讨论 主题:1013 回复:2239

Java-如何页面上判断flash已经加载完毕?

瑾兮 发布于 2017-03-10 字数 0 浏览 1019 回复 2

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

灵芸 2017-09-09 2 楼

示例如下(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');
}

})();

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

附上可控制Flash Player的Javascript方法列表

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的指定属性

灵芸 2017-05-30 1 楼

取得FLASH对象的PercentLoaded方法,看其返回是否为100。

<script type="text/javascript">
//判定是否加载成功
function checkLoaded(flash){
try{
return Math.floor(flash.PercentLoaded()) == 100
}catch(e){
return false;
}
}
var flash = 'flash对象';
var intervalID = setInterval(function(){
if(checkLoaded(flash)){
clearInterval(intervalID);
intervalID = null;
}
},60)
</script>