js调用as3

最近做项目正好用到js跟as的通信,从网上搜的示例拿过来改改就用,做起来很是头痛,闲下来结合cookbook的章节整理了一个出来。
首先,要用到as3中的externalInterface类,它不仅封装了运行时与js通信所需的所有功能,而且还包含了从js中调用as函数所需的功能。
                        ExternalInterface.addCallback("function1",callback1);
这样就接受到了js发送过来的function1请求,并执行as3中的callback1函数
as3 code:
  1.                 private function callback1():void{
  2.                         var left:Number=Math.random()*stage.width;
  3.                         var top:Number=Math.random()*stage.height;
  4.                         ball=new Sprite();
  5.                         ball.graphics.beginFill(Math.random() * 0xffffff + 0xff000000);
  6.                         ball.graphics.drawCircle(left,top,10);
  7.                         ball.graphics.endFill();
  8.                         addChild(ball);
  9.                 }
复制代码

个人感觉最难得是js部分
简单来说就是获取页面上的flash然后向其发送请求
第一步判断浏览器
  1.          function invokeFlash(name){
  2.                  var swf=name;
  3.                  var container;
  4.                  if(navigator.appName.indexOf("microsoft")!=-1){
  5.                          container=window;
  6.                  }else{
  7.                          container=document;
  8.                  }
  9.                  return container[swf];
  10.          }
复制代码

第二步 发送请求:invokeFlash('asTojs').function3()
当然最先的是将flash插入,我试过最简单的用html代码插入可是无法用js发送请求,最后用了网上的一种办法用js插入:
  1.                 var so = new SWFObject("asTojs.swf", "asTojs", "500", "375", "9", "#000");
  2.                 so.addParam("quality" , "high");
  3.                 so.addParam("allowScriptAccess" , "sameDomain");
  4.                 so.write("icenter");
复制代码

这样还得导入一个js库:swfobject.js
这样js就能很好的调用as了,希望达人多指正,还有没有什么好办法。

演示地址

原文地址:http://bbs.blueidea.com/forum.php?mod=viewthread&tid=2965471 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fancybit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值