轮询判断加载进度

img的加载完成有onload方法,一直不知道该怎么判断swf文件是否加载完毕了?

在应用中使用了轮询判断加载进度值PercentLoaded是否达到100,经测试,可以达到效果。

 //轮询判断swf是否加载完成
(function () {
var flash = flashObject;//flashObject的对象
that.intervalId = setInterval(function () {
try {
console.log(flash.PercentLoaded());
if (flash.PercentLoaded() == 100) {
clearInterval(that.intervalId);
}
} catch (e) {
clearInterval(that.intervalId);
console.log(e);
}
}, 500);
})();

下面补充一些flash常用的API和object设置的属性值:

flash常用的API

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

<object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.
macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="580" height="110">
<param name="_cx" value="10372">
<param name="_cy" value="2355">
<param name="FlashVars" value="-1">
<param name="Movie" value="swf.swf">
<param name="Src" value="1.swf">
<param name="WMode" value="Transparent">
<param name="Play" value="-1">
<param name="Loop" value="-1">
<param name="Quality" value="High">
<param name="SAlign" value>
<param name="Menu" value="0">
<param name="Base" value>
<param name="AllowScriptAccess" value="always">
<param name="Scale" value="ShowAll">
<param name="DeviceFont" value="0">
<param name="EmbedMovie" value="0">
<param name="BGColor" value>
<param name="SWRemote" value>
<embed src="http://jaykong.blog.163.com/blog/1.swf" width="580" height="110" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-
flash" wmode="transparent" menu="false"></embed>
</object>

Object param属性 释义

参数和属性

下列标记属性和参数描述了由“发布”命令创建的 HTML 代码。在编写自己的用于显示 Flash 内容的 HTML 时,可以参考此列表。除非特别说明,否则所有条目都同时适用于 object 标记和 embed 标记。可选条目也在此列出。Internet Explorer 可以识别用于 object 标记的参数,而 Netscape 则可以识别用于 embed 标记的参数。属性既可用于 object 标记,也可用于 embed 标记。当自定义模板时,可以用此处列出的模板变量替代相应的值。请参阅自定义 HTML 发布模板。

注意:此部分中列出的属性和参数特意以小写字母显示,以符合 XHTML 标准。

devicefont 属性/参数

值: true | false
模板变量:$DE
说明:
(可选)对于未选定“设备字体”选项的静态文本对象,指定是否仍使用设备字体进行绘制(如果操作系统提供了所需字体)。

src 属性

值: movieName.swf
模板变量:$MO
说明 : 指定要加载的 SWF 文件的名称。仅适用于 embed。

movie 参数

值: movieName.swf
模板变量:$MO
说明: 指定要加载的 SWF 文件的名称。仅适用于 object。

classid 属性

值: clsid:D27cdb6e-ae6d-11cf-96b8-444553540000
说明: 标识浏览器的 ActiveX 控件。输入的值必须与上面的显示完全一致。仅适用于 object。

width 属性

值: n 或 n%
模板变量:$WI
说明:以像素值或浏览器窗口的百分比值来指定应用程序的宽度。

height 属性

值: n 或 n%
模板变量:$HE
说明: 以像素值或浏览器窗口的百分比值来指定应用程序的高度。

注意:因为 Flash 应用程序是可缩放的,所以只要高宽比保持不变,不论以任何尺寸播放,它们的品质都不会降低。(例如,以下尺寸的高宽比都是 4:3:640 x 480 像素、320 x 240 像素和 240 x 180 像素。)

codebase 属性

值: active.macromedia.com/flash7/cabs/swflash.cab#version=7,0,0,0

说明: 标识 Flash Player ActiveX 控件的位置,以便在尚未安装该控件时,浏览器可以自动下载它。输入的值必须与上面的显示完全一致。仅适用于 object。

pluginspage 属性

值: www.macromedia.com/shockwave/download/index.cgi?P1_Prod_
Version=ShockwaveFlash
说明: 标识 Flash Player 插件的位置,以便在尚未安装该插件时,用户可以下载它。输入的值必须与上面的显示完全一致。仅适用于 embed 。

swliveconnect 属性

