您当前的位置: 首页 >  http

Jave.Lin

暂无认证

  • 3浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

AS3 获取http 的 url、及js与as3的互调

Jave.Lin 发布时间:2012-07-06 20:30:46 ,浏览量:3

as3.0获取url参数,以及js和flash交互通信
一、as3.0获取URL是a.swf?id=50格式的参数值

知识点:import flash.display.LoaderInfo 使用loaderInfo.parameters["id"]的方式获取值。

简单的Demo

            package code{                 import flash.display.Sprite;                 import flash.display.LoaderInfo;                                  public class gbCore extends Sprite{                     private var id:String;                     public function gbCore() {                         id = loaderInfo.parameters["id"];                         writeVal.txt.text = id;                     }                              }                              }

二、as3.0获取URL是wmhfly.com?id=50格式的参数值

这个时候怎么获取值?

我的思路就是通过as去调用js,有js去获取值然后在回传给flash,中转的方式实现;

三、js和flash交互通信

知识点:import flash.external.ExternalInterface; as--js:ExternalInterface.call(js函数名称,[传递参数值...]) js--as:ExternalInterface.addCallback(js函数名称,as等待被调用函数名称)

简单的Demo

js code

        //as调用函数             function Alert(msg) {                 alert(msg)             }             //js调用as             function thisMovie(movieName) {                 if (window.document[movieName]) {                     return window.document[movieName];                 } else if (navigator.appName.indexOf("Microsoft Internet") == -1) {                     if (document.embeds && document.embeds[movieName]) return document.embeds[movieName];                 } else {                     return document.getElementById(movieName);                 }             }             function toASS(value) {                 thisMovie("toJs").toASS(value);             }    

as code

        package  code{             import flash.display.Sprite;             import flash.events.MouseEvent;             import flash.external.ExternalInterface;             public class toJs extends Sprite{                                  public function toJs() {                     toJS.addEventListener(MouseEvent.CLICK,clickHandler);                                          //添加回调函数                     ExternalInterface.addCallback("toASS",callHandler);                 }                                  //as调用js方法                 private function clickHandler(e:MouseEvent):void{                     //执行调用                     ExternalInterface.call("Alert","hello word!");                                      }                                  private function callHandler(msg:String):void{                     Toas.txt.text = msg;                 }             }                      }    

提醒:在js调用as的调试中,很可能会遇到ie有效,而FF无效的bug。这个时候,很可能是你的插入Flash的html结构不兼容。在FF下是要用embed的标签的,一般我们测试都是用Flash默认发布的代码测试,这个时候就会让你测试的特别郁闷,总是无法解决FF的bug,此时,你就可以用一个swfobject.js等组件来插入你的flash,消除兼容性问题,就可以解决问题了....

附上:DEMO下载【注意,需要iis的支持】

原文:http://wmhfly.com/skillShow/ACTIONSCRIPT/skill-ACTIONSCRIPT-59.html

关注
打赏
1664331872
查看更多评论
立即登录/注册

微信扫码登录

0.0389s