`
sealbird
  • 浏览: 570688 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

as3 flash web 应用 (6)swfobject的使用:将flash嵌入页面

    博客分类:
  • Flex
阅读更多
from http://hi.baidu.com/yukon_kanzaki/blog/item/41b7282d28011a39359bf743.html
(鉴于最近有些抓取机器和抄袭者,把标题的【原】字都复制,我不得不声明:本文为 yukon12345原创,转载请注明出处 http://hi.baidu.com/yukon_kanzaki)
接下来要推荐的是开源插件swfobject(在src文件夹有所有源码)

swfobject下载:[b]http://code.google.com/p/swfobject/[/b]          (右边有最新版链接)

swfobject是比较流行的使用js而非使用<embed><object>插入flash影片的js插件,除了插入flash之外,还提供向flash传递值,检测浏览器版本,简化加载过程的作用,甚至还可以让低版本flash player的用户不离开本页面而自动升级,最新的2.2版甚至还添加了对iphone嵌入mp4的支持,以及对HTML5的<!doctype html>文档标签类型的支持。

中文使用说明:http://wenku.baidu.com/view/6c49d27da26925c52cc5bff3.html
向外开放的程序接口:http://code.google.com/p/swfobject/wiki/api

看到这么多,昏了吧?来直接进入关键主题:

把swf嵌入网页中:
<html>
<script type="text/javascript" src="swfobject.js"></script> //这里先要引入这个swfobject插件
<script type="text/javascript">

swfobject.embedSWF("your.swf", "flashcontent", "300", "120",“9", "expressInstall.swf");

</script>    
<div id="flashcontent">

This text is replaced by the Flash movie.    //这里是如果js被禁用,导致无法加载时的显示文字

</div>
</html>

这样就完成了。很简单
解释:
直接使用swfobject.embedSWF()即可导入参数的意义各如下:

1:("your.swf") 你想导入的swf的地址

2:("flashcontent" )指出flash将放入的div的ID号。同时也是flash的ID号。另外如果想用css的话 div#flashcontent可选择div,object#flashcontent可选择flash

3:(“300”)宽度

4:("120")高度

5:("9")最低要求版本号。将检测是否小于此版本号

6:("expressInstall.swf")如果版本过低,将导入的安装文件。让用户可以在此页面自动升级。

以上是最简单的swf文件导入。
更复杂一点的:将各种参数传递给flash:

<html>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var flashvars={
name1:"hello",
name2:"world"
}
var params={
menu: "false"
}
var attributes = {
id: "myDynamicContent",                
//注意:在这里不设置时flash影片的id值将继承于它的html父容器的id,设置后,flashid将会是此设置值(加载完毕响应函数callbackFn执行时,id还是原来的。之后就会改变)
name: "myDynamicContent"
}
function callbackFn(e) {
if(e.success)
{
alert("flash加载成功!\n id:"+e.id+"\n引用:"+e.ref)
}
else{
alert("flash加载失败!\n id:"+e.id)
}
}
swfobject.embedSWF("你的文件名地址.swf", "flashcontent", "300", "120", "10", "expressInstall.swf",flashvars, params, attributes, callbackFn);
</script>    
<div id="flashcontent">
This text is replaced by the Flash movie.
</div>
</html>

解释:

flashvars:传递给flash影片的URL类型参数。作用同于原始的 *.swf?name1="hello"&name2="wolrd"。as3中使用loaderInfo.parameters数组来获取参数值。比如使用loaderInfo.parameters['name1']获取到hello

params:flash的params标签值。作用同于原始的<param name=" menu" value="false" />

attributes:flash属性值作用同于<object classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628" id="Slider1" width="100" height="50"> 

关于最后一个事件回调参数callbackFn,它接收一个object对象比如e,在加载flash完毕或者失败后响应执行。e对象属性有:

success,指出是否加载成功(true/false)

id, 指出使用swfobject.registerObject()接口注册的flash的id (swfobject.registerObject接口在初始化时会自动调用)

ref, 当加载成功时,返回HTML对象元素的引用,失败时返回undefined。 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics