当Flash置于HTML容器中时,经常会遇到Flash与JS的通信问题,例如:JS能否调用Flash中的变量、方法,Flash能否调用JS中的变量、方法等等。答案是肯定的。随着技术的不断发展,解决方案也是多种多样的。

比如存在js端方法:
  function JsFun(){
    alert(123);
  }

一、Flash调用js端方法:
1)方法一、getURL调用JS:  
  getURL("javascript:JsFun()");
  //带参数的JS方法:getURL("javascript:JsFun('a',1,true)");

2)方法二、ExternalInterface调用JS: 
  import flash.external.ExternalInterface;//导入 ExternalInterface 类   
  ExternalInterface.call("JsFun"); 
  //带参数的JS方法:ExternalInterface.call("JsFun",'a',1,true);
注意:如果要使用 ExternalInterface,当前帧必需要有 import flash.external.ExternalInterface; 或者 import flash.external.*;

二、js调用Flash方法:
1)方法一、
Flash端代码:
  import flash.external.*; //导入包
  ExternalInterface.addCallback("FlashFun",this,FlashFun); //将函数注册到容器列表
  function FlashFun(str:String){ //Flash内部函数
    lbl_Name.text = str; //lbl_Name是Flash端的文本标签
  }

js端代码:
  function GetFlashObj(flashName){ //根据flash的name获取flash对象,也可以根据flash的id来获取document.getElementById(flashId);
    if(navigator.appName.indexOf('Microsoft')!=-1){
      return window[flashName];
    }else{
      return document[flashName];
    }
  }
  GetFlashObj('demo').FlashFun('Hello World!');

2)方法二、
js端给Flash端的变量赋值,在Flash端侦听变量的变化:
js端代码:
  GetFlashObj('demo').SetVariable('status',1); //SetVariable(变量名,变量值);

Flash端代码:
  var status=0;//变量名
  setInterval(function(){
    if(status==1)
      FlashFun();
  },1000);
  function FlashFun(){
    //
  }

flash与js交互的更多相关文章

  1. Flash和js交互的效率分析

    Flash和js交互的效率分析   AS代码: var time:int = getTimer(); for (var i:int = 0; i < 50000; i++) { External ...

  2. [转载]解决flash与js交互、flash跨域交互、flash跨域提交

    http://blog.csdn.net/andyxm/article/details/5219919 我们引用本地flash,实现flash与js双向交互. function thisMovie(m ...

  3. 【转】第7篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:全自动注册与反射方法分析

    作者: 牛A与牛C之间 时间: 2013-12-12 分类: 技术文章 | 2条评论 | 编辑文章 主页 » 技术文章 » 第7篇:Xilium CefGlue 关于 CLR Object 与 JS ...

  4. ActionScript和js交互

    新建的ActionScript项目,默认新建会在“默认包”中创建一个和项目名称相同以as结尾的文件,as项目开始执行时要new一个这样的类在类上方加入一些参数可以为生成的swf初始化一些样式 [SWF ...

  5. 关于JS交互--调用h5页面,点击页面的按钮,分享到微信朋友圈,好友

    关于js交互,在iOS中自然就想到了调用代理方法 另外就是下面的,直接上代码了: 如果你的后台需要知道你的分享结果,那么,就在回调里面调用上传到服务器结果的请求即可

  6. webView和js交互

    与 js 交互 OC 调用 JS // 执行 js - (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *title = [web ...

  7. 李洪强iOS经典面试题147-WebView与JS交互

    李洪强iOS经典面试题147-WebView与JS交互   WebView与JS交互 iOS中调用HTML 1. 加载网页 NSURL *url = [[NSBundle mainBundle] UR ...

  8. WebView---Android与js交互实例

    Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true 原文地址:http://blog.csdn.net/it10 ...

  9. iOS与JS交互实战篇(ObjC版)

    前言 ObjectiveC与Js交互是常见的需求,可对于新手或者所谓的高手而言,其实并不是那么简单明了.这里只介绍iOS7.0后出来的JavaScriptCore framework. 关于JavaS ...

随机推荐

  1. 2017年1月5日 星期四 --出埃及记 Exodus 21:31

    2017年1月5日 星期四 --出埃及记 Exodus 21:31 This law also applies if the bull gores a son or daughter.牛无论触了人的儿 ...

  2. 在Excel中制作金字塔条形图

    使用场景:一项市场调查研究中,男性和女性.赞同和反对.满意和不满意的两方面的消费者,他们在某些项目上的指标分布特性一项产品组合决策中,乐观场景和悲观场景下各产品的获利情况一个产品试销活动中,不同门店渠 ...

  3. alert效果

    <!DOCTYPE html> <head> <meta charset="utf-8" /> <title>拉伸效果</ti ...

  4. python基础 Day01 练习题

    1 字符串格式化 #!/urs/bin/env python name = input("Name: ") age = int(input("Age: ")) ...

  5. 命令行用sublime打开当前目录

    执行    ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" subl 就可以在命令行用 ...

  6. Codeforces 722D. Generating Sets

    D. Generating Sets time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  7. JFinal - 事务实现的原理

    使用声明式事务 事务类本身就是一个拦截器,可以用注解的方式配置.方法内部的所有 DML 操作都将在本次事务之内. 配置代码如下: @Before(Tx.class) public void saveP ...

  8. 在windows上搭建react-native的android环境

    参考文档: http://facebook.github.io/react-native/docs/getting-started.html http://reactnative.cn/docs/0. ...

  9. [poj1182]食物链(并查集+补集)

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64841   Accepted: 19077 Description ...

  10. 把 Mac 上的 bash 换成 zsh

      本人补充:mac版git下载地址:http://code.google.com/p/git-osx-installer/downloads/list?can=3&q=&sort=- ...