PHP与FLASH间的通信(LoadVars方法)
研究了2个小时把PHP+FLASH搞通了。网络的文章的确和那些网友说的一样。有是有,但是的确不够明确!害我研究半天没过来。下面就展示我的明晰的制作过程。让不会的你看后就会。
用户名:PHPText.Net
密 码:123456
下面我们来分析下技术,配合提供的源码看比较清楚哦!这里下载源码!
首先,先来看看 Flash 的源码。具体的建立什么文本框啊,这些的就不细说了,自己学吧!
on (release) { //鼠标点击
//设置一个用户发送信息的东西,具体不知道做嘛-_-
var sendvar:LoadVars = new LoadVars();
//设置一个读取传回信息的东西,还能做嘛,我也不知道。
var loadvar:LoadVars = new LoadVars();
//设置2个POST变量。一定要在发送信息的东西的一个对象,嘎也就是变量。
sendvar.username = username.text;
sendvar.password = password.text; //这2个带.text的就是取文本框的值
//提交数据,并将返回数据赋值给取回信息的东西,loadvar
sendvar.sendAndLoad("flash_test.php", loadvar, "POST");
//重写读取信息东西的加载方式,嘎嘎,这个东西JS也很多
loadvar.onLoad = function(success) {
//如果加载完毕OR成功
if (success) {
//注释掉的,这个可以在 FLASH 工具上发出调试框
//trace(this.sta);
//检测传回的值
if(this.sta=='ok')
{
//Flash 函数,跳转到某帧,并播放
gotoAndPlay(2);
}
else
{
//设置提示,主件名.属性=xxx 这个超级EZ的JS很多,VB更是~~
output.text = "验证失败!";
}
}
}
}
之后我们再看看PHP的源码。顺便看看格式,这种非XML的模式如何解析传回的值。
<?php
//flash_test.php
//使用LoadVars获取变量时,需要使用地址栏模式 &sta=xxx&id=xxx 这个模式
//本范例出于 PHPText.Net
//检测Flash 传回的值是否正确
if(strtolower($_POST['username'])=="phptext.net" && $_POST['password']=="123456")
{
echo "&sta=ok";
}
else
{
echo "&sta=no";
}
?>
再来,GET方式也是一样,不过传值不需要那么复杂的。
//Get方式,将发送数据设置为GET,然而页面就带参数就行,不需要另外设置
sendvar.sendAndLoad("flash_test.php?xxx=xxx", loadvar, "GET");
一般的来说这个已经满足了。其实还有一个XML大法,不过本人觉得,还是那样。
补充:居然忘记说了,那个读取PHP传回变量的是用地址栏的传值模式,也就是和GET一样,不用?而已直接就 &xxx=xxx&sss=sss 就OK!
我自己的补充:要注意的是名—值对是LOAD VARS类接受数据的唯一格式,并且不同属性之间要用“&”隔开,看完这些东西,发现其实离实时更新的网络游戏还是有一定差距的,LOADVARS类做个留言板或者在线象棋什么的还是可行的,因为不需要持续的信息通道,但是网络RPG需要这样的东西,因此,XML SOCKET在FLASH和PHP之间的应用还将是主题。。。
转自:http://qingyu87.blog.sohu.com/139629585.html