AS与JS交互

主要用到下面两个类

ExternalInterface.call(functionName: String, ... arguments): *
[static] 调用由 Flash Player 容器公开的函数,不传递参数或传递多个参数。
注:调用html页面中的js方法,然后传递多个参数。
[static] 将 ActionScript 方法注册为可从容器调用。
注:从html页面调用as方法,注意:此方法必须在回调之前先注册。

AS中的代码

ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript); //注册为可从html页面回调


private function receivedFromJavaScript(value:String):void {
            trace("JavaScript says: " + value + "\n");//1000
        }

ExternalInterface.call("sendToJavaScript", 100); //调用html 页面中的sendToJavaScript()方法,并且传值为100.

AS项目下的index.template.html(模板配置文件)

 <script type="text/javascript" src="swfobject.js"></script>
        <script type="text/javascript">
            // For version detection, set to min. required Flash Player version, or 0 (or 0.0.0), for no version detection.
            var swfVersionStr = "${version_major}.${version_minor}.${version_revision}";
            // To use express install, set to playerProductInstall.swf, otherwise the empty string.
            var xiSwfUrlStr = "${expressInstallSwf}";
            var flashvars = {name:"feng",sex:1,bir:2009-1-1};//往flash中传参数
            var params = {};
            params.quality = "high";
            params.bgcolor = "${bgcolor}";
            params.allowscriptaccess = "sameDomain";
            params.allowfullscreen = "true";
            var attributes = {};
            attributes.id = "${application}";
            attributes.name = "${application}";
            attributes.align = "middle";
            swfobject.embedSWF(
                "${swf}.swf?love:"fishing"", "flashContent",
                "${width}", "${height}",
                swfVersionStr, xiSwfUrlStr,
                flashvars, params, attributes);
            // JavaScript enabled so display the flashContent div in case it is not replaced with a swf object.
            swfobject.createCSS("#flashContent", "display:block;text-align:left;");
         
            function sendToActionScript(value) {
                  swfobject.getObjectById('${swf}').receivedFromJavaScript(1000);

                //document.write(jsonString);
                //console.log(jsonString)
            }
        </script>


public function addToStageHandler(event:Event):void
            {
                var param:Object = root.loaderInfo.parameters;
                for(var i:String in param)
                {
                    trace("vars----:"+i,param[i]);
                }
            }
           

输出结果如下:vars----:name feng
vars----:sex 1
vars----:bir 2007
vars----:love:fishing

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值