amfphp与flash的交互详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Amfphp with flash

flash连接数据必须透过一些语言例如:PHP,Java,ASP等等的方法,简称“Flash Remoting“,本篇只针对PHP(Amfphp是以PHP为主)。

以下为各种Remoting的官方网址:

AMFPHP (方式:PHP , 网址: )

OpenAMF(方式:Java , 网址: )

WebORB(方式:.NET,Java,Ruby on Rails,网址: )

Fluorine(方式:.NET,)简单的说说Flash如何与数据库通讯如下图:

首先我们要先去下载AMFPHP的数据夹:

网址:/project/showfiles.php?group_id=72483#files

在这个地方我们主要是下载AMFPHP1.9,当然我们要下载AMFPHP1.2也可以,但是我不建议使用1.2,因为1.9的功能比1.2强太多了(待会会说),而且他们还有一些明显的差异。

下载好了以后,就把数据夹解压缩放在WebServer的根目录底下就OK了( 例如:Apache的www数据夹里),不需要安装任何东西,然后你只要在网址上输入http://localhost/amfphp/browser/你就会看到一个很特别的环境就是debug php的好地方XD, 那么我就介绍一下这个环境:

这工具debug非常好用,而且还是debug php,还能看到回传结果,而且还能仿真连接数据库接收和发送数据,不怕老实说PHP在Dreamweaver里是没有办法debug的,所以这工具能帮我们节省很多很多时间(要善用)。

那么我们要把写好的PHP放去哪里呢?只要放去amfphp数据夹里的services里面就OK了。这样我们在上图的那个debug环境下就能看到写好的PHP了。可是编写的PHP要有一定的

规格,因为这是要和flash通讯的,首先第一个就是档案的名称要和里面的Class一样,格式一定要和以下一样:

文件名称Counter //文件名称和Class一样

class Counter {

function() <—-要写的程序

}

但是在Amfphp1.2和Amfphp1.9有一个区别的地方那就是 1.9版本不用在定义$this->methodTable,这个很重要,因为如果你要把1.2的PHP拿来1.9使用是必须把这个定义给拿掉。简单来说就是这样:这是1.2程序代码:

$this->methodTable = array(

“getData” => array(

“description” => “Returns addressBook data”,

“access” => “remote”,

“returntype” => “recordSet”

)

}

function getData(){

$rs = 1);

return $rs;

}这是1.9程序代码:

function getData(){

$rs = 1;

return $rs;

}

在1.9里面只要像上面这样定义结果就出来了

最后我们把以上amfphp1.9的制作成php档案,然后放在services的数据夹里,最后用浏览器看看结果,你会发现当你按下call后,会出现1,那么使用amfphp的第一步就开始了^^。Flash(AS3.0程序)

import .URLRequest;

import Connection;

import .Responder;

var gateway:String = “http://localhost/amfphp/gateway.php”; //连接amfphp里的gateway.php

var connection:NetConnection;

var responder:Responder; responder = new Responder(onResult, onFault); //数据传送成功或失败

connection = new NetConnection;

connection.connect(gateway);

connection.call(”Counter.getData”, responder); //call 我们写的PHP(文件名称.子程序名称)

function onResult(onResult:Object):void { //数据传送成功时

var saveData:Object=onResult;

trace(saveData);

}

function onFault(fault:Object):void { //数据传送失败时trace(”failt”);

}

以上这些地方要注意就是我们一定要把gateway设成“amfphp/gateway.php”,因为当我们把PHP放在amfphp/services的数据夹里时,只要在flash里连接去gateway.php,它就会自动帮我们寻找PHP,简单来说非常的方便。

那么我们要怎么知道我们要连去那一个PHP呢?所以在以上第11行的connection.call(“Counter.getData”, responder);中我们呼叫Counter.php里面的getData function,这样它就会去寻找这份PHP的档案了。

为了方便起见我把PHP档案程序代码写在这里:

class Counter{

function getData(){

$rs = 1;

return $rs;

}

}

?>

这样我们就大功告成了,最后按照方法,把PHP放在amfphp/services的数据夹里,然后把flash档案发布成swf,你就会看到flash输出为1,那么这个和PHP的联系就完成了,

最后一个问题是如果PHP传给flash的数据是数组(Array)时我们要怎么把数据分出来?其实是一样的,只要写成saveDat[0],然后以此类推,就可以了。

Amfphp with flash(2)

首先我们用以下的SQL码来建立一个名叫―testflash‖的表,并且在里面有一个叫―testing―的目录。————————我是分隔线————————————–

– phpMyAdmin SQL Dump

– version 2.10.2

–主机: localhost

–建立日期: Mar 03, 2008, 02:40 PM

–服务器版本: 5.0.45

– PHP 版本: 5.2.3

SET SQL_MODE=‖NO_AUTO_VALUE_ON_ZERO‖;

–数据库: `testflash`

–——————————————————–

–数据表格式:`testing`

相关文档
最新文档