论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

绕开安全沙箱跨域调用Swf中的方法

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:40:03


Flash作为一个跨域跨平台的产品,可以让开发者很便利地开发出跨域的产品, 之前我使用本地通讯对象做了一个通讯平台的本地代理, 例如: 一款横向的互联网应用程序,它是实时链接到服务器的,可以通过Socket或是Rtmp等方式,那么,当用户同时找开N个网页的时候,每一个应用程序都有可能与服务器建立一个链接,而采用本地通讯对象做一个本地通讯平台的代理很具优势,它可以大大减少服务器端的负荷. 但是作为这样一个产品其安全性要求应该是比较严格的. 自从学习Flash AS以后, 之前我就发现了一个安全沙箱的问题. 今天我又发现一个,即: 绕开安全沙箱跨域调用Swf中的方法. 之前听到大伙就跨域加载位图无法访问里面的数据的问题已有解决方法,而我这里是对跨域加载异域的Swf并实例化里面的资源或是类,并调用这些类.各位看到我的代码可以去测试一下. 思路如下:
1.通过URLLoader以二进制的方式加载异域的SWF.
2.加载得到的二进制通过Loader.loadBytes()方法再加载一次. [这里并不会影响加载执行的效率,因为是在内存中进行的.]
3.然后在Loader加载成功的方法里面用: content=event.currentTarget;保存.
4.这个时候你会发现content已经是一个Loader了.而里面的contentLoaderInfo.content已经是一个MovieClip了.
5.你可以通过content.contentLoaderInfo.applicationDomain.getDefinition(name)的方式实例化里面的资源了.
---------------------------------------------------------------------------------------
代码在"Flash本地运行库探索"里面已基本列出来加载的方法. 这里不描述了.
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058