首先,要用到as3中的externalInterface类,它不仅封装了运行时与js通信所需的所有功能,而且还包含了从js中调用as函数所需的功能。
ExternalInterface.addCallback("function1",callback1);
这样就接受到了js发送过来的function1请求,并执行as3中的callback1函数
as3 code:
- private function callback1():void{
- var left:Number=Math.random()*stage.width;
- var top:Number=Math.random()*stage.height;
- ball=new Sprite();
- ball.graphics.beginFill(Math.random() * 0xffffff + 0xff000000);
- ball.graphics.drawCircle(left,top,10);
- ball.graphics.endFill();
- addChild(ball);
- }
个人感觉最难得是js部分
简单来说就是获取页面上的flash然后向其发送请求
第一步判断浏览器
- function invokeFlash(name){
- var swf=name;
- var container;
- if(navigator.appName.indexOf("microsoft")!=-1){
- container=window;
- }else{
- container=document;
- }
- return container[swf];
- }
第二步 发送请求:invokeFlash('asTojs').function3()
当然最先的是将flash插入,我试过最简单的用html代码插入可是无法用js发送请求,最后用了网上的一种办法用js插入:
- var so = new SWFObject("asTojs.swf", "asTojs", "500", "375", "9", "#000");
- so.addParam("quality" , "high");
- so.addParam("allowScriptAccess" , "sameDomain");
- so.write("icenter");
这样还得导入一个js库:swfobject.js
这样js就能很好的调用as了,希望达人多指正,还有没有什么好办法。
原文地址:http://bbs.blueidea.com/forum.php?mod=viewthread&tid=2965471