开启左侧

AS3 与PHP通信

[复制链接]
etthink 发表于 2010-4-30 02:03:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
    AS3与后台语言通信在网络应用中已经是司空见惯了,很多网站都以Flash作为前台,以PHP作为后台。当然,有一些网站是使用.net后台技术的。在这篇文章中,我们将要讨论如何使用FLASH的AS3语言与PHP后台语言通信。实际上,其他后台语言的通信方法大同小异。在FLASH这方面进行的操作是非常简单的。可以说我们仅仅用几行代码就可以达到我们想要的效果。同时,你可以使用相同的AS3代码去访问不同的后台语言。我将在另外一篇文章中讲解FLASH与.net后台交互的方法。
首先,想使用FLASH与后台交互,我们先要准备一个后台的支持,由于我们使用的是php语言,所以我选择wamp5。这个软件是一个集成的php虚拟后台,安装它之后,你的机器就会变成一台php服务器了。下面的工作就要进入到代码的编写阶段。先来看一个简单的实例。在这个实例中,我们将使用FLASH去访问一个设定好的php页面,这个页面会向FLASH返回一个结果,一般来说这个结果使用字符串类型。

下面是AS3的代码:
a_mc.addEventListener(MouseEvent.CLICK,an);
function an(evt:MouseEvent):void {
var _loader = new URLLoader();
var _url:URLRequest = new URLRequest("http://localhost/a.php");
_loader.addEventListener(Event.COMPLETE, loaded);
_loader.load(_url);
}
function loaded(evt:Event):void
{
trace(evt.target.data);
}

上面是FLASH中的代码,我只是截取了代码中的一个比较重要的片段,你可以自己将类文件填写完整。再来看看php文件的代码:
<?php
$abc = "niahodfa";
echo "nei=$abc";
?>

学过php的朋友对这个代码应该是很熟悉的,这个代码属于小儿科水平。但是,作为通讯的演示文件最合适不过了。好了,将php文件保存,然后放到我们的网站根目录,测试FLASH影片。你就可以看到效果了。

通过上面的实例,我想大家应该对后台通讯有一点点了解,只要实际的去实验一下这段代码你就明白其中的道理。
这只是一个非常简单的通讯实例,与其说是实例,不如说是一个测试程序,如果你的FLASH却是能够输出内容,那么表明你的php服务器能够运行。在平常的应用中,我们大部分时间都要求FLASH能够给PHP传递一些参数,这些个参数可能是用户名,用户密码等等。那么我们如何把FLASH中的这些内容告诉php呢?
很简单,你需要把代码进行一点点修改!另外,你要考虑数据的传输方式,我个人比较推荐post。安全第一,本身FLASH的安全性就够差的了,如果你再使用get传值,那你的网站就完蛋了。

FLASH中的代码:
//System.useCodePage=true;
var xm:XML = <a><b>afde</b><g>eeee</g></a>;
a_mc.addEventListener(MouseEvent.CLICK,an);
function an(evt:MouseEvent):void {

var _loader = new URLLoader();
_loader.dataFormat = URLLoaderDataFormat.VARIABLES;
var _durl:URLRequest = new URLRequest("http://localhost/bc.php");

var val:URLVariables = new URLVariables();
val.dizhi = xm;
_durl.data = val;

_durl.method = URLRequestMethod.POST;
_loader.addEventListener(Event.COMPLETE, loaded);
_loader.load(_durl);

}
function loaded(evt:Event):void {
trace(evt.target.data);
}

php中的代码:
<?php
$abc = "niahodfa";

$do = $_POST['dizhi'];

echo "nei=$do";
?>
学教育技术,上教育技术论坛!http://www.etthink.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


11关注

462粉丝

7846帖子

推荐阅读更多+
会员达人更多+
广告位

最新信息

更多+

关注我们:教育技术人

官方微信

官方微博

教育技术热线:

13955453231

学教育技术,上教育技术论坛!

教育技术论坛征稿范围:教育技术应用案例、教程文章、优秀作品等。

Email:sf@etthink.com

Copyright   ©2007-2026  应用思考-教育技术论坛  Powered by©Discuz!  技术支持:且行资源    ( 皖ICP备10014945号-4 )