首先介绍SWFObject的用法:

swfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfurl, flashvars, params, attributes) 有5个必须的参数和4个可选的参数:

1. swfUrl(String,必须的)指定SWF的URL。

2. id(String,必须的)指定将会被Flash内容替换的HTML元素(包含你的替换内容)的id。

3. width(String,必须的)指定SWF的宽。

4. height(String,必须的)指定SWF的高。

5. version(String,必须的)指定你发布的SWF对应的Flash Player版本(格式为:major.minor.release)

6. expressInstallSwfurl(String,可选的)指定express install SWF的URL并激活Adobe express install 。

7. flashvars(String,可选的)用name:value对指定你的flashvars。

8. params(String,可选的)用name:value对指定你的嵌套object元素的params。

9. attributes(String,可选的)用name:value对指定object的属性

以下这段代码给出了SWFObject的常用参数:

var so = new SWFObject(swf, id, width, height, version, backgroundColor ,[quality, xiRedirectUrl, redirectUrl, detectKey]);

so.addParam("Param1", "Param2");

so.addParam("Param3", "Param4");

so.addParam("Param5", "Param6");

so.addVariable("variable1", "value1");

so.addVariable("variable2", "value2");

so.addVariable("variable3", "value3");

so.addVariable("variable1", getQueryParamValue("variable1"));

so.addVariable("variable2", getQueryParamValue("variable2"));   so.write("content");

解释一下这些参数的作用:

var so = new SWFObject(swf, id, width, height, version, backgroundColor ,[uality, xiRedirectUrl, redirectUrl, detectKey]);         //这段是SWFObject必须的基本参数,所有SWFObject都必须包含的。

so.addParam("Param1", "Param2");   //这里是给Flash添加内联参数,可以实现诸如背景透明之类的效果。依照需求添加就可以了,参数和emded/object标签是一样的代码,下同。

so.addParam("Param3", "Param4");

so.addParam("Param5", "Param6");

so.addVariable("variable1", "value1");    //这里是给Flash添加FlashVar,这是以FlashVar的方式给Flash的Root添加变量,对于Number型变量在Flash端需要做类型转换。

so.addVariable("variable2", "value2");

so.addVariable("variable3", "value3");

so.addVariable("variable1", getQueryParamValue("variable1"));   //Flash获取URL变量对于url?arg1=test1&arg2=test2这样用GET方式传递变量的URL,我们可以用getQueryParamValue方法来获取变量。

so.addVariable("variable2", getQueryParamValue("variable2"));

so.write("content");    //这里是至关重要的一个地方,他是用一段特定内容取代Flash无法显示时的内容。可以事先在CSS里定义好样式,在文档里使用div标签写出来。这里在调用过来。

下面写一个AS与JS通信的实例:

JS端:

 <script type="text/javascript">
  var _file = "http://localhost:89/VideoPlayer/bin-debug/assets/3.jpg|http://localhost:89/VideoPlayer/bin-debug/assets/2.jpg";
  var _thumb = "http://localhost:89/VideoPlayer/bin-debug/assets/3.jpg|http://localhost:89/VideoPlayer/bin-debug/assets/2.jpg";
  var _wzsm = "文字1|文字2";
  var so = new SWFObject("MultPlayer.swf","CuPlayer","800","600","11","#00ffff");
  so.addParam("allowfullscreen","true");
  so.addParam("allowscriptaccess","always");
  so.addParam("wmode","opaque");
  so.addParam("quality","high");
  //so.addParam("salign","lt");
  so.addVariable("time","5000");//如自动播放图片间隔的时间,为0不自动播放。
12   so.addVariable("startview","0");//0代表开始显示图片区域,1代表开始显示视频区域。
13   so.addVariable("file",_file);//调用格式以“|”进行分割。
14   so.addVariable("thumb",_thumb);//视频或者图片图标
15   so.addVariable("wzsm",_wzsm);//文字说明以”|”进行分割与文件一一对应点击视频或图片显示到文字区域。
16   so.addVariable("autoplay","true");//是否自动播放图片或视频
17   so.addVariable("videoskin","http://localhost:89/TestSwfObject/src/demo/videoskin.swf");
18   so.write("CuPlayer");//显示到相应DIV中
</script>

AS端:

 package
{
import flash.display.Sprite;
import flash.events.Event; /**
* @author Frost.Yen
* @E-mail 871979853@qq.com
* @create 2015-9-4 上午11:56:13
*
*/
public class TestSWFOject extends Sprite
{
public function TestSWFOject()
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
this.loaderInfo.addEventListener(Event.COMPLETE,onLoaded);
}
private function onLoaded(e:Event):void
{
trace(stage.loaderInfo.parameters.time);
trace(stage.loaderInfo.parameters.startview);
trace(stage.loaderInfo.parameters.autoplay);
trace(stage.loaderInfo.parameters.videoskin);
trace(stage.loaderInfo.parameters.file);
trace(stage.loaderInfo.parameters.wzsm);
trace(stage.loaderInfo.parameters.thumb);
}
}
}