值: true | false
说明: (可选)指定第一次加载 Flash Player 时浏览器是否应启动 Java。如果忽略此属性,默认值为 false。如果在同一页面上同时使用 JavaScript 和 Flash,Java 必须处于运行状态,FSCommand() 函数才能起作用。但是,如果您运行 JavaScript 只是为了检测浏览器或用于其他与 fscommand() 动作无关的目的,则可以通过将 SWLIVECONNECT 设置为 false,从而防止 Java 启动。当没有将 JavaScript 和 Flash 一起使用时,也可以通过将 SWLIVECONNECT 属性明确设置为 true,强制 Java 启动。启动 Java 会显著增加启动 SWF 文件所需的时间,因此,只有在必要时才应将此标记设置为 true。仅适用于 embed。

使用 fscommand() 动作可从独立的放映文件中启动 Java。

play 属性/参数

值: true | false
模板变量:$PL
说明:(可选)指定应用程序是否在浏览器中加载时就开始播放。如果您的 Flash 应用程序是交互式的,则可以让用户通过单击按钮或执行某些其他任务来开始播放。在这种情况下,将 play 属性设置为 false 可禁止应用程序自动开始播放。如果忽略此属性,默认值为 true。

loop 属性/参数

值: true | false
模板变量:$LO
说明: (可选)指定 Flash 内容在它到达最后一帧后是无限制重复播放还是停止。如果忽略此属性,默认值为 true。

quality 属性/参数

值: low | medium | high | autolow | autohigh | best
模板变量:$QU
说明: (可选)指定在应用程序回放期间使用的消除锯齿级别。因为消除锯齿需要更快的处理器先对 SWF 文件的每一帧进行平滑处理,然后再将它们呈现到观众屏幕上,所以需要根据要优化速度还是优化外观来选择一个值:

“Low”使回放速度优先于外观,而且从不使用消除锯齿功能。

“Autolow”优先考虑速度,但是也会尽可能改善外观。回放开始时,消除锯齿功能处于关闭状态。如果 Flash Player 检测到处理器可以处理消除锯齿功能,就会打开该功能。

“Autohigh”在开始时是回放速度和外观两者并重,但在必要时会牺牲外观来保证回放速度。回放开始时,消除锯齿功能处于打开状态。如果实际帧 频降到指定帧频之下,就会关闭消除锯齿功能以提高回放速度。使用此设置可模拟 Flash 中的“消除锯齿”命令(“查看”>“预览模式”>“消除锯齿”)。

“Medium”会应用一些消除锯齿功能,但并不会平滑位图。该设置生成的图像品质要高于“Low”设置生成的图像品质,但低于“High”设置生成的图像品质。

“High”使外观优先于回放速度,它始终应用消除锯齿功能。如果 SWF 文件不包含动画,则会对位图进行平滑处理;如果 SWF 文件包含动画,则不会对位图进行平滑处理。

“Best”提供最佳的显示品质,而不考虑回放速度。对所有输出都进行消除锯齿处理,并且对所有位图都进行平滑处理。

如果忽略 quality 属性,其默认值为 high。

bgcolor 属性/参数

值: #RRGGBB(十六进制 RGB 值)
模板变量:$BG
说明: (可选)指定应用程序的背景色。使用此属性来覆盖在 Flash SWF 文件中指定的背景色设置。此属性不影响 HTML 页面的背景色。

scale 属性/参数

值: showall | noborder | exactfit
模板变量:$SC
说明: (可选)当 width 和 height 值是百分比时,定义应用程序如何放置在浏览器窗口中。

“Showall”(默认值)使整个 Flash 内容显示在指定区域中,且不会发生扭曲,同时保持它的原始高宽比。边框可能会出现在应用程序的两侧。

“Noborder”对 Flash 内容进行缩放以填充指定区域,不会发生扭曲,它会使应用程序保持原始高宽比,但有可能会进行一些裁剪。

“Exactfit”使整个 Flash 内容显示在指定区域中,但不尝试保持原始高宽比。可能会发生扭曲。

如果忽略此属性(而且 width 和 height 值是百分比),则它的默认值是 showall。

align 属性

值: Default | L | R | T | B 
模板变量:$HA
说明: 指定 object、embed 和 img 标记的 align 值,并确定如何在浏览器窗口内放置 Flash SWF 文件。

“默认”使应用程序在浏览器窗口内居中显示,如果浏览器窗口小于应用程序,则会裁剪边缘。

L、R、T 和 B 让应用程序分别沿着浏览器窗口的左、右、上、下边缘对齐,并根据需要裁剪其余三边。

