在AS2中,使用sendAndLoad和getURL实现与后台进行数据交互,在AS3中取消了这个方法,取而代之的是sendToURL和navigateToURL。
首先,我们看一下AS3帮助中官方的解释:
sendToURL | () | 函数 | |
public function sendToURL(request:URLRequest):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
向服务器发送一个 URL 请求,但忽略任何响应。
若要检查服务器响应,请改为使用 URLLoader.load()
方法。
navigateToURL | () | 函数 | |
public function navigateToURL(request:URLRequest, window:String = null):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
在包含 Flash Player 容器的应用程序(通常是一个浏览器)中,打开或替换一个窗口。
下面是sendToURL的使用的例子:
package
{
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.URLRequestMethod;
import flash.net.sendToURL;
import flash.net.navigateToURL;
public class Main extends Sprite
{
public var url:String;
public var ureq:URLRequest;
public var uvar:URLVariables;
public var urqmethod:URLRequestMethod;
public function Main():void {
init();
}
public function init():void {
url = "http://localhost/test/net/send.php";
uvar = new URLVariables();
uvar.mes = "sendcreate";
ureq = new URLRequest(url);
ureq.data = uvar;
ureq.method = URLRequestMethod.POST;
sendToURL(ureq);
}
}
}
send.php的代码:
<?php
$filename=$_POST['mes'];
mkdir($filename);
?>
运行成功的话,在swf所在的目录下会多一个hello world的文件夹;
将上面的AS代码中的url改为http://localhost/test/net/navigate.php,
后面使用navaigateToURL(ureq);
navigate.php代码的话,跟send.php的代码完全相同,所以,如运行成功的话,在目录底下同样会多一个hello world文件夹!
两个方法实现的结果是一样的,区别在于,使用sendToURL方法,php代码是在后台执行的;
而使用navigateToURL方法,会弹出一个新的navaigate.php窗口执行代码。
另外AS代码中涉及到的一些对象如下:
url:String 这是个字符串对象,用来存储我们指向的地址
ureq:URLRequest 这个urlRequest对象可以捕获耽搁http请求中的所以信息,比如说传输变量
uvar:URLVairables 这个就是要传输的变量了,里面可以包含所有要传输的值,他要做为ureq的一个属性
URLMethods 这是http请求的方法POST或者GET