2010-06-03

amfphp-HelloWorld

開始進入Flash remoting的第一個程式…helloworld
首先,我們先寫好一個叫HelloWorld.php的php程式…原始碼如下


class HelloWorld { //注:class的HelloWorld要跟你存檔的檔名一樣

    function Say ($message) {

        return '回:' . $message;

    }

}

?>
存檔後要切記,這個HelloWorld.php要放在amfphp/service底下才算活在amfphp中…要不然,你會無法使用它
放好後,可以先做測試,你可以連上你amfphp的browser,你會看到在左手邊的那一個框中會出現你這個叫HelloWorld的東西,如果沒出現,那就是你的程式沒放在amfphp/service底下
如果有看到,就點它一下,你就會在右手邊看到這支程式的狀況,你可以點到test的頁籤,會看到一個叫Say的東東,沒錯,這個就是上面HelloWorld.php的function Say()
而在底下會看到一個叫message接著一個輸入框的,也沒錯,這東西就是function Say()中要傳的$message…接著你就可以在文字框中輸入值,再按下Call的按鈕,你就會看到底下的result會出現回應值
如圖
===


接下來就可以測試flash的connect了(註:flash中無論flash的檔名跟as的檔名可以不用跟HelloWorld.php一樣,這此我只是方便而已)
讓我們先使用flash CS3來開啟一個叫HelloWorld的as檔,使用actionscript3的方式
接著,編寫下列的程式到HelloWorld.as中(我是參考http://blog.raienet.com/435)
package {

    import flash.display.MovieClip;

    import flash.net.NetConnection;

    import flash.net.Responder;



    public class HelloWorld extends MovieClip {

        public var nc:NetConnection;

        public var res:Responder;



        public function HelloWorld() {

            nc = new NetConnection();

            res = new Responder(onResult, onFault);



            nc.connect("http://webpath/amfphp_trust/gateway.php");



            nc.call("HelloWorld.Say", res, "HelloWorld!");

        }

        private function onFault(responds:Object):void {

            for (var i in responds) {

                trace(responds[i]);

            }

        }

        private function onResult(responds:Object):void {

            trace(responds);

        }

    }

}

接著,再新增一個flash actionscrpit 3的HelloWorld.fla,然後在設定連接的文件(如圖
然後就可以使用Ctrl+Enter來測試場景,如果你一切都設定正常的話,應該會在輸出視窗看到跟amfphp/browser測試一樣的訊息(如圖
這樣,就結束了入門程式

沒有留言: