[AS3]as3.0下Flash跨域加载xml,jpg等数据
允许Flash跨域加载数据
Flash 文档可通过使用以下某种数据加载调用方法从外部源加载数据:XML.load()、XML.sendAndLoad()、LoadVars.load()、LoadVars.sendAndLoad()、loadVariables()、loadVariablesNum()、MovieClip.loadVariables()、XMLSocket.connect() 和 Macromedia Flash Remoting (NetServices.createGatewayConnection)。另外,SWF 文件可以在运行时导入运行时共享库 (RSL) 或另一个 SWF 文件中定义的资源。默认情况下,数据或 RSL 必须与加载该外部数据或媒体的 SWF 文件驻留在同一个域中。
若要使运行时共享库中的数据和资源可用于其它域中的 SWF 文件,应使用跨域策略文件。跨域策略文件是一个 XML 文件,该文件提供的方法可以使服务器指示其数据和文档可用于从某些域或所有域提供的 SWF 文件。服务器的策略文件指定的域所提供的所有 SWF 文件都将被允许访问该服务器中的数据、资源或 RSL。
如果您加载外部数据,即使不想将任何文件移植到 Flash Player 7 中,也应创建策略文件。如果您使用 RSL,并且调用或被调用文件是以 Flash Player 7 为目标播放器发布的,则应创建策略文件。
允许跨域数据加载
当 Flash 文档试图访问另一个域中的数据时,Flash Player 将自动试图从该域加载策略文件。如果试图访问数据的 Flash 文档所在的域包括在该策略文件中,则数据将自动成为可访问数据。
策略文件必须命名为 crossdomain.xml,并且可以驻留在服务器的根目录和其它目录之中,该服务器提供具有其它 ActionScript 的数据。只有在通过 HTTP、HTTPS 或 FTP 进行通信的服务器上,策略文件才起作用。策略文件特定于它所驻留的服务器的端口和协议。
例如,位于 https://www.macromedia.com:8080/crossdomain.xml 的策略文件只适用于在端口 8080 通过 HTTPS 对 www.macromedia.com 进行的数据加载调用。
此规则的例外情况是,使用 XMLSocket 对象连接到另一个域中的套接字服务器。如果是这种情况,运行于与套接字服务器所在的同一个域中端口 80 上的 HTTP 服务器必须提供该方法调用的策略文件。
XML 策略文件包含单个 <cross-domain-policy> 标签,该标签又包含零个或多个 <allow-access-from> 标签。每个 <allow-access-from> 标签包含一个属性 domain,该属性指定一个确切的 IP 地址、一个确切的域或一个通配符域(任何域)。通配符域由单个星号 (*)(匹配所有域和所有 IP 地址)或后接后缀的星号(只匹配那些以指定后缀结尾的域)表示。后缀必须以点开头。但是,带有后缀的通配符域可以匹配那些只包含后缀但不包含前导点的域。例如,cuplayer.com 可以看作是 *.cuplayer.com 的一部分。IP 域规范中不允许使用通配符。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例