关于flash/flex的程序跨域访问swf或者图片资源
来源:互联网 发布:淘宝设计师男装品牌 编辑:程序博客网 时间:2024/05/17 22:09
subject of application domain of flash and air.
在flash或flex中,程序加载外部swf文件,该文件的程序域默认为主程 序域的一个子域中。比如你使用A.swf加载B.swf文件,B被加载后,成为A程序域的一个子域,子域是申明类的时,不能覆盖父类已申明类:如果A中定 义了类com.sogou.Map类,同时B中也定义了com.sogou.Map类,但是当B加入到A的程序域时,先检查A程序域中是否已存在一个类。 如果存在,则使用该已存在类,否则申明属于B子程序域的类。当然也可以将B不加载到默认域中,而是新建一个域:
var loader:Loader = new Loader();
var context:LoaderContext = new LoaderContext();
context.applicationDomain = new ApplicationDomain();
loader.load(new URLRequest(”B.swf”), context);
同时,A可以使用B程序域中的类:
var bDomain:ApplicationDomain = loader.contentLoaderInfo.applicationDomain;
if (bDomain.hasDefinition(”com.sogou.map::JustForB”)) {
//判断一个程序域中是否已定义一个类
var bc:class = bDomain.getDefinition(”com.sogou.map::JustForB”) as class;
var bcInst:Object = new bc();
}
然后便可使用在B中定义的类JustForB类。当然B亦可使用A程序域中的类,前提是B的域为A程序域的一个子域,B可以直接使用。
再就是,将B加载加入到当前程序域中:
var loader:Loader = new Loader();
var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
loader.load(new URLRequest(”B.swf”), context);
此时A和B的可以直接使用任何方所定义的任何类了(当然后定义的类不能覆盖先定义的类,即B中的com.sogou.map.Map不能覆盖A中的com.sogou.map.Map,二者任何地方使用的Map类都将来自A的定义。)
请注意:对于Load加载外部文件跨域问题分为两大类问题,一是对于swf,另一种是非swf文件,比如图片资源(jpg,png等)这时候,以上解决方案已经不适用,解决方案为:
指定context的checkPolicyFile属性为true,即为:
var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
var urlReq:URLRequest = new URLRequest("http://www.[your_domain_here].com/photo11.jpg");
var ldr:Loader = new Loader();
ldr.load(urlReq, context);
参考:http://www.javaeye.com/topic/581893
- 关于flash/flex的程序跨域访问swf或者图片资源
- flex swf访问资源的路径问题
- 关于使用SharedObject来缓存游戏图片或者swf文件资源到客户端本地的研究
- 关于flex的swf
- flex, swf 不能访问网络/本地资源
- flex安全沙箱,跨域访问图片资源问题解决
- flex 只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源
- Flex或Flash的跨域访问的解决方案
- Flex或Flash的跨域访问的解决方案
- flex SWFLoader 访问 SWF 交互 的方法
- Flash AS3.0加载外部资源(图片、MP3、SWF)的两种方式
- Flex或Flash的跨域访问解决方案
- flex加载外部swf文件[flex-swf and flash as3 swf],并且互相通讯-加强原来的帖
- flex/flash builder 生成可独立运行的swf
- flex 的swf访问不到的处理方法
- 在Flex中使用Flash的资源
- swf 不能访问本地资源
- 在flash builder中将flex项目导出单独的swf文件 全编译flash
- GridView、Repeater等数据控件列数字、货币和日期的显示格式
- error LNK2001: unresolved external symbol _main解决办法
- Apache配置详解(最好的APACHE配置教程)
- 基于文本内容理解的中医药数据基础研究——中医药文献语料库的建设
- 字符串匹配的一个小例子
- 关于flash/flex的程序跨域访问swf或者图片资源
- 声明和定义
- Android、JUnit深入浅出(五)——AndroidTest例子分析
- 求求 求个C语言源代码
- 查看系统程序所占用的端口
- Java中String 转换 int
- rs.open参数
- 正则表达式测试工具
- 了解 JAVA classloader