当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash 动作脚本之:了解Action Script2.0 (4)

Flash动画制作
巧用超级解霸在Flash V5.0中插入录像
教你用Flash MX来制作简单的课件界面
Flash MX 2004 ActionScript图文教程(二)
Flash MX 2004 ActionScript图文教程(三)
Flash MX 2004 ActionScript图文教程(四)
Flash MX 2004 ActionScript图文教程(五)
Flash MX 2004 ActionScript图文教程(六)
flash场景之间相互跳转的实现方法
Flash本地加密
FLASH -- 关于变量的问题FLASH -- 关于变量的问题
Flash5 画任意直线教程
Flash MX 视频导入功能详解
制作飞舞的蝴蝶
Flash MX 2004 ActionScript图文教程(七)
Flash MX 2004 ActionScript图文教程(八)
Flash MX 2004 ActionScript图文教程(九)
Flash MX 2004 ActionScript图文教程(十)
Flash教程 飞翔的文字
Flash MX 2004 ActionScript图文教程(十一)
制作Flash网站技巧拾零

Flash动画制作 中的 Flash 动作脚本之:了解Action Script2.0 (4)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 77 ::
收藏到网摘: n/a

AS代码2.0:针对 Player 7(2)

    

三、SWF文件之间的跨域和子域访问

  当你开发一系列互相通讯的SWF文件时,例如,当使用loadMovie()、MovieClip.loadMovie()、 MovieClipLoader.LoadClip()命令或本地连接对象时,你可能把这些动画文件存放在不同的域或一个超域的不同的子域中。

  在针对Flash 5或更早版本的播放器发布的文件中,跨域或子域访问不受限制。

  在针对Flash 6播放器发布的文件中,你可以使用LocalConnection.allowDomain事件处理函数或System.security.allowDomain()方法来指定允许跨域访问(例如,让在someOtherSite.com域的文件访问在someSite.com域的文件),且无需用命令来允许子域访问(例如,在store.someSite.com子域的文件可以访问在www.someSite.com子域的文件)。

  在针对Flash 7播放器发布的文件中,SWF文件之间的访问与早期版本有两个方面的不同。首先,Flash 7播放器执行精确域匹配而不是超域匹配规则。因此,被访问的文件(即使是针对早期的Flash播放器版本而不是Flash 7播放器发布的文件)必须显式指定允许跨域或子域访问。其次,存放在使用安全协议(HTTPS)站点中的文件,必须显式指定允许来自使用不安全协议(HTTP或)的站点的文件的访问。

  因为Flash 7播放器执行精确域匹配而不是超域匹配规则,如果你想要针对Flash 7播放器发布的文件能够访问你现有的脚本,你可能需要修改这些脚本。(你仍然可以针对Flash 6播放器发布修改过的文件。)

  如果你在文件中使用LocalConnection.allowDomain()或System.security.allowDomain()语句,并指定允许访问超域站点,你必须修改你的参数来指定准确的域。下面的代码说明你可能需要进行的修改:

  // 允许存放在www.someSite.com或store.someSite.com域的SWF文件访问
// 存放在www.anyOldSite.com域的SWF文件中的Flash 6播放器命令
System.security.allowDomain("someSite.com");
my_lc.allowDomain = function(sendingDomain) {
 return(sendingDomain=="someSite.com");
}
// 允许针对Flash 7播放器发布的SWF文件访问的对应命令
System.security.allowDomain("www.someSite.com", "store.someSite.com");
my_lc.allowDomain = function(sendingDomain) {
 return(sendingDomain=="www.someSite.com" ||
  sendingDomain=="store.someSite.com");
}

  如果你当前还没有使用这些语句,你也可能需要添加这样的语句。

  例如,如果你的SWF文件存放在www.someSite.com域,且你想允许存放在store.someSite.com域针对Flash 7播放器发布的SWF文件访问,你必须给存放在www.someSite.com域的文件添加下列语句(你仍然可以针对Flash 6播放器发布存放在www.someSite.com的文件):

  System.security.allowDomain("store.someSite.com");
  my_lc.allowDomain = function(sendingDomain) {
      return(sendingDomain=="store.someSite.com");
  }

    

  总的来说,如果你针对Flash 7播放器发布文件且符合以下条件,你可能要修改你的文件,添加或修改allowDomain语句:

  ①你编写跨SWF文件的脚本
  使用loadMovie()、MovieClip.loadMovie()、MovieClipLoader.LoadClip()或本地连接对象。

  ②被调用的SWF文件(任何版本)不是存放在使用安全协议(HTTPS)的站点,或调用的和被调用的SWF文件都存放在使用安全协议(HTTPS)的站点。

  ③SWF文件不在相同的域
  例如,一个文件在www.domain.com,另一个在store.domain.com。

  为此你需要做以下修改:

  ①如果被调用的SWF文件是针对Flash 7播放器发布的,在被调用的SWF文件中包含System.security.allowDomain或LocalConnection.allowDomain语句,使用精确域名匹配。

  ②如果被调用的SWF文件是针对Flash 6播放器发布的,修改被调用的SWF文件,添加或修改System.security.allowDomain或LocalConnection.allowDomain语句,使用精确域名匹配(如本节前面的代码所示)。你可以针对Flash 6或7播放器发布修改过的文件。

  ③如果被调用的SWF文