AS3.0與PHP進行數據交互

来源:互联网 发布:手机照片换装软件 编辑:程序博客网 时间:2024/06/02 04:14

最近做的一個小遊戲中需要上傳積分、查看歷史積分、排行榜的功能,但是公司前端與後端進行數據交互的中間語言用的是PHP,本人對PHP不是太瞭解,經過與後端人員交流終於還是做好了,一下貼下代碼:
1.上傳積分:
    loader = new URLLoader();
   url = "http://127.0.0.1/talesofcrystal/domain/web_mini_domain.php";
   urlRequest = new URLRequest(url);
   urlRequest.method = URLRequestMethod.POST;
   variables = new URLVariables();
   variables.method = "update";
   variables.miniId = int(PlayerDataContainer.getInstance().user_id);
   
   //赋值积分totalScore
   variables.miniScore = totalScore;
   urlRequest.data = variables;
   //trace(urlRequest.data)
   loader.addEventListener(Event.COMPLETE,loaded);
   loader.dataFormat = URLLoaderDataFormat.VARIABLES;
   
   function loaded(event:Event):void   
                 {
    //trace("loader.data.miniScore"+loader.data.miniScore)
    isUpScore = false;
   }
   loader.load(urlRequest);

2.查看最高積分:
   isUpScore = true;
   loader = new URLLoader();
   url = "http://127.0.0.1/talesofcrystal/domain/web_mini_domain.php";
   urlRequest = new URLRequest(url);
   urlRequest.method = URLRequestMethod.POST;
   variables = new URLVariables();
   variables.method = "select";
   variables.miniId = int(PlayerDataContainer.getInstance().user_id);
   urlRequest.data = variables;
   loader.dataFormat = URLLoaderDataFormat.VARIABLES;
   
   loader.addEventListener(Event.COMPLETE,loaded);
 
   function loaded(event:Event):void   
                {
    highestScore = loader.data.miniScore;
    //trace("loader.data.miniScore" + loader.data.miniScore)
    highest_score.text = "最高積分   " + highestScore + "";
    isUpScore = false;
   }
   loader.load(urlRequest);
               [/code]3.排行榜:[code]
                                                isUpScore = true;
   loader = new URLLoader();
   url = "http://122.147.41.142/talesofcrystal/domain/web_mini_domain.php";
   urlRequest = new URLRequest(url);
   urlRequest.method = URLRequestMethod.POST;
   variables = new URLVariables();
   variables.method = "sort";
   variables.miniId = int(PlayerDataContainer.getInstance().user_id);
   if (highestScore > totalScore)
    variables.miniScore = highestScore;
   else
    variables.miniScore = totalScore;
   loader.dataFormat = URLLoaderDataFormat.VARIABLES;
   urlRequest.data = variables;
   loader.addEventListener(Event.COMPLETE,loaded);
 
   function loaded(event:Event):void   
      {
    //玩家昵称
    var arr1 = new Array();
    var str:String = loader.data.username;
    arr1 = str.split(//n/);
    preTen(arr1);
    
    //玩家积分
    var arr2 = new Array();
    var str1:String = loader.data.score;
    arr2 = str1.split(//n/);
    preTenScore(arr2);
    
    //当前玩家在排行榜的排名
    rankNum = loader.data.position;
    rank_txt = new ShowText("您在此排行榜的位置是 " + rankNum + " 位");
    rank_txt.x = 343;
    rank_txt.y = 390;
    bank_sprite.addChild(rank_txt);
    
    isUpScore = false;
   }
   loader.load(urlRequest);
其中上傳積分也做了當前玩家是否為新老註冊玩家的判斷,確保數據庫中保存的當前玩家的ID只有一個。排行榜中的function loaded(event:Event):void{}是通過PHP從數據庫中獲得積分排行前十名的玩家的昵稱以及積分,而排行榜中的arr2 = str1.split(//n/)和arr1 = str.split(//n/)則是通過PHP從數據庫返回的玩家的昵稱和積分的切割存放到數組中,用preTen(arr1)和preTenScore(arr2)自定義的函數顯示積分排行前十名的玩家的昵稱以及積分。由於是第一次這樣做過,所以裏面不免會有寫的不妥之處,望請高手指教一番……

原创粉丝点击