<embed
id="flashelement"
width="100%"
height="100%"
src="swfUrl"
quality="high"
align="middle"
allowscriptaccess="never"
allowfullscreen="true"
mode="transparent"
type="application/x-shockwave-flash"
wmode="transparent"
>
<object type="application/x-shockwave-flash" :data="swfUrl"
style="overflow: auto; width:100%; height:100%;background: #fff">
<param name="movie" :value="swfUrl"/>
<param name="wmode" value="transparent"/>
</object>
html中两个标签embed和object都可以用于显示flash文件例如swf文件。一开始使用这两个标签都无法显示,后面跟胜哥一起想了好久才知道原来在Vue框架里面,html中的标签对应的flash等文件经过打包之后无法正常显示,需要将swf文件放到public文件夹下防止文件被打包才可以。
其中在embed标签中的PercentLoaded()方法可以获取flash加载的进度。如下所示
let flash = document.getElementById('flashelement');//flashObject的对象
LoadingProgress = flash.PercentLoaded() + '%';
有时候代码会报flash.PercentLoaded() is not a funciton的错误,这里有一种可能是因为flash(embed)标签的display值为none。