宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

flash调用js中的方法,让js传递变量给flash (兼容 IE & FF)

2016-10-13 00:16:48 点击量:7 标签: 收藏本文

  前几天发表了 将FlashVars写在JS函数中,实现与后台的实时变量更新,但是仅支持 IE,随后与 Luckyer 进行了交流,发现用 SetVariable 可以很方便的实现多浏览器兼容。举例如下。
 

  html 页中的 JavaScript 函数:

  1. function GetSwfUrl()  
  2. {  
  3. var pics1 = parseInt(Math.random()*5)+1;  
  4. var pics2 = parseInt(Math.random()*5)+1;  
  5. document.my_swfId.SetVariable("pic01Num", pics1);  
  6. document.my_swfId.SetVariable("pic02Num", pics2);  

  说明:pic01Num 和 pic02Num 为 Flash 中定义的变量,以上函数将 JS 变量 pics1 和 pics1 分别赋值予 Flash 变量 pic01Num 和 pic02Num 。my_swfId 为 html 页中 swf 的 id .

  在 Flash 中与 JS 的通信可以用传统的 getURL,Flash8 以后,可以用 ExternalInterface 。ExternalInterface 在功能上与 fscommand()、CallFrame() 和 CallLabel() 方法相似,但它更灵活、更通用。推荐对 JavaScript 和 ActionScript 之间的通讯使用 ExternalInterface 。
 

  getURL调用JS:

  1. getURL("javascript:GetSwfUrl()");  


  ExternalInterface调用JS:

  1. import flash.external.ExternalInterface;//导入 ExternalInterface 类  
  2. ExternalInterface.call("GetSwfUrl()"); 

  注意:如果要使用 ExternalInterface,当前帧必需要有 import flash.external.ExternalInterface; 或者 import flash.external.*;

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室