最近碰到一个棘手的问题,就是设计As与Js通信的Flex项目编译后,将bin-debug目录放在其他路径下,其中的As与Js 通信就会出现问题。而且连SDK中的sdks\3.2.0\frameworks\javascript\fabridge\samples下的例子也会运行不正常。
try catch之后获取异常为#2060安全沙箱冲突的问题。但是如何解决这个问题呢。
google了一下,找到了这篇不错的blog,里面讲的很详细,既不赘述其原理了,例如:
http://apps.hi.baidu.com/share/detail/16158883
主要原因就是Flex安全沙箱的问题,通过上面的博客解决的办法有了。
1.找到本地计算机Flash Player的安装路径,我的是win7路径是:
(C:\Windows\SysWOW64\Macromed\Flash\FlashPlayerTrust),
(注:其中的FlashPlayerTrust文件夹如果没有需要自己创建,xp的路径应该是:C:\Windows\System32\Macromed\Flash\FlashPlayerTrust)
2.在FlashPlayerTrust文件夹中创建一个.cfg(自定名称即可),文件内容为
c:\
d:\
e:\
(注:这里可以指定将来插件的安装路径,减小风险。每个路径占一行,用#添加注释)
3.讲过如上操作放在c/d/e盘下的flash文件就能正常的完成As和Js的通信了。
问题的关键在于Flex的安全机制,Flex的安全模型是围绕SWF文件、本地数据和Internet URL等这些对象资源设计的。设计到上述问题的应该是计算机管理用户控制。
管理用户和安装应用程序可以指定本地swf文件注册为受信。这些swf文件会被分配到受信的本地沙箱。他们可以与任何其他swf文件进行交互,也可以从任何位置(远程或本地)加载数据。
插件中需要加入上述授权文件。
通过上述设置,通讯正常了,通过这个问题对安全沙箱的安全机制了解了不少,对处理安全问题方面的内容有机攒了点经验。
分享到:
相关推荐
亲测可用!我也是初学者,找了好久,网上都语焉不详。还是CSDN好! 1、as文件是源代码,fla是源文件。...if (ExternalInterface.available)ExternalInterface.call("sendToJavaScript", ala2);这一句话。
3、使用Flash中的ExternalInterface.call方法和fscommand方法对JS进行调用与传送数据。 4、使用Flash中的ExternalInterface.addCallback方法创建接口,使JS能够调用AS中的函数。 包含swfobject.js与fla源文件。 (*...
通过ExternalInterface.call()方法,在Flash中调用JS函数。 通过调用带参的JS函数实现Flash向JS传值,通过调用带返回值的JS函数实现JS向Flash传值。 2、JS调用Flash传递数据: 通过ExternalInterface.addCallback()...
网路上找的残缺不齐 甚至没有返回值。 我这个不是两个专案,但关键代码都齐。 学个三个月以上的,就看得懂。 代码贴对地方,可以直接运行。 新手别下。
与asp js交互数据实现 ------------------------------ import fl.controls.Button; import fl.core.UIComponent; var TF : TextFormat = new TextFormat(); TF.size = 16; TF.color = 0x0000ff; key.setStyle(...
jsp和flash函数互相调用的方法ExternalInterface.call和ExternalInterface.addCallback
OpenSPARCT1 External Interface
Added setFlashCallObject and setFlashCallListener methods to support the Flash ExternalInterface.call functionality (requires Flash 9 or greater) - Added callFunction method which can call Flash ...
ExternalInterface
as3.0利用ExternalInterface与js交互的播放器,重写flvPlayerbeta0.1例子
ExternalInterface在我看来就是flash为了外部程序的调用所声明的接口。看到论坛里有好多人问但是回答的就不是很多,就把自己做的一个简单的例子放上来.写的不好,希望能抛砖引玉,大侠勿拍!!这个是里面用到的flash...
关于Flash和JS相互调用的例子已经说很多了,这不是难题,当然,调用错误这也不是Flash和JS的错误,我们今天就来彻底解决IE,FF和Chrome之间的不兼容问题! 我们知道,Flash中,如果访问外部JS函数,只需 代码如下:...
js-communicate INTRAS-JS的交互通讯模块,提供了JS中模拟AS3事件监听处理方式用于取代AS直接调页面接口的方式。使用该库将为SWF提供三个接口给JS来调用:notify,用于JS调AS中的接口swf.notify('pausePlayer', [p1,...
flex与js交互 关于ExternalInterface使用的小例子
所对应的flash没有加载完,在js就开始调用flash中的ExternalInterface.addCallback()所开放的方法,导致flash还没获取到值时就开始播放音乐,此时,当然播放不了。为了保证能正常传值,就必须在flash加载完后才传值...
flex与javascript交互利用externalinterface.callback函数进行。
“ExternalInterface”类是外部API,在ActionScript和FlashPlayer的容器之间实现直接通讯的应用程序编程接口,例如,含有JavaScript的HTML页。推荐对所有JavaScript与ActionScript之间的通信使用ExternalInterface。...
不用getURL和fsCommand方法 flash使用的actionscript跟javascript是非常相通的,下面描述如何互相调用函数: 1:javascript调用flash中的函数 在flash的脚本中增加 import flash.external.ExternalInterface;...
flash as 3.0通过ExternalInterface与c#通信
代码如下: <?xml version=”1.0″ encoding=”utf-8″?>...![CDATA[ import flash.... public function invokeJavaScript():void { lblResult.text=ExternalInterface.call(“returnTheName”,txtName.text); } ]]