首先介绍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. Web前端开发笔试&面试_05

    >>CW 1.JavaScript的2种变量范围有什么不同? 2.JavaScript 的对象有哪些? 3.

  2. js移动焦点到最后

      当输入框(input/textarea)获得焦点时,将焦点移动到最后,在某些情况下用户体验很好.网上的大部分方法都是针对IE浏览器的.代码如下: var el = document.getElem ...

  3. sklearn小知识

    特征缩放:# 为了追求机器学习和最优化算法的最佳性能,我们将特征缩放 from sklearn.preprocessing import StandardScaler sc = StandardSca ...

  4. 编写使用SpringSecurity的JUnit测试提醒

    近日在使用SpringSecurity的项目中发现一个小问题,就是在接口上加了@Secured标注限制调用接口权限时,某些JUnit无法正常调用了. 例如: @Secured(PrivilegeDAO ...

  5. Android MVC模式

    Android MVC模式 下面是我对Android MVC模式的理解 Model 模型层 包括实体模型层,存放程序中调用的实体. 业务模型层,存放程序中调用的业务逻辑.   View 显示层  An ...

  6. js 删除DropDownList的选项

    function del_DropDownList_Option() {            var   ddlXZ=  document.getElementById("name&quo ...

  7. 【linux】cut

    vim test id name age score 101 paul 18 100 102 suan 11 99 103 peter 18 98 [root@andon ~]# cut -f 2 t ...

  8. bzoj3521: [Poi2014]Salad Bar

    Description 有一个长度为n的字符串,每一位只会是p或j.你需要取出一个子串S(从左到右或从右到左一个一个取出),使得不管是从左往右还是从右往左取,都保证每时每刻已取出的p的个数不小于j的个 ...

  9. grep 与正则表达式

    正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理.本文以grep为例来讲解正则表达式. grep命令 功能:输入文件的每一行中查找字符串. 基本用法: grep [- ...

  10. 在mac上安装svn客户端

    mac 10.8上面,默认是没有svn客户端的,可以通过以下两种方式来安装:    1.单独安装xcode命令行工具,安装完成后,在终端中就可以使用svn命令了,目前版本是1.6.18:    2.去 ...