[ActionScript] AS3利用SWFObject与JS通信的更多相关文章

  1. [ActionScript3.0] AS3利用ExternalInterface与js通信

    AS3代码,可做文档类; package { import flash.display.Sprite; import flash.events.*; import flash.external.Ext ...

  2. objC与js通信实现--WebViewJavascriptBridge

    场景   在移动端开发中,最为流行的开发模式就是hybmid开发,在这种native和h5的杂糅下,既能在某些需求中保证足够的性能,也可以在某些列表详情的需求下采用h5的样式控制来丰富内容.但是在大型 ...

  3. js 通信

    js 页面间的通信 看了一下公司原来的代码,原页面ajax post返回一个页面完整的HTML,然后再打开一个新页面并输出ajax返回的所有代码到新页面上,在新页面上以表单提交的形式实现重定向. 任凭 ...

  4. 利用snowfall.jquery.js实现爱心满屏飞

    小颖在上一篇一步一步教你用CSS画爱心中已经分享一种画爱心的方法,这次再分享一种方法用css画爱心,并利用snowfall.jquery.js实现爱心满屏飞的效果. 第一步: 利用伪元素before和 ...

  5. 父窗口,子窗口之间的JS"通信"方法

    今天需要在iframe内做一个弹窗,但使用弹窗组件的为子窗口,所以弹窗只在子窗口中显示掩膜层和定位,这样不符合需求. 后来晓勇哥指点,了解到一个以前一直没关注到的东西,每个窗口的全局变量,其实都存在对 ...

  6. jQuery Validate 表单验证插件----利用jquery.metadata.js将校验规则直接写在class属性里面并定义错误信息的提示

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面 ...

  7. Xilium.CefGlue利用XHR实现Js调用c#方法

    防外链 博客园原文地址在这里http://www.cnblogs.com/shen6041/p/3442499.html 引 Xilium CefGlue是个不错的cef扩展工程,托管地址在这里 ht ...

  8. flex与js通信、在浏览器中打开新窗口

    一.flex与js通信(通过flex调用js方法) var urlR:URLRequest = new URLRequest("javascript:test('from flex')&qu ...

  9. 利用css+原生js制作简易钟表

    利用css+原生js制作简单的钟表.效果如下所示 实现该效果,分三大块:html.javascript.css html部分html部分比较简单,定义一个clock的div,内部有原点.时分秒针.日期 ...

随机推荐

  1. ABBYY导出结果为PDF注意事项

    使用ABBYY FineReader Pro for Mac OCR文字识别软件识别文档时,可以将已识别的文本保存到文件中,还可以通过电子邮件发送已识别的文本,只要输出格式受FineReader支持. ...

  2. {好文备份}SQL索引一步到位

    SQL索引一步到位(此文章为"数据库性能优化二:数据库表优化"附属文章之一)   SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百 ...

  3. Partial RenderPartial Action RenderAction 区别和用法

    区别: 1.Partial 与 RenderPartial 两个方法性质基本一样,只是把一个静态用户控件给嵌入进来. 2.Partial 回传一堆html代码,直接写进到页面上@Html.Partia ...

  4. mfs-用户

    http://blog.csdn.net/liuyunfengheda/article/details/5260278 MFS总结 http://bbs.chinaunix.net/thread-16 ...

  5. 【转】UVa Problem 100 The 3n+1 problem (3n+1 问题)——(离线计算)

    // The 3n+1 problem (3n+1 问题) // PC/UVa IDs: 110101/100, Popularity: A, Success rate: low Level: 1 / ...

  6. const, static and readonly

    const, static and readonly http://tutorials.csharp-online.net/const,_static_and_readonly Within a cl ...

  7. MyBatis插入多条

    <insert id="insertProjectPropertyRelList" parameterType="java.util.List"> ...

  8. 怎么利用WinPE恢复系统注册表?

    我们的电脑总是会遇到各种各样的问题,最好用的方式就是电脑重装,重装系统的方式有很多,光盘安装.硬盘安装.U盘安装等.但是碰到电脑系统瘫痪无法启动,甚至连安全模式也进不了的时候,你的光盘.硬盘就没有用处 ...

  9. nodejs小问题:express不是内部或外部命令

    来源:http://jingyan.baidu.com/article/922554468a3466851648f419.html 一时兴起想学习点东西,准备在heroku上部署一个Node.js的小 ...

  10. C++开发者都应该使用的10个C++11特性

    转载自http://blog.jobbole.com/44015/ 在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛.不过我相信这些新特性当中有一些,应该成为所有C++开 ...