我正在尝试Flash开发,想知道如何将一些变量发布到URL。假设用户玩了一个Flash游戏,它被打包成EXE或SWF,嵌入在用户计算机上的HTML中,而不是从某个网页上,并且想通过填写一个简单的表格来注册分数,只需输入一个电子邮件地址并按下一个按钮。
即使Flash应用程序不在活动网页上,也有可能做到这一点吗?
如果在网页或本地计算机上,则使用相同的方法。你可以这样做:
(未测试的代码)var request:URLRequest = new URLRequest("http://yoursite.com/yourpage.php");
request.method = URLRequestMethod.POST;
request.data = "emal=someemail@email.com&score=79597";
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, callWasMade);
loader.addEventListener(IOErrorEvent.IO_ERROR, callFailedIOError);
loader.load(request);
function callWasMade(evt:Event):void{
//Optionally check server response
}
function callFailedIOError(evt:IOErrorEvent):void {
//Holy crap I can't reach my server!
}
这是可能的,但您需要一些服务器端脚本以及PHP。查看http://www.gotoandlearn.com获取一些很棒的教程。
基本上,您创建一个URLRequest到服务器端脚本并发送一些数据。您可以使用URLVariables将数据传递给脚本。然后,脚本可以接收数据并将其保存在数据库中或发送邮件。这是来自Adobe文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLVariables.html
public function URLVariablesExample() {
var url:String = "http://www.example.com/script.php";
var request:URLRequest = new URLRequest(url);
var variables:URLVariables = new URLVariables();
variables.exampleSessionId = new Date().getTime();
variables.exampleUserLabel = "guest";
request.data = variables;
navigateToURL(request);
}
在PHP端,你可以这样做:
$exampleSessionId = $_REQUEST['exampleSessionId'];
$exampleUserLabel = $_REQUEST['exampleUserLabel'];
$message = "Id: " . $exampleSessionId . ", Label: " . $exampleUserLabel;
mail('toaddress@example.com', 'My Subject', $message);