LoadVars.sendAndLoad 方法url参数值和返回值关系的测试

这段时间一直在做Flash和ASP的交互,处处都离不开LoadVars.sendAndLoad方法,但也发现因为其url参数值的不同常常引发返回值的不同,于是针对url参数值和返回值的关系做了本次测试,下边是测试过程。

一、准备工作

1、建立文件夹
Ⅰ:G:\test
Ⅱ:G:\test\test
Ⅲ:G:\test\测试
Ⅳ:G:\测试
Ⅴ:G:\测试\test
Ⅵ:G:\测试\测试

2、文件准备
①fla文件:主要就一个动态文本t2和一个按钮btn,按钮点击事件处理程序如下:
on (release) {
    var myvar = new LoadVars();
    myvar.sendAndLoad(url,myvar,"post"); //url值随各项测试变化
    myvar.onLoad = function(re){
        if(re){
            t2.text = "ok";
        }else{
            t2.text = "fail";
        }
    }
}

②123.asp:代码非常简单,就"a=1"
③123.txt: 内容非常简单,就"a=1"

3.文件复制上传
将准备好的三个文件在建好的六个文件夹都复制一份,同时也将123.asp和123.txt上传至http://www.mzwu.com根目录中一份。

4.约定
下边用Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ分别代表上边建的六个文件夹;T代表onLoad的值为true,F代表false。

5.其他说明
在Flash 8帮助文件中对load方法有说明:如果没有任何参数(空值)被传递,则(load方法返回值)为false,故上边123.txt、123.asp均有值,否则结果都将是F。

二、测试过程

1.本地相对地址测试。"有/"表示url参数值为"/123.txt","无/"表示url参数值为"123.txt",测试结果:



2.本地绝对地址测试。测试结果:



从上边两个测试结果可看出当前目录地址带有中文将对结果有影响;还有应尽量用相对路径,并且路径前应加"/",很多人测试好的Flash转为EXE后就出现文件加载不了,也就是因为相对路径前没加"/"!

3.网络路径。测试结果:



4.网络路径。测试结果:



从测试3、4可看出来EXE格式的能直接访问Internet上的内容,没有域的限制,而SWF格式则受域的限制,要跨域访问则访问的域上需有crossdomain.xml,并且允许SWF所在域的访问。但事情也并非那么绝对,在一些情况下我们还是可以不需crossdomain.xml实现跨域访问的,有兴趣的朋友可看看"sendAndLoad和Redirect的测试"。

上一篇: Flash没有replace函数?
下一篇: Flash读取XML文件示例
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 7198
发表评论
登录后再发表评论!