加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash as3输出并执行javascript

发布时间:2020-12-15 06:58:03 所属栏目:百科 来源:网络整理
导读:? 最近一直在做flash和javascript脚本通信的工作,而公司有些项目是widget项目,主要载体是用的flash呈现的。有天,leader就问我,是否有办法让flash来输出javascript脚本。 我当时只是想到利用navigateToURL(new URLRequest("javascript:"));类似这样的方法
?
最近一直在做flash和javascript脚本通信的工作,而公司有些项目是widget项目,主要载体是用的flash呈现的。有天,leader就问我,是否有办法让flash来输出javascript脚本。
我当时只是想到利用navigateToURL(new URLRequest("javascript:"));类似这样的方法来输出一段javascript脚本。
这种方法常常被用来作为点击flash中的一个按钮达到关闭浏览器的目的。
如:navigateToURL(new URLRequest("javascript:window.close()"),"_self");
或者刷新页面:
navigateToURL(new URLRequest("javascript:location.reload();"),"_self")

但是如果我想创建某些页面脚本,并且运行,靠这个方法就很难实现了。



ExternalInterface.call()是作为as3来调用页面javascript的方法,其中有两个参数,第一个是javascript的函数名称,而后面的是方法的参数。
今天在做项目的时候,突然想到了javascript中的eval方法。
这样我就可以书写类似这样的脚本了。
ExternalInterface.call("eval","var divHelloWorld=document.createElement('div');divHelloWorld.style.position='absolute';divHelloWorld.style.zIndex=999;divHelloWorld.top='0px';divHelloWorld.style.left='0px';divHelloWorld.style.height=document.documentElement.clientHeight;divHelloWorld.style.width=document.documentElement.clientWidth;divHelloWorld.style.backgroundColor='#ff6';divHelloWorld.style.align='center';divHelloWorld.style.lineHeight=document.documentElement.clientHeight;divHelloWorld.style.verticalAlign='middle';document.body.appendChild(divHelloWorld);");
这样相对复杂的javascript脚本了。



当然这样也就多了一种调试方法 ExternalInterface.call("window.alert","需要调试的字符串");

当然,这个需要flash的承载容器中allowScriptAccess至少得开放了 sameDomain。能允许flash和页面脚本通信。这样就可以把需要的javascript脚本全部封装在swf文件中了。 当然也可以干些别的事情,比如QQ空间是屏蔽了css中的expression的,QQ空间以前也对allowScriptAccess加了sameDomain限制,但是现在QQ空间连这个限制也没有了。所以要做QQ空间的免费换皮肤,免费挂件什么的,都是可以实现的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读