AMFPHP flash in AS2

前面兩篇介紹了amfphp介面與php端
最後來介紹最重要的flash端(畢竟最主要是flash要連資料庫嘛...)
因為AS3到現在熟悉程度還是有限`
AS2...也只是略知一二....|||

切入正題
AS2裡面若要作Remote需要先import "RemotingClasses"元件至元件庫

*update 20110928
發現"RemotingClasses在"flash cs4"已經消失,不過已經找到原來的Class檔案,使用方式為檔案解壓縮後將資料夾檔案與publish的sef檔放在同一層目錄即可。
RemotingClasses 立即下載

接著是code部份就由以下範例解說

php端

<?php
class test{
var $dbhost = "localhost";
var $dbname = "test";
var $dbuser = "root";
var $dbpass = "12345678";
var $conn;

function getData(){
$this->conn = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass);
mysql_select_db ($this->dbname, $this->conn);
$rs=mysql_query("SELECT * FROM myTest", $this->conn);
return $rs;
}

}
?>


先看看service端是否有抓到資料


確定有抓到資料後
接著是flash端

import mx.remoting.*;
import mx.rpc.*;

//gateway位置 也就是在amfphp資料夾下的gateway.php
var gatewayUrl:String = "http://localhost/amfphp/gateway.php"

//新增一個service
//var 新增service:Service = new Service(gatewayUrl, null, 'amfphp內service名稱');
var myService:Service = new Service(gatewayUrl, null, 'test');

//var 自訂:PendingCall = 新增service.amfphp內function名稱;
var myTest:PendingCall = myService.getData();

//自訂.responder = new RelayResponder(this, "成功後執行function", "成功後執行function");
myTest.responder = new RelayResponder(this, "handleGet", null);

//成功後執行function
/*
function handleGet(自定:ResultEvent){
var 同amfphp內function名稱:RecordSet = RecordSet(自定.result);
變數 = 同amfphp內function名稱.getItemAt(第幾比資料).資料庫欄;
^^^^^^^^^
從0開始算
}
*/
function handleGet(r:ResultEvent){
var getData:RecordSet = RecordSet(r.result);
myVar = getData.getItemAt(0).number;
trace("myVar = "+myVar);
}



在trace後確認有抓到變數


這樣就完成最基礎的Remoting

沒有留言:

張貼留言