salign 参数

值: L | R | T | B | TL | TR | BL | BR 
模板变量:$SA
说明: (可选)指定缩放的 Flash SWF 文件在由 width 和 height 设置定义的区域内的位置。有关这些条件的详细信息,请参阅scale 属性/参数。

L、R、T 和 B 让应用程序分别沿着浏览器窗口的左、右、上、下边缘对齐,并根据需要裁剪其余三边。

TL 和 TR 让应用程序分别与浏览器窗口的左上角和右上角对齐,并根据需要裁剪底边和剩余的右侧或左侧边缘。

BL 和 BR 让应用程序分别与浏览器窗口的左下角和右下角对齐,并根据需要裁剪顶边和剩余的右侧或左侧边缘。

如果忽略此属性,Flash 内容会在浏览器窗口中居中显示。

base 属性

值: 基本目录或 URL
说明: (可选)指定用于解析 Flash SWF 文件中的所有相对路径语句的基本目录或 URL。如果 SWF 文件保存在与您的其他文件不同的目录下,这个属性是非常有用。

menu 属性/参数

值: true | false
模板变量:$ME
说明: (可选)指定当观众在浏览器中右击 (Windows) 或按住 Command 键单击 (Macintosh) 应用程序区域时将显示的菜单类型。

“true” 显示完整的菜单,让用户使用各种选项增强或控制回放。

“false” 显示的是一个只包含“关于 Macromedia Flash Player 6”选项和“设置”选项的菜单。

如果忽略此属性,默认值为 true。

wmode 属性/参数

值: Window | Opaque | Transparent
模板变量:$WM
说明: (可选)使您可以使用 Internet Explorer 4.0 中的透明 Flash 内容、绝对定位和分层显示的功能。此标记/属性仅在带有 Flash Player ActiveX 控件的 Windows 中有效。

“Window”在 Web 页上用影片自己的矩形窗口来播放应用程序。“Window”表明 Flash 应用程序与 HTML 层没有任何交互,并且始终位于最顶层。

“Opaque” 使应用程序隐藏页面上位于它后面的所有内容。

“Transparent”使 HTML 页的背景可以透过应用程序的所有透明部分进行显示,这样可能会降低动画性能。

“Opaque windowless”和“Transparent windowless” 都可与 HTML 层交互,并允许 SWF 文件上方的层遮蔽应用程序。这两种选项之间的差异在于“Transparent”允许透明,因此,如果 SWF 文件的某一部分是透明的,则 SWF 文件下方的 HTML 层可以透过该部分显示出来。

如果忽略此属性,默认值为 Window。仅适用于 object。

项目中曾遇到的问题:xp上用object封装flash文件后,在外层的dom接收不到object上的事件,改为Opaque后可以接受事件

allowscriptaccess 属性/参数

值: always | never | samedomain
说明: 使用 allowscriptaccess 使 Flash 应用程序可与承载它的 HTML 页通信。此参数是必需的,因为 fscommand() 和 getURL() 操作可能导致 JavaScript 使用 HTML 页的权限,而该权限可能与 Flash 应用程序的权限不同。这与跨域安全性有着重要关系。

always 允许随时执行脚本操作。

never 禁止所有脚本执行操作。

samedomain 只有在 Flash 应用程序来自与 HTML 页相同的域时才允许执行脚本操作。

参考:https://blog.csdn.net/major_/article/details/26377351

