安全域、crossdomain.xml,到处都有各种各种零碎的基础解释,所以这里不再复述这些概念。
本文目的是整理一下各种跨域加载的情况。什么时候会加载crossdomain,什么时候不加载。
 
1、Loader加载图片或者swf,只要不是加载到同个安全域,都不需要拉取crossdomain.xml。获取在LoaderContext指定true,必须拉取。

     但如果后续,要读取图片或者swf里边内容,例如设置图片smoothing或者draw,都需要拉取这个文件
 
     如果文件不存在,会抛出安全沙箱冲突
 
     可以手工security.loadPolicyFile,也可以在loader中设置loader.load(new URLRequest("http://xxxxxxxx/xxxx.jpg"),new LoaderContext(true));
     但必须代码中指定拉取策略文件才会去拉取,flash不会自动拉取。如果到了截图的时候发现没有拉取这个文件,就会报错。
 
2、URLLoader请求的内容,flash会先自动请求crossdomain.xml,如果得到授权后再请求指定内容。
 
3、对于swf,如果要调用其他域名下的swf的脚本,还需要有Security.allowDomain()
 

如果两个 SWF 文件是同一个域提供,例如,http://mysite.com/movieA.swf 和 
http://mysite.com/movieB.swf,则 movieA.swf 可以检查和修改 movieB.swf 中的变量、对象、属性、方法等,而且 movieB.swf 也可以对 movieA.swf 执行同样的操作。这被称为跨影片脚本编写 或简称跨脚本编写

