zoukankan      html  css  js  c++  java
  • [ActionScript] AS3利用SWFObject与JS通信

    首先介绍SWFObject的用法:

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

    1. swfUrlString,必须的)指定SWFURL

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

    3. widthString,必须的)指定SWF的宽。

    4. heightString,必须的)指定SWF的高。

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

    6. expressInstallSwfurlString,可选的)指定express install SWFURL并激活Adobe express install

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

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

    9. attributesString,可选的)用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的方式给FlashRoot添加变量,对于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 871979853@qq.com
     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 }

     

     

     

     

     

     

     

  • 相关阅读:
    几个常用myeclipse快捷键
    5G layer
    customize the entry point of pod runtime
    关于JS Pormise的认识
    修改 /etc/pam.d/login, linux 本地账号密码无法登陆,一直返回 登陆的login界面
    Java支付宝PC网站支付功能开发(详细教程)
    支付宝PC支付功能异步通知签名验证失败解决方案
    提交代码出现 Push to origin/master was rejected 错误解决方法
    易语言连接RCON详细教程实例(演示连接Unturned服务器RCON)
    易语言调用外部DLL详细实例教程
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4781507.html
Copyright © 2011-2022 走看看