原文链接:http://randi0624.iteye.com/blog/1544912
语法介绍:
swfobject.embedSWF(swfUrl, id, width, height, version,
expressInstallSwfurl, flashvars, params, attributes, callbackFn)
一共10个参数,其中前5个为必须,后5个为可选,各参数说明如下:
- swfUrl:(字符类型,必选)要加载的 swf 文件的 URL 地址;
- id :(字符类型,必选)加载 swf 文件的 HTML 容器(div)的id 标识,必须页面唯一;
- width,height:(字符类型,必选)加载 swf 文件的 HTML容器(div)的宽高;
- version:(字符类型,必选)指定加载 swf 文件的最低 Flash Player 版本号,格式:"major.minor.release" or "major";
- expressInstallSwfurl:(字符类型,可选)当版本低于要求时,执行该swf文件,这里利用这个flash跳转到官方下载最新版本的flash插件;
- flashvars:(对象类型,可选)使用 name:value 的形式指定 swf 文件的入口参数;
- params:(对象类型,可选)使用 name:value 的形式指定加载 swf 文件时的 Flash 参数;
- attributes:(对象类型,可选)使用 name:value 的形式指定 swf 对象的属性;
- callbackFn:(Javascript函数,可选)指定一个回调函数,这个回调函数无论加载 swf 文件成功或失败都会调用;
常用的 Flash 参数:
- play:是否立即自动播放,当加载完毕后,可选值:true、false;
- loop:是否循环播放,可选值:true、false;
- menu:是否启用右键菜单,可选值:true、false;
- quality:指定影片质量,可选值:low、autolow、autohigh、medium、high、high;
- scale:当 width 和 height 值是百分比时,定义应用程序如何放置在浏览器窗口中,可选值:showall、noborder、exactfit;
- salign:(可选)指定缩放的 Flash SWF 文件在由 width 和 height 设置定义的区域内的位置,可选值:L、R、T、B、TL、TR、BL、BR;
- wmode:(可选)允许使用 Internet Explorer 4.0 中的透明 Flash 内容、绝对定位和分层显示功能。此标记/属性仅在带有 Flash Player ActiveX 控件的 Windows 中有效,可选值:Window、Opaque、Transparent;
- bgcolor:背景颜色,格式:#RRGGhttp://randi0624.iteye.com/admin/blogs/newBB;
- base:基准连接地址;
- allowscriptaccess :使用 allowscriptaccess 使 Flash 应用程序可与其所在的 HTML 页通信。此参数是必需的,因为 fscommand() 和 getURL() 操作可能导致 JavaScript 使用 HTML 页的权限,而该权限可能与 Flash 应用程序的权限不同。这与跨域安全性有着重要关系,可选值:always、never、samedomain;
- seamlesstabbing:(可选)允许设置 ActiveX 控件执行无缝跳格,从而使用户能跳出 Flash 应用程序。该参数只能在安装 Flash Player ActiveX 控件版本 7 及更高版本的 Windows 中使用。可选值:true、false;
带脚本参数的加载方式(JSON方式):
var flashvars = {name1:"hello",name2:"word"};
var params = {menu:"false"};
var attributes = {id:"myContent",name:"myContent"};
swfobject.embedSWF("myContent.swf","myContent","300","120",
"10.0.0","expressInstall.swf",flashvars,params,attributes)
当flash加载好后,js调用flex中的函数:
//调用flash方法;myContent为swfobject对象的id;flash为flex中的方法
//注:在flex中flash初始化时需要注册方法
//ExternalInterface.addCallback("flash",flash);
function go_to_flash(){
thisMovie("myContent").flash(a,b,c);
}
//搭建js与flash互通的环境
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}else{
return document[movieName]
}