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";
?> |