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

posted @ 2015-08-27 19:21  stma  阅读(322)  评论(0编辑  收藏  举报