js判断flash文件是否加载完毕的更多相关文章

  1. 为不同分辨率单独做样式文件,在页面头部用js判断分辨率后动态加载定义好的样式文件

    为不同分辨率单独做样式文件,在页面头部用js判断分辨率后动态加载定义好的样式文件.样式文件命名格式如:forms[_屏幕宽度].css,样式文件中只需重新定义文本框和下拉框的宽度即可. 在包含的头文件 ...

  2. jq常用事件(on,blur,focus,change),js/jq等待图片(页面)加载完毕事件,js读取文件

    jq常用事件(on,blur,focus,change) // 方法一(推荐) $('.box').on( "click",function() {} ) $('.box').on ...

  3. 常用js,css文件统一加载方法,并在加载之后调用回调函数

    原创内容,转载请注明出处! 为了方便资源管理和提升工作效率,常用的js和css文件的加载应该放在一个统一文件里面完成,也方便后续的资源维护.所以我用js写了以下方法,存放在“sourceControl ...

  4. JS 判断滚动底部并加载更多效果。。。。。。。。。

    JS 判断滚动底部并加载更多效果......... <html lang="zh-cn"> <head> <meta http-equiv=" ...

  5. JavaScript判断图片是否已经加载完毕的方法汇总

    在网上有很多关于判断图片是否已经加载完毕的文章,但是有的浏览器并不适合,下面小编给大家分享一些有关JavaScript判断图片是否已经加载完毕方法汇总,具体内容如下所示: 一.onload事件 通过监 ...

  6. JS判断访问设备(userAgent)加载不同页面 JS判断客户端操作系统类型(platform)

    //平台.设备和操作系统 var system ={ win : false, mac : false, xll : false }; //检测平台 var p = navigator.platfor ...

  7. 原生JS与jQuery文档加载完毕的写法

    HTML是有执行顺序的,默认是自上而下执行.所以当我们的js代码在html代码下边的时候,可以正常执行,而当我们的js代码在html代码上边的时候,可以就无法正常执行了,这时,我们需要在文档加载完毕的 ...

  8. JavaScript判断页面是否已经加载完毕

    做页面时经常会遇到当前页面加载完成后,执行某些初始化工作.这时候就要知道如何判断页面(包括IFRAME)已经加载完成,代码如下: < script language = "javasc ...

  9. 判断css文件是否加载完成

    function cssReady(fn, link) { var d = document, t = d.createStyleSheet, r = t ? 'rules' : 'cssRules' ...

随机推荐

  1. SPOJ3267:D-query

    题面 SPOJ3267 Sol 给定\(N\)个正整数构成的序列,将对于指定的闭区间查询其区间内的不同的数的个数 主席树 不是权值线段树 维护位置 如果插入一个数时发现之前有过了 那么修改当前的,那个 ...

  2. webpack中hash与chunkhash区别和需要注意的问题

    项目发布时,为了解决缓存,需要进行md5签名,这时候就需要用到 hash 和 chunkhash等. 问题一:hash问题 使用 hash 对js和css进行签名时,每一次hash值都不一样,导致无法 ...

  3. 【Spring源码分析】非懒加载的单例Bean初始化过程(下篇)

    doCreateBean方法 上文[Spring源码分析]非懒加载的单例Bean初始化过程(上篇),分析了单例的Bean初始化流程,并跟踪代码进入了主流程,看到了Bean是如何被实例化出来的.先贴一下 ...

  4. window.close(); 关闭浏览器窗口js代码

    序号 关闭代码 需要确认 无任何作用 无需确认 测试 1 window.close() IE7 firefox,chrome,safari Opera Close 2 window.opener=nu ...

  5. C# Redis实战(五)

    五.删除数据 在C# Redis实战(四)中讲述了如何在Redis中写入key-value型数据,本篇将讲述如何删除Redis中数据. 1.void Delete(T entity);删除函数的运用 ...

  6. scala(二) Future执行逻辑解读

    在scala中是没有原生线程的,其底层使用的是java的Thread机制.但是在scala中对java Thread进行了封装,实现了更便于操作线程的Future. 官方文档: Futures pro ...

  7. [转]Thunderbird 使用 Exchange 邮箱

    [转]Thunderbird 使用 Exchange 邮箱 http://my.oschina.net/MaTech/blog/295238#OSC_h3_1 公司最近邮箱只支持Exchange模式, ...

  8. 关于del命令

    del命令用于删除具体的文件,但是删除文件的时候如果不指定文件的扩展名就会显示找不到文件 还有如果所要删除文件的文件名中含有空格的话该命令会自动识别为几个文件,就从空格处把文件 分成几份,然后就会显示 ...

  9. 引用第三方dll引发的问题解决

    引用的程序集错误  如果引用第三方dll,调试出现引用的程序集出现错误,可以下载dependency,查看这个dll的依赖dll,如果本地电脑没有依赖dll或依赖dll出现问题,则下载或取代依赖dll ...

  10. 基于I2C总线的MPU6050学习笔记

    MPU6050学习笔记 1. 简述 一直想自己做个四轴飞行器,却无从下手,终于狠下决心,拿出尘封已久的MPU6050模块,开始摸索着数据手册分析,一步一步地实现了MPU6050模块的功能,从MPU60 ...