如果从不同的域提供两个 SWF 文件(例如 http://mysite.com/movieA.swf 和 
http://othersite.com/movieB.swf),则在默认情况下,Flash Player 既不允许 movieA.swf 编写 movieB.swf 的脚本,也不允许 movieB.swf 编写 movieA.swf 的脚本。通过调用 System.security.allowDomain(),一个 SWF 文件可授予其它域中的 SWF 文件编写其脚本的权限。这称为跨域脚本编写。通过调用 System.security.allowDomain("mysite.com"),movieB.swf 授予 movieA.swf 编写 movieB.swf 的脚本的权限。

使用 System.security.allowDomain() 建立的跨域权限是不对称的。在上一个示例中,movieA.swf 可以编写 movieB.swf 的脚本,但 movieB.swf 无法编写 movieA.swf 的脚本,这是因为 movieA.swf 未调用 System.security.allowDomain() 来授予 othersite.com 编写 movieA.swf 的脚本的权限。可以通过让两个 SWF 文件都调用 System.security.allowDomain() 来设置对称权限。
 
当然,有crossdomain.xml文件前提下,可以直接用urlloader加载回来,然后在loader.loadBytes,这样就放到同一个程序域内了,没有上述限制了。
 
4、如果swf在本地运行,情况又不一样,设置受信认区域(控制面板flash),本地可以加载任意网络文件都不会出错。因为flash会略过所有crossdomain文件

Flash:彻底理解crossdomain.xml、跨swf调用。的更多相关文章

  1. crossdomain.xml跨域配置文件的安全注意事项

    零.绪论: 对WEB中的FLASH确实了解不多,对程序中的跨域配置也了解不多,这是自己以前写的一篇笔记,到现在也还了解不深,勉强记下来罢了,备忘. 一.什么是crossdomain.xml?这是一个f ...

  2. 转载:flash 跨域 crossdomain.xml

    转载自http://hi.baidu.com/bozz_/item/e8b1c7c4ca31317489ad9e91 flash 跨域 crossdomain.xml 一.概述 位于www.cross ...

  3. Flash跨域传输数据 crossdomain.xml

    一.概述位于www.a.com域中的SWF文件要访问www.163.com的文件时,SWF首先会检查163服务器目录下是否有crossdomain.xml文件,如果没有,则访问不成功:若crossdo ...

  4. flash跨域访问,crossdomain.xml,error #2048

    最近遇到了flash的万年老梗,跨域访问的问题.之前一直没有处理过这类问题,是因为做项目的时候别人已经处理好了.真到自己遇到的时候,还是很费脑筋的. 1遇到的问题 客户端发布到网页的时候,socket ...

  5. flash跨域策略文件crossdomain.xml

    flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据. 位于www.a.com域中的SWF文件要访问www. ...

  6. flash跨域策略文件crossdomain.xml配置详解

    来源:http://www.2cto.com/Article/201108/100008.html 0x01 简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了 ...

  7. 关于跨域策略文件crossdomain.xml文件--配置实例

    转载自:http://bbs.phpchina.com/blog-52440-191623.html 我一直不太明白crossdomain.xml文件是干嘛用的,今天总算比较清楚的知道了一下. 这是F ...

  8. 关于跨域策略文件crossdomain.xml文件

    下载flexpaper源码修改后做成swf阅读器,要加入待阅读的swf文件,可以在flex里调用js的方法来获取swf文件的路径的方法,在js只专注获取路径就行,等着flex来调用:但这里会遇到一个问 ...

  9. [ActionScript 3.0] 跨域策略文件crossdomain.xml配置详解

    1.简介 flash在跨域时唯一的限制策略就是crossdomain.xml文件,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据. 位于www.a.com域中的SWF文件要访 ...

随机推荐

  1. Android 常用的数据加密方式

    前言 Android 很多场合需要使用到数据加密,比如:本地登录密码加密,网络传输数据加密,等.在android 中一般的加密方式有如下: 亦或加密 AES加密 RSA非对称加密 当然还有其他的方式, ...

  2. CentOS 7 在vmware中的网络设置

    一环境说明 二centos在vmware中的安装 三NAT网络设置 四设置固定IP 1修改网卡配置说明 2修改etcresolvconf 实现域名解析 五设置防火墙iptables 1 centos安 ...

  3. 联想昭阳(Lenovo)

    1996年,联想®昭阳系列推出了第一台笔记本电脑S5100.在经历了十几年的发展之后,联想昭阳系列也成为了国内市场占有率最高的国产商用笔记本品牌之一.昭阳品牌对于联想意义非凡,不仅仅是因为首款联想笔记 ...

  4. perf 高级命令简介

    perf 高级命令简介 1.使用 tracepoint 当 perf 根据 tick 时间点进行采样后,人们便能够得到内核代码中的 hot spot. 使用ls命令来演示 sys_enter 这个tr ...

  5. eclipse的块选择模式

    第一步:Alt+shift+a打开Toggle Block Selection Mode(块选择模式开关) 第二步:点击Toggle Block Selection 第三步:选择多行,同时编辑

  6. OpenCV教程(45) harris角的检测(3)

          在前面一篇教程中,我们通过取局部最大值的方法来处理检测结果,但是从图像中可以看到harris角的分布并不均匀,在纹理颜色比较深的地方检测的harris角结果更密集一些.本章中,我们使用一个 ...

  7. [leetcode]Next Permutation @ Python

    原题地址:https://oj.leetcode.com/problems/next-permutation/ 题意: Implement next permutation, which rearra ...

  8. uva 10712 - Count the Numbers(数位dp)

    题目链接:uva 10712 - Count the Numbers 题目大意:给出n,a.b.问说在a到b之间有多少个n. 解题思路:数位dp.dp[i][j][x][y]表示第i位为j的时候.x是 ...

  9. Centos安装FTP服务器和配置

    安装 yum install vsftpd 启动/重启/关闭 /sbin/service vsftpd start /sbin/service vsftpd restart /sbin/service ...

  10. 【算法】Java-Redis-Hash算法对比-参考资料

    Java-Redis-Hash算法对比-参考资料 redis java map 红黑树_百度搜索 java使用redis缓存(String,bean,list,map) - CSDN博客 redis ...