[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, background-color [, 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, background-color [, quality, 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端:

 1 <script type="text/javascript">
 2   var _file = "http://localhost:89/VideoPlayer/bin-debug/assets/3.jpg|http://localhost:89/VideoPlayer/bin-debug/assets/2.jpg";
 3   var _thumb = "http://localhost:89/VideoPlayer/bin-debug/assets/3.jpg|http://localhost:89/VideoPlayer/bin-debug/assets/2.jpg";
 4   var _wzsm = "文字1|文字2";
 5   var so = new SWFObject("MultPlayer.swf","CuPlayer","800","600","11","#00ffff");
 6   so.addParam("allowfullscreen","true");
 7   so.addParam("allowscriptaccess","always");
 8   so.addParam("wmode","opaque");
 9   so.addParam("quality","high");
10   //so.addParam("salign","lt");
11   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中
19 </script>

AS端:

 1 package
 2 {
 3     import flash.display.Sprite;
 4     import flash.events.Event;
 5
 6     /**
 7      * @author Frost.Yen
 8      * @E-mail [email protected]
 9      * @create 2015-9-4 上午11:56:13
10      *
11      */
12     public class TestSWFOject extends Sprite
13     {
14         public function TestSWFOject()
15         {
16             if (stage) init();
17             else addEventListener(Event.ADDED_TO_STAGE, init);
18         }
19         private function init(e:Event = null):void
20         {
21             removeEventListener(Event.ADDED_TO_STAGE, init);
22             this.loaderInfo.addEventListener(Event.COMPLETE,onLoaded);
23         }
24         private function onLoaded(e:Event):void
25         {
26             trace(stage.loaderInfo.parameters.time);
27             trace(stage.loaderInfo.parameters.startview);
28             trace(stage.loaderInfo.parameters.autoplay);
29             trace(stage.loaderInfo.parameters.videoskin);
30             trace(stage.loaderInfo.parameters.file);
31             trace(stage.loaderInfo.parameters.wzsm);
32             trace(stage.loaderInfo.parameters.thumb);
33         }
34     }
35 }
时间: 2024-10-25 13:56:29

[ActionScript] AS3利用SWFObject与JS交互的相关文章

[AS3.0] HTMLLoader与js交互

HtmlLoader 的属性window是加载到 HTML 控件中的内容的全局 JavaScript 对象,通过这个对象能够方便的和页面js通讯. AS代码: import flash.html.HTMLLoader; import flash.net.URLRequest; import flash.events.MouseEvent; var html:HTMLLoader = new HTMLLoader(); html.width = 960; html.height = 540; ht

Android 中利用WebViewJavascriptBridge 实现js和java的交互(一)

此文出自:http://blog.csdn.net/sk719887916/article/details/47189607 ,skay 博客 按安卓开发目前现状来说,开发者大部分时间还是花在UI的屏幕适配上,使用原生控件开发成本已不是那么理想,鉴于很多项目和ios基于一致的ui界面,至使安卓UI开发成本花费更大的代价,因此目前结合Html5和原生控件是解决UI适配的一种很好的选择,处于APP性能也会用java和native层进行结合.不管是哪种结合,其实原理都差不多,只要按照它的协议来,是很容

Android 利用WebViewJavascriptBridge 实现js和java的交互(一)

此文出自:http://blog.csdn.net/sk719887916/article/details/47189607,skay 按安卓开发眼下现状来说,开发人员大部分时间还是花在UI的屏幕适配上,使用原生控件开发成本已不是那么理想,鉴于非常多项目和ios基于一致的ui界面.至使安卓UI开发成本花费更大的代价,因此眼下结合Html5和原生控件是解决UI适配的一种非常好的选择.处于APP性能也会用java和native层进行结合.无论是哪种结合.事实上原理都几乎相同,仅仅要依照它的协议来,是

iOS JS 交互之利用系统JSContext实现 JS调用oc方法

ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择如下操作,(拖入的文件夹是蓝色的,相对路径),不然css,js 的路径会存在问题 加载本地html: oc调用js:一句代码搞定 2.js 调用oc js调用oc又分为两种: 1.js端是直接调用方法 这里就要说到ios7才推出的一个新的api    JavaScriptCore,首先我们引入这个类,并初始化一个JSContext对

WKWebView与js交互之完美解决方案

??最近对团队中的混合开发框架进行了重构,下面就和大家来说说自己的思路以及解决方案. ??随着H5功能愈发的强大,没进行过混合开发的小伙们都不好意思说自己能够独立进行iOS的app开发,在iOS7操作系统下,常用的native,js交互框架有easy-js,WebViewJavascriptBridge,以及结合javaScriptCore的框架.easy-js 很早的一个框架了,已经好几年没有人维护了,里面有很多隐藏很深的坑,新人如果没有用过的话,建议不要再用了.主要是js新建一个隐藏的ifr

利用R语言进行交互数据可视化(转)

上周在中国R语言大会北京会场上,给大家分享了如何利用R语言交互数据可视化.现场同学对这块内容颇有兴趣,故今天把一些常用的交互可视化的R包搬出来与大家分享. rCharts包 说起R语言的交互包,第一个想到的应该就是rCharts包.该包直接在R中生成基于D3的Web界面. rCharts包的安装 require(devtools) install_github('rCharts', 'ramnathv') rCharts函数就像lattice函数一样,通过formula.data指定数据源和绘图

iOS开发——网络开发OC篇&amp;OC与JS交互简单案例

OC与JS交互简单案例 网页开发中三个重要的知识,这里就不详细介绍了! Html:页面代码 Css:样式 javascript:响应 先来看一段html的简单代码,里面涉及了上面的三个部分(很简单) 1 <html> 2 <!--描述网页信息--> 3 <head> 4 <meta charset="UTF-8"/> 5 <title>hello world</title> 6 <script> 7 f

oc与js交互-----WKWebView

这些天研究了一些oc与js交互的问题,纯属个人理解 oc与js交互是跨平台iOS与javaScript的通信.公司为了开发节约成本,本来安卓,与iOS两个版本的app开发,利用js通过webView的加载只需要做一些交互工作就使得javaScript书写的页面可以同时在安卓与iOS上使用可谓一举两得. WKWebView里边的方法 1.OC中调用js方法(我认为是oc向js中传值) 使用的是 <span style="background-color: rgb(255, 255, 255)

android webview与js交互(动态添加js)

1.本地html与本地html里的js交互 2.本地html与本地js交互 3.网络html与网络js交互 4.网络html与本地js交互 5.各个情况动态添加js 以上5点都可以用一种方式来模拟,在本篇中采用本地html与本地js交互 (包含动态添加js的操作) 6.拦截url请求(在webview加载完成以后,触发的请求url) 7.拦截url请求后返回自己封装的数据(基于第6点,加载完成后,触发一些请求数据的url时拦截并自己封装数据返回给webview) 注:6.7点将在下一篇博客介绍