作者aquarianboy (我是没牌的营养师!)
看板Flash
标题[心得] AMFPHP简单介绍
时间Sun Aug 24 23:31:42 2008
可能今天因为场地的关系,没能让大家看清楚今天的Demo
我用文字补充一下:
跟Server在交换资料,比较常见的是一般的文字讯息或是XML
像我自己在赶时间的时候,我会随便echo一个字出来知会flash说server程式已经做完了
不赶时间且资料量较多的时候,则会乖乖的用XML
不过,最近开始我比较常用的是AMF跟JSON这两个方法
其实都还满方便的,各有其优缺点
以下先简单的说明一下AMF这玩意 :)
AMF:Action Message Format
细节可参考:
http://en.wikipedia.org/wiki/Action_Message_Format
不多说细节,就来个简单的实作吧 :)
1. 下载AMF gateway
找个自己顺手的语言吧
AMFPHP:这是PHP的
http://www.amfphp.org/
(不久之後,Zend Framework也会支援AMF)
PyAMF:这是Python的(我上个月开始迷上它了,努力学习中)
http://pyamf.org/
AMF.NET:这是.NET的
http://amfnet.openmymind.net/
光看名字大概就能猜到它的後端是用什麽做的
其它还有for Java或其它的,有兴趣的可以继续google翻翻看
2. 安装AMF gateway(以AMFPHP为例)
其它只要把下载下来的程式码整包解开,放在Web server底下一个自己找得到的路径就行了
我是放在
http://127.0.0.1/test/amfphp/ 底下
它有提供一个很棒的Service Browser:
http://127.0.0.1/test/amfphp/browser
这是个用Flex做的介面,可以清楚列出目前在AMF gateway上的服务
3. 在AMF gateway上新增一个服务
我做了一个简单的php类别档,存档为callme.php
并放在AMF gateway的services资料夹里面
在这里,php不像java或as一样硬性规定类别名称一定要跟档名一样...
至少php5还没有,不过建立这习惯也不错
<?php
class callme
{
function callmeplease($text)
{
return $text;
}
}
上面,我做了一个callme的类别,然後里面放了一个callmeplease的方法
这个方法会接收一个参数,执行完成之後,会把传入的参数return回来
这里只是简单直接return而已,更复杂的资料库存取程式也可以写在这里....
接下来看一下刚刚那个Service Browser,会发现一个新的服务在的左手边的列表里
3. 新增一个Fla(这里以AS3.0为例)
import flash.net.*;
var test:NetConnection = new NetConnection();
// 新增一个NetConnection物件
test.connect('
http://127.0.0.1/test/amfphp/gateway.php');
// 连上AMF gateway
// 这里每家AMF gateway的实作方法应该都有差别,细节请记得看该实作说明
var returnResult:Responder = new Responder(ok, ng);
// 准备一个Responder物件来接收事件,用法及参数请参考F1说明
function ok(res:Object):void {
trace(res);
}
function ng(res:Object):void {
trace(res);
}
//以上,我做了ok跟ng两个简单小function,分别是trace出它们接收到的物件
test.call('callme.callmeplease', returnResult, 'hi, flash');
// 这里是最重要的动作,就是直接用call这个方法
// "呼叫"在gateway上面的callme这个服务里的callmeplease这个方法
// 第二个参数是接收反应的responder,第三个参数是给callmeplease的参数
以上,callme.callmeplease会把"hi, flash"传给AMF gateway
然後gateway回传"hi, flash"回来给flash
顺利的话,Ctrl + Enter执行,就会在output视窗看到输出的东西了
就这样,你的Flash已经可以跟各家有支援AMF的gateway"对谈"了
上面提到的原始档在这里可以拿得到(其实没几行字,就一个php跟fla)
http://code.eddie.com.tw/downloads/flash/AMF.rar
还是看不懂吗? 没关系
这里有个很棒的影音教学,看完跟着作一遍就知道大概是怎麽运作的了
http://www.gotoandlearn.com/player.php?id=78
希望对大家有帮助 :)
--
诚徵
PHP网站工程师,熟
MVC架构佳
http://blog.eddie.com.tw/
全职、兼职可,意者请敲 :)
http://www.eddie.com.tw/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.139.9
1F:推 dreamboxer:推...有空来试玩AMF+Flex~终於不用拼XML了~ 一_一y(耶) 08/25 00:03
2F:推 didila:as3.0 拼xml还无所谓 算是不错用 2.0就有点给他囧 -_- 08/25 20:20
3F:推 dimensioner:借转 谢谢 10/31 18:42