<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-17  評論-64  文章-79  trackbacks-1
            隨著adobe的FLEX和ROMTING的開源化又引起一場的RIA風波,我作為傳統的WEB開發人員被其深深的吸引,作為web開發人員很關注flash如何和后臺連接,在網上苦苦尋找終于發現了,在AS3下如何和后臺通信,其實FLASH ROMTING 和JAVA DWR設計很相似都是通過中間來轉化后臺和前臺對象,今天我就以一個金典的HELLOWORLD程序來展現這個框架。
            首先到http://www.amfphp.org下載AMFPHP1.9,這是目前的最新版本支持AMF3,不像以前的版本1.9版本的部署非常簡單解壓縮后直接拷貝到apache配置的web下面我這里是D:\develop\WebDev\web\amfphp,然后可以測試一下安裝是否成功在地址欄中輸入http://localhost:8080/amfphp/gateway.php如果看到第一行amfphp and this gateway are installed correctly. You may now connect to this gateway from Flash。說明安裝成功可以進行下一步了。
            然后寫后臺PHP代碼:Hello.php文件
                <?php 
                            class Hello{
                                    function sayHello(){       
                                           return "Hello World";
                                     }
                            }
                ?>
            后臺代碼很簡單,用過1.0版本的人可能發現這里沒有方法表了(我覺得這個改進使得業務方法和框架解耦了是個非常好的改進),為了簡單這里不講私有gateway.php配置直接調用公有的gateway.php,將Hello.php移動到amfphp\services下面,這樣服務器端就完成了。
            下面是客戶端的編寫:
              無意中在網上發現了一個很好封裝flash.net.Responder, flash.net.NetConnection 這兩個類的代碼這里公布給大家一起學習一下

    /*
    Remoting類
    負責FLASH與數據庫交互
    */

    package 
    {
        import flash.net.Responder;
        import flash.net.NetConnection;

        public class Remoting extends NetConnection 
    {
            
    /*
            構造
            @param gatewayURL remoting網關地址
            @param amfType 使用AMF3或AMF0
            
    */

            public 
    function Remoting(gatewayURL:String,amfType:uint) {
                super();
                
    this.objectEncoding=amfType;
                
    this.connect(gatewayURL);
            }

            
    //##########################################################################
            //
            //方法
            //
            //##########################################################################
            /*
             * 遠程返回函數
             * @param remoteMethod:遠程類.方法名param遠程方法所需要的參數onResultFun:返回數據所調用的方法句柄.onFaultFun同理.
             * 
            
    */

            public 
    function respond(remoteMethod:String,onResultFun:*,onFaultFun:*,... param):void {
                
    var parameters:Array=param;
                
    if (param.length > 0{
                    parameters.unshift(remoteMethod,
    new Responder(onResultFun,onFaultFun));
                    
    this.call.apply(this,parameters);
                }
     else {
                    
    this.call(remoteMethod,new Responder(onResultFun,onFaultFun));
                }

            }

        }

    }
            

    然后在任何地方可以調用它:

    var remote:Remoting;
    remote
    =new Remoting("http://localhost/remotinggame/gateway.aspx",0);
    remote.respond(remoting方法名,onRuslt,onFault,參數1,參數2....);

    function onRuslt(re:*):void{
           trace(
    " onRuslt:"+re);
    }

            
    function onFault(fe:*):void{
          trace(
    " onFault:"+fe.code);            
    }

    下面用上面封裝的類來實現HELLOWORLD
    package {
        import flash.display.Sprite;
        
        
        public class Hello extends Sprite
    {
            
            private 
    var remoting:Remoting;
            
            public 
    function Hello (){
                    init();
                }

            
            private 
    function init():void{
                    remoting
    =new Remoting("http://localhost:8080/amfphp/gateway.php",3
    );
                    remoting.respond(
    "Hello.sayHello",onGetData_Ruslt,onGetData_Fault);
              }

            
            private 
    function onGetData_Ruslt(re:*):void{
                    trace(re
    );
               }

            private 
    function onGetData_Fault(fe:*):void{
                
    for(var what in fe){
                    trace(what
    +"  fe:"+fe[what]);
                }

            }

        }

    }

    posted on 2007-12-13 21:52 飛鳥 閱讀(601) 評論(0)  編輯  收藏 所屬分類: RIA
    主站蜘蛛池模板: 国产精品1024在线永久免费 | 亚洲乱码一二三四区乱码| 无码人妻精品中文字幕免费东京热| 亚洲成aⅴ人在线观看| 国产在线98福利播放视频免费| 国产在线观看无码免费视频| 亚洲精品视频观看| 日本免费一区二区三区最新| 99久久免费国产特黄| 精品国产日韩久久亚洲| 亚洲午夜久久久久久噜噜噜| 日韩精品无码区免费专区| 日韩在线观看免费完整版视频| 亚洲综合激情九月婷婷| 国产gav成人免费播放视频| 日韩免费无码一区二区三区| 国产午夜亚洲精品不卡电影| 91亚洲导航深夜福利| 亚洲国产精品成人网址天堂| 国产成人yy免费视频| 国产99久久久久久免费看| 亚洲精品美女网站| 久久精品国产亚洲AV果冻传媒| 免费无码黄动漫在线观看| 一级毛片全部免费播放| 人妖系列免费网站观看| 亚洲中文字幕久久无码| 亚洲久本草在线中文字幕| 亚洲精品无码激情AV| 午夜寂寞在线一级观看免费| 5555在线播放免费播放| 国产精品无码免费专区午夜 | 久久久亚洲精华液精华液精华液| 亚洲福利在线观看| jlzzjlzz亚洲乱熟在线播放| 好爽…又高潮了毛片免费看 | 国产又大又长又粗又硬的免费视频| 少妇人妻偷人精品免费视频| www在线观看播放免费视频日本| 亚洲乱色伦图片区小说| 亚洲国产成人综合|