Flash精彩使用技巧 -- 加载变量出错

---摘自《搜狐》

问题:
当从远端服务器的一个文件加载变量时发生错误,无数据返回。

原因:
加载变量(Load Variables)的指令无法接入原Flash电影所存贮的服务器之外的外部数据资源。例如,如果Flash电影播放的网站域名为http://www.myserver.com,在你执行加载变量的指令时,它就会去直接寻找http://www.myserver.com/variablecontainer.txt这个文件,如果在此目录下存在这个文本文件,指令就可正常执行。但如果你所执行的加载变量指令是查找http://www.yourserver.com/variablecontainer.txt,那么就会出现错误,而且也不会返回任何信息,甚至报错信息。这主要是出于安全方面的考虑,Flash软件的播放器不允许接入外部数据资源。 解决方案: 最简单的解决方案是把你需要调用的数据资源从某外部服务器中调入Flash电影当前所在的服务器内。例如在上例中,你需要将http://www.yourserver.com中的数据转移至http://www.myserver.com下。

当然你也可以调用外部数据资源,并有以下两种方法:

*代理脚本编辑 你可以编写一个CGI脚本,从而允许你直接接入不同域名下的外部服务器。此时Flash电影将调用该CGI脚本来执行加载变量的指令。此CGI脚本可被置于Flash电影存放的同一域名下,当其被Flash电影调入时,将做为外部数据资源的代理。它能够接入外部域名数据资源服务器,获取变量信息,并将这些信息写入本地服务器内,以便让Flash播放器读取。 但这种方法的缺点是速度较慢,这是因为CGI脚本在接入外部服务器时会受到一定的影响,而且还可能会增大本地服务器的负载量。

*域名服务器别名 你还可以使用域名服务器(DNS)别名系统,当Flash电影向域名服务器别名系统发出请求指令时,域名服务器会截取URL链接,对请求进行分析,并把结果发送至外部服务器。 需要注意的一点是你应该对域名服务器系统进行设置,不允许其接受来自外部域名的请求。另外有时一些外部服务器可能会返回错误信息,而不是你所需要的变量。再有向你所在域名之外的服务器中添加DNS接入设置有时也会发生问题。 如果你想采取这套解决方案,请一定与系统管理员进行紧密的合作,以便对外部域名服务器进行有效的管理,以免某些问题的发生。