Flash 动作脚本之:了解Action Script2.0 (5)
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-13
AS代码2.0:针对Flash Player 7(3) ???? 四、SWF文件之间从HTTP到HTTPS协议的访问 正如前一节所讨论的,在Flash 7播放器中,跨域和子域访问的规则已经修改。除了现在执行精确域匹配规则外,你必须显式说明允许存放在使用不安全协议的站点的文件访问存放在使用安全协议(HTTPS)的站点的文件。根据被调用的文件是针对Flash 7播放器还是针对Flash 6播放器发布的,你必须执行一个allowDomain语句,或使用新的LocalConnection.allowInsecureDomain事件处理函数或System.security.allowInsecureDomain()语句。 警告:执行allowInsecureDomain()语句危及HTTPS协议提供的安全。只有在你不能重新组织你的站点以便所有的SWF文件都能接受HTTPS协议的服务时才做这样的修改。 下面的代码说明你可能需要做的修改: // 允许存放在http://www.someSite.com或http://www.someOtherSite.com的 // 针对Flash 7播放器发布的SWF文件访问的存放在https://www.someSite.com // 针对Flash 6播放器发布的SWF文件中的命令 my_lc.allowDomain = function(sendingDomain) { return(sendingDomain=="someOtherSite.com"); } // 允许针对Flash 7播放器发布的 // 存放在http://www.someSite.com或http://www.someOtherSite.com的 // 针对Flash 7播放器发布的SWF文件访问的对应命令 System.security.allowInsecureDomain("www.someSite.com", "www.someOtherSite.com"); my_lc.allowInsecureDomain = function(sendingDomain) { return(sendingDomain=="www.someSite.com" || sendingDomain=="www.someOtherSite.com"); } 如果你当前还没有使用这些语句,你也可能需要添加这样的语句。 即使两个文件都在相同的域也可能需要修改(例如,存放http://www.domain.com的文件调用存放在https://www.domain.com的文件)。 总的来说,如果你针对Flash 7播放器发布文件且符合以下条件,你可能要修改你的文件,添加或修改语句: ①你编写跨SWF文件的脚本(使用loadMovie()、MovieClip.loadMovie()、MovieClipLoader.LoadClip()或本地连接对象)。 ②调用文件没有存放在使用HTTPS协议的站点和被调用的SWF文件存放在使用安全协议(HTTPS)的站点。 你必须做以下修改: ①如果被调用的SWF文件是针对Flash 7播放器发布的,在被调用的SWF文件中包含System.security.allowDomain或LocalConnection.allowDomain语句,使用精确域名匹配(如本节前面的代码实例所示)。即使调用的和被调用的SWF文件存放在相同的域,也需要这个语句。 ②如果被调用的SWF文件是针对Flash 6或以前的播放器版本发布的,且调用的和被调用的文件都存放在相同的域(例如,存放http://www.domain.com的文件调用存放在https://www.domain.com的文件),不需要修改。 ③如果被调用的SWF文件是针对Flash 6播放器版本发布的,调用的和被调用的文件不在相同的域,而你又不想针对Flash 7播放器导出被调用文件,就要修改被调用文件,添加或修改System.security.allowDomain或LocalConnection.allowDomain语句,使用精确域名匹配(如本节前面的代码实例所示)。 ④如果被调用的SWF文件是针对Flash 6播放器版本发布的,而你又想针对Flash 7播放器发布被调用文件,就在被调用文件中包含System.security.allowDomain或LocalConnection.allowDomain语句,使用精确域名匹配(如本节前面的代码实例所示)。即使两个文件都存放在相同的域,也需要这个语句。 ⑤如果被调用的SWF文件是针对Flash 5或以前的播放器版本发布的,且两个文件不在相同的域,你可以做两件事情。你可以针对Flash 6播放器发布被调用文件或修改System.security.allowDomain语句,使用精确域名匹配(如本节前面的代码所示);或者你可以针对Flash 7播放器发布被调用文件,使用精确域名匹配(如本节前面的代码实例所示)。 五、允许访问数据的服务器端策略文件 使用这些数据装载调用,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 7播放器发布任何文件,你也应该创建策略文件。如果你正在使用RSL,且针对Flash 7播放器发布调用的和被调用的文件,你应该创建策略文件。 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: FlashMX经典实例(7)下一篇: Flash 动作脚本之:资料速查(2)
关于Flash 动作脚本之:了解Action Script2.0 (5)的所有评论