Flash 与 JavaScript的交互:JS与SWF的通讯方式

所谓通讯就是信息的交换,这里我们谈的是js与Flash之间的数据交换的几种方式:

  1.Flashvars

    Flashvars - Flash初始化信息的传递者,它由N组 名值对 组成;当你的flash文件需要某些初始信息的时候就需要用到它。

    1)如果你使用标签嵌入Flash的方法,应像这样:<param name="flashvars" value="text=这是flashvars传入的数据啊" /> 用 param 标签传递信息;

    2)如果你使用的是 swfobject 就是用上面提到的,定义一个flashvars的变量然后在调用swfobject.embedSWF方法时传入这个变量;

    3)或者上面的这两种方法都可以在你要嵌入的Flash文件地址后面加上问号传递 入:"xxx.swf?name1=hello&name2=world ";

 

  2.JS调用Flash的方法,用参数传递信息给Flash或者得到Flash方法的返回信息

    Flash对象.flash方法名字(参数1,参数2, …);
    如:
      var flashObj = getFlashFun(“flashID”);
      var value = flashObj.flashFunName(args);

    注意:
      1.参数个数必须跟Flash里面的参数个数一致
      2.非同域下需要得到Flash内部的允许 Security.allowDomain(… domains)


       

  3.Flash调用js方法得到js方法的返回信息 或 通过参数传递信息给JS

    
ExternalInterface.call(js的函数名称,  ”参数1”,  ”参数2”, …);

    如:

    var value:String = ExternalInterface.call(“jsFunName“,  ”argument1”,  ”argument2”);


    注意非同域下设置 param 标签的 allowScriptAccess 属性的 value值为 always,如
      
var params = {

        allowScriptAccess: "always"
      }; 

      或:

      <param name="allowScriptAccess" value="always" />

posted on 2011-11-23 16:06  ASV5  阅读(1547)  评论(0编辑  收藏  举报