[ActionScript] AS3利用SWFObject与JS通信
首先介绍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通信的更多相关文章
- [ActionScript3.0] AS3利用ExternalInterface与js通信
AS3代码,可做文档类; package { import flash.display.Sprite; import flash.events.*; import flash.external.Ext ...
- objC与js通信实现--WebViewJavascriptBridge
场景 在移动端开发中,最为流行的开发模式就是hybmid开发,在这种native和h5的杂糅下,既能在某些需求中保证足够的性能,也可以在某些列表详情的需求下采用h5的样式控制来丰富内容.但是在大型 ...
- js 通信
js 页面间的通信 看了一下公司原来的代码,原页面ajax post返回一个页面完整的HTML,然后再打开一个新页面并输出ajax返回的所有代码到新页面上,在新页面上以表单提交的形式实现重定向. 任凭 ...
- 利用snowfall.jquery.js实现爱心满屏飞
小颖在上一篇一步一步教你用CSS画爱心中已经分享一种画爱心的方法,这次再分享一种方法用css画爱心,并利用snowfall.jquery.js实现爱心满屏飞的效果. 第一步: 利用伪元素before和 ...
- 父窗口,子窗口之间的JS"通信"方法
今天需要在iframe内做一个弹窗,但使用弹窗组件的为子窗口,所以弹窗只在子窗口中显示掩膜层和定位,这样不符合需求. 后来晓勇哥指点,了解到一个以前一直没关注到的东西,每个窗口的全局变量,其实都存在对 ...
- jQuery Validate 表单验证插件----利用jquery.metadata.js将校验规则直接写在class属性里面并定义错误信息的提示
一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW 访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面 ...
- Xilium.CefGlue利用XHR实现Js调用c#方法
防外链 博客园原文地址在这里http://www.cnblogs.com/shen6041/p/3442499.html 引 Xilium CefGlue是个不错的cef扩展工程,托管地址在这里 ht ...
- flex与js通信、在浏览器中打开新窗口
一.flex与js通信(通过flex调用js方法) var urlR:URLRequest = new URLRequest("javascript:test('from flex')&qu ...
- 利用css+原生js制作简易钟表
利用css+原生js制作简单的钟表.效果如下所示 实现该效果,分三大块:html.javascript.css html部分html部分比较简单,定义一个clock的div,内部有原点.时分秒针.日期 ...
随机推荐
- P1001 第K极值【tyvj】
/*========================================== P1001 第K极值 内存限制 128MB 代码限制 64KB 描述 Description 给定一个长度为N ...
- nedb nodejs 数据库学习
// Type 1: In-memory only datastore (no need to load the database) var Datastore = require('nedb') ...
- linux node&& npm 安装方式
1. 编译好的文件 简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题都没有,不过不是全局的,所以将这个设置为全局就好了. cd node-v0 ...
- JS刷新页面的几种方法(转)
Javascript刷新页面的几种方法: 1 history.go(0) 2 location.reload() 3 location=location 4 location.assign(locat ...
- ANDROID中获取STRING.XML,DIMENS.XML等资源文件中的值
一:是为了国际化,当需要国际化时,只需要再提供一个string.xml文件,把里面的汉子信息都修改为对应的语言(如,English),再运行程序时,android操作系统会根据用户手机的语言环境和国家 ...
- ORA-01013:用户请求取消当前的操作
ORA-01013:用户请求取消当前的操作 在测试一个通过ODBC连接ORACLE数据库的VB程序时,总是出现该错误,估计应该是数据量比较大,导致超时. 查到解决方法有如下四种 (选任意一种即可): ...
- centos6.5 安装iptables
阿里云默认是没有安装iptables 安装 yum install -t iptables yum install iptables-services 检查iptables服务的状态 service ...
- 如何修改Oracle字符集
一.什么是Oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.它使数据库 ...
- Windows命令行查看文件的MD5
certutil -hashfile D:\apache-tomcat-7.0.68-windows-x64.zip MD5certutil -hashfile D:\apache-tomcat-7 ...
- PHP使用1个crontab管理多个crontab任务
http://www.binarytides.com/php-manage-multiple-cronjobs-with-a-single-crontab-entry/ In many php app ...