Flash中动态生成Js方法,实现页面刷新等功能

这也是js方法"eval"的一种应用。

在flash中生成js的方法,然后通过ExternalInterface调用。

通过这种机制,可以在Flash中实现整个页面刷新,以及在Flash中获取所在网页的链接等功能。

代码很简单,我就不直接说了,贴出来,大家可以直接看效果 

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" fontFamily="Times New Roman" 
            fontSize="12" creationComplete="init()">
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import flash.external.ExternalInterface;
            
            private function init():void
            {
                //需要在js生成的代码
                var str:String = "function testMethod(str)";
                str = str + "{";
                str = str + "alert('Flash传来:' + str);";
                str = str + "return 'js返回:' + str;";
                str = str + "}";
                //利用eval函数生成
                ExternalInterface.call("eval", str);
            }
            
            private function buttonClick():void
            {
                //调用刚刚生成的方法
                var str:String = ExternalInterface.call("testMethod", valueText.text);
                Alert.show(str);
            }
            private function fulshHtmlEvent():void
            {
                //刷新页面
                ExternalInterface.call("eval", "location.reload();");
            }
        ]]>
    </mx:Script>
    <mx:Button label="提交" id="subimtBtn" click="buttonClick()"/>
    <mx:TextInput width="122" id="valueText"/>
    <mx:Label text="Flash数据:"/>
    <mx:Button label="刷新页面" id="flushBtn" click="fulshHtmlEvent()"/>
</mx:Application>

总结:

实现Flash调用JS方法,有以下三点需要注意: 

  1. 必须在Flash代码中导入ExternalInterface,即添加如下代码

    import flash.external.ExternalInterface

  2. 引用Flash的object标签必须有id属性。

  3. object标签中必须传递allowScriptAccess参数,同时object中的embed标签也要加上这个属性。

    allowScriptAccess的值可以为always, sameDomain, never。

 

转载于:https://my.oschina.net/u/178116/blog/372724

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值