[3D框架]Alternativa3D 专题总编:D5Power [游戏开发]Flash游戏常见功能与实现 专题总编:D5Power [游戏开发]游戏性能优化 专题总编:D5Power [游戏开发]D5RPG 专题总编:D5Power [游戏开发]AI-Steering编程 专题总编:D5Power [MVC框架]FlashBuilder_和_PureMVC 专题总编:D5Power [移动开发]Flash移动开发 专题总编:D5Power [游戏开发]Flixel 横板游戏制作教程 专题总编:mztknb [入门系列专题]★天地培训★新手入门-AS3开发案例 专题总编:S_eVent [游戏开发]做一个像植物大战僵尸的Flash游戏 专题总编:逐日|者 [入门系列专题]Flash动画学习指南 [入门系列专题]从零开始学AS3游戏开发 专题总编:D5Power [MVC框架]Cairngorm专题 专题总编:taotao5453 [MVC框架]PureMVC专题 专题总编:夜歸人 [流媒体服务器]Red 5专题 专题总编:Lost_in_Flash [工具使用]Flash develop专题 专题总编:阿新 [游戏开发]图形处理专题 专题总编:a355112007020 [游戏开发]寻路专题 专题总编:smallghost [3D引擎]Away3D专题 专题总编:xiao198304 [3D引擎]Sandy3D专题 专题总编:sindney [UI框架]Aswing专题 专题总编:393725437 [多媒体]音乐播放专题 专题总编:xiaohaiyong [网络通信]Socket专题 专题总编:smallghost [网络通信]P2P专题 专题总编:eity0323 [网络通信]AMF专题 专题总编:forever_to_our & crylg [性能优化]文件大小专题 专题总编:KengPanda [性能优化]内存回收专题 专题总编:KengPanda [物理引擎]Box2D专题 专题总编:smallghost [物理引擎]APE专题 专题总编:tcper [交互设计]增强现专题实 专题总编:evin [后台语言]Java专题 专题总编:cloud21 [后台语言] C#专题 专题总编:smallghost [Flex]Flex4专题 相关专题总编:iceblue
返回列表 发帖

[教程] SFS官方教程 AS3.0版 第四篇 FLASH虚拟社区- [SFS(smartFoxServer)]

实现功能有:
1 当用户进入时 显示用户的虚拟形象
2 用户的虚拟形象可以在场景里移动
3 所有的用户都可以实时看见 别人的虚拟形象的移动情况
4 当有人发送公共消息时 在他的虚拟形象上显示出来。

//==================== main 类 =================
  1. package {
  2. import flash.display.Sprite;

  3. import it.gotoandplay.smartfoxserver.SmartFoxClient;
  4. import it.gotoandplay.smartfoxserver.SFSEvent;
  5. import it.gotoandplay.smartfoxserver.data.*;

  6. import flash.display.MovieClip;
  7.     import fl.controls.*;
  8. import flash.events.MouseEvent;
  9. import fl.events.ListEvent ;
  10. import flash.events.Event;



  11. import fl.transitions.*;
  12.     import fl.transitions.easing.*;

  13. /**
  14.   * @author Administrator
  15.   */
  16. public class main extends Sprite {
  17.   private var __sfsClient : SmartFoxClient;
  18.   private var __ip : String;
  19.   private var __port : uint;
  20.   private var __usrNmae:String;
  21.   private var __zone:String;
  22.   
  23.   private var __areaW:uint;
  24.   private var __areaH:uint;
  25.   private var __avatarW:uint;
  26.   private var __avatarH:uint;
  27.   
  28.   private var __selectedUsr:int;
  29.   private var __newRoom:int;//这里要用 int型  因为__sfsClient.joinRoom(__newRoom,_pwd)如果用roomId进入的话 第一个参数是int
  30.   //private var __playerList:Array
  31.   private var __avatarMC:MovieClip;
  32.   private var __myPlayer:MovieClip;
  33.   private var __inited=false;
  34.   
  35.   public function main() {
  36.    __init();
  37.   }
  38.   private function __init():void {
  39.    __ip="127.0.0.1";
  40.    __port=9339;
  41.    __zone="simpleChat";
  42.    //__selectedUsr="";
  43.    __areaW = 370
  44.             __areaH = 320
  45.             __avatarW = 56
  46.             __avatarH = 56
  47.    //__playerList=new Array();
  48.    __avatarMC=new MovieClip();
  49.    addChild(__avatarMC);
  50.    
  51.    tips_mc.visible=false;
  52.    login_mc.visible = false;
  53.    chat_mc.visible = false;
  54.    passW_mc.visible=false;
  55.    newRoom_mc.visible=false;
  56.    priMsg_mc.visible=false;
  57.    __connectSfs(__ip,__port);
  58.   }
  59.   private function __initEvt() : void {
  60.    
  61.     __sfsClient.addEventListener(SFSEvent.onConnection, __onConnect);
  62.     __sfsClient.addEventListener(SFSEvent.onConnectionLost, __onConnectionLost);
  63.     __sfsClient.addEventListener(SFSEvent.onRoomListUpdate, __onRoomUpdate);
  64.     __sfsClient.addEventListener(SFSEvent.onJoinRoom, __onLoginRoom);
  65.    
  66.              __sfsClient.addEventListener(SFSEvent.onUserLeaveRoom, __onUserLeaveRoom)
  67.              __sfsClient.addEventListener(SFSEvent.onPublicMessage, __onPublicMsg);
  68.     __sfsClient.addEventListener(SFSEvent.onUserCountChange, __onUserCountChange);
  69.              __sfsClient.addEventListener(SFSEvent.onJoinRoomError, __onJoinRoomError);
  70.     __sfsClient.addEventListener(SFSEvent.onCreateRoomError,__onCreateRoomError)
  71.     __sfsClient.addEventListener(SFSEvent.onRoomAdded, __onRoomAdded);
  72.              __sfsClient.addEventListener(SFSEvent.onPrivateMessage, __onPriMsg);
  73.    
  74.      __sfsClient.addEventListener(SFSEvent.onUserVariablesUpdate, __onUserVariablesUpdate);

  75.               __sfsClient.addEventListener(SFSEvent.onUserEnterRoom, __onUserEnterRoom);
  76.      
  77.     login_mc.login_btn.addEventListener(MouseEvent.CLICK, __onLogin);
  78.     chat_mc.send_btn.addEventListener(MouseEvent.CLICK, __sendChatMsg);
  79.     chat_mc.new_btn.addEventListener(MouseEvent.CLICK, __onNewBtn);
  80.               
  81.     chat_mc.userList_dg.addEventListener(Event.CHANGE,__onItemSelected);
  82.     chat_mc.roomList_dg.addEventListener(Event.CHANGE,__onRoomSelected);
  83.    
  84.     passW_mc.cancel_btn.addEventListener(MouseEvent.CLICK, __onPWcancel);
  85.     passW_mc.enter_btn.addEventListener(MouseEvent.CLICK, __onPWenter);
  86.    
  87.     tips_mc.ok_btn.addEventListener(MouseEvent.CLICK, __onPWErroOk);
  88.    
  89.     newRoom_mc.enter_btn.addEventListener(MouseEvent.CLICK, __createRoom);
  90.     priMsg_mc.send_btn.addEventListener(MouseEvent.CLICK, __sendPriMsg);
  91.     priMsg_mc.cancel_btn.addEventListener(MouseEvent.CLICK, __hidePriMsgMc);
  92.     newRoom_mc.cancel_btn.addEventListener(MouseEvent.CLICK, __hideNewRoomMc);
  93.     chat_mc.exit_btn.addEventListener(MouseEvent.CLICK,__exit);
  94.   }
  95.   
  96.   private function __exit(evt:MouseEvent):void{
  97.    chat_mc.chat_txt.text="";
  98.    __sfsClient.disconnect();
  99.             __init();
  100.   }
  101.   private function __hideNewRoomMc(evt:MouseEvent):void{
  102.    newRoom_mc.visible=false;
  103.   }
  104.   private function __hidePriMsgMc(evt:MouseEvent):void{
  105.    priMsg_mc.visible=false;
  106.   }
  107.   private function __onPriMsg(evt:SFSEvent):void{
  108.    var $sender=evt.params.sender.getName();
  109.    var $msg=evt.params.message;
  110.    chat_mc.chat_txt.text+="\n"+"["+$sender+"] send  private message to you :"+"  ["+$msg+"]";
  111.    
  112.   }
  113.   private function __sendPriMsg(evt:MouseEvent):void{
  114.    var $msg=priMsg_mc.msg_txt.text;
  115.    if($msg.length>0 ){
  116.     priMsg_mc.visible=false;
  117.     priMsg_mc.msg_txt.text="";
  118.     __sfsClient.sendPrivateMessage($msg,__selectedUsr);
  119.    }
  120.    
  121.   }
  122.   private function __onRoomAdded(evt:SFSEvent):void{
  123.    //trace("room created ===============================");
  124.     var $room=evt.params.room;
  125.      chat_mc.roomList_dg.addItem({labelroom.getName()+"("+$room.getUserCount()+")",dataroom.getId()});
  126.      chat_mc.roomList_dg.sortItemsOn("label", 1);  
  127.   }
  128.   private function __onCreateRoomError(evt:SFSEvent):void{
  129.    tips_mc.visible=true;
  130.    tips_mc.tips_txt.text=evt.params.error;
  131.   }
  132.   private function __createRoom(evt:MouseEvent):void{
  133.    newRoom_mc.visible=false;
  134.    var $roomName=newRoom_mc.name_txt.text;
  135.    var $psw=newRoom_mc.passW_txt.text;
  136.    var $maxUsr=newRoom_mc.max_txt.text;
  137.    var roomObj:Object = new Object()
  138.                 roomObj.name =$roomName;
  139.                 roomObj.password=$psw;
  140.                 roomObj.maxUsers =$maxUsr ;
  141.     //trace($roomName,$psw,$maxUsr);
  142.             __sfsClient.createRoom(roomObj);
  143.    
  144.   }
  145.   private function __onNewBtn(evt:MouseEvent):void{
  146.    newRoom_mc.visible=true;
  147.   }
  148.   private function __onPWErroOk(evt:MouseEvent):void{
  149.    tips_mc.visible=false;
  150.    __resetRoomSelected(__sfsClient.activeRoomId);
  151.   }
  152.   private function __resetRoomSelected(_activeId):void{
  153.    var status:Boolean = chat_mc.roomList_dg.enabled;

  154.          chat_mc.roomList_dg.enabled=true;

  155.          for (var i:Number = 0; i < chat_mc.roomList_dg.length; i++){
  156.         var item:Object = chat_mc.roomList_dg.getItemAt(i)
  157.   
  158.        if (item.data == _activeId){
  159.     chat_mc.roomList_dg.selectedIndex=i;
  160.     break;
  161.      }
  162.       }

  163.      chat_mc.roomList_lb.setEnabled=status;
  164.    }
  165.   private function __onJoinRoomError(evt:SFSEvent):void{
  166.    tips_mc.visible=true;
  167.    tips_mc.tips_txt.text=evt.params.error;
  168.   }
  169.   private function __onPWenter(evt:MouseEvent):void{
  170.    var passW=passW_mc.passW_txt.text;
  171.    if(passW.length>0){
  172.     passW_mc.passW_txt.text="";
  173.     __loginProtectedRoom(passW);
  174.    }
  175.   }
  176.   private function __loginProtectedRoom(_pwd:String){
  177.             passW_mc.visible=false;
  178.    //trace(">>>>>>>>>>>>>>>>>>>>"+__newRoom,"pw>>>>> "+_pwd);
  179.    __sfsClient.joinRoom(__newRoom,_pwd);
  180.         }
  181.   private function __onPWcancel(evt:MouseEvent):void{
  182.    passW_mc.visible=false;
  183.    passW_mc.passW_txt.text="";
  184.   }
  185.   private function __onRoomSelected(ect:Event):void{
  186.    //__selectedRoom=chat_mc.roomList_dg.selectedItem.data;
  187.     // trace("you selected  "+chat_mc.roomList_dg.selectedItem.data );
  188.      var item=chat_mc.roomList_dg.selectedItem
  189.      var newRoom = item.data
  190.            var activeRoom=__sfsClient.activeRoomId;
  191.      //trace("active room is "+activeRoom ,"selected room is "+newRoom)
  192.         if (newRoom != activeRoom)
  193.         {
  194.                 // Check if new room is password protected
  195.                 var priv = __sfsClient.getRoom(newRoom).isPrivate();// 帮助里用的是 room.isPrivate  应该用room.isPrivate();
  196.     //trace("isPrivate ?   "+priv);
  197.                
  198.                 if (priv)
  199.                 {
  200.                         __newRoom = newRoom;
  201.                         passW_mc.visible=true;
  202.                 }
  203.                 else
  204.                 {
  205.                         __sfsClient.joinRoom(item.data)
  206.                 }
  207.         }

  208.   }
  209.   private function __onItemSelected(e:Event):void{
  210.      __selectedUsr=chat_mc.userList_dg.selectedItem.data;
  211.      if(__sfsClient.myUserId!=__selectedUsr){
  212.       priMsg_mc.visible=true;
  213.     }
  214.      //trace("you selected  "+chat_mc.userList_dg.selectedItem.label );
  215.   }
  216.   private function  __onUserCountChange(evt:SFSEvent):void{
  217.    var room:Room=evt.params.room;
  218.    __updateRoomStatus(room.getId());
  219.   }
复制代码
代码未完接下帖

[ 本帖最后由 vvvv888 于 2008-12-11 15:17 编辑 ]
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
1

评分人数

  • tian1boy

tian1boy 赐本贴 银子 + 10  诏曰: 楼主辛苦拉!

最新精华帖

686网赚论坛  http://go686.com | 路路有货源网  http://x669.com

  1.   private function __updateRoomStatus(_roomId){
  2.    
  3.    var roomList=__sfsClient.getAllRooms();
  4.    //trace("==============================="+_roomId+"  "+roomList);
  5.    var room = roomList[_roomId];
  6.    
  7.             var newLabel = room.getName() + " (" + room.getUserCount() + ")";
  8.    
  9.             for (var i:Number=0; i < chat_mc.roomList_dg.length; i++) {
  10.                 var item = chat_mc.roomList_dg.getItemAt(i)
  11.                 if (_roomId == item.data) {
  12.                         chat_mc.roomList_dg.replaceItemAt({label:newLabel,data:item.data},i )
  13.                         break;
  14.                 }
  15.             }
  16.    chat_mc.roomList_dg.sortItemsOn("label", 1);

  17.   }
  18.   private function  __sendChatMsg(e:MouseEvent){
  19.        if (chat_mc.input_txt.text.length > 0){
  20.    
  21.         __sfsClient.sendPublicMessage(chat_mc.input_txt.text)
  22.    
  23.         chat_mc.input_txt.text = ""
  24.         }
  25.         }
  26.   private function __onPublicMsg (e:SFSEvent):void{
  27.       //trace("User " + e.params.sender.getName() + " said: " + e.params.message)
  28.              chat_mc.chat_txt.text+="\n"+e.params.sender.getName()+" said :"+e.params.message;
  29.     var $myAvater=__avatarMC.getChildByName(e.params.sender.getName());
  30.     $myAvater.showPMsg(e.params.message);
  31.   }
  32.   
  33.   private function __onUserLeaveRoom(e:SFSEvent):void{
  34.     var usrId=e.params.userId ;
  35.     var userList_lb=chat_mc.userList_dg;
  36.    
  37.     for (var i:Number = 0; i < userList_lb.length; i++){
  38.             var item:Object = userList_lb.getItemAt(i);
  39.   
  40.             if (item.data == usrId){
  41.            var usrName:String = item.label;
  42.            userList_lb.removeItemAt(i);
  43.      __avatarMC.removeChild(__avatarMC.getChildByName(usrName))
  44.      /*for(var ii:String in __playerList){
  45.       if(__playerList[ii].myName==usrName){
  46.        removeChild(__playerList[ii]);
  47.        trace("on leavaeroom   remove "+__playerList[ii].myName);
  48.        __playerList.splice(__playerList.indexOf(usrName),1);
  49.        break;
  50.       }
  51.      }*/
  52.            break;
  53.          }
  54.           }

  55.    
  56.       userList_lb.sortItemsOn("label", 1);
  57.       chat_mc.chat_txt.text+="\n"+usrName+" logout !";
  58.    
  59.   }
  60.   private function __onUserEnterRoom(e:SFSEvent):void{
  61.     var tmpUser=e.params.user;
  62.      chat_mc.userList_dg.addItem({label:tmpUser.getName(),data:tmpUser.getId()});
  63.      chat_mc.userList_dg.sortItemsOn("label", 1);  
  64.      chat_mc.chat_txt.text+="\n"+tmpUser.getName()+" jion the room";
  65.    
  66.      var $avater_mc=new avater(tmpUser.getName());
  67.      
  68.      $avater_mc.x=tmpUser.getVariable("px");
  69.      $avater_mc.y=tmpUser.getVariable("py");
  70.      __avatarMC.addChild($avater_mc);
  71.      //__playerList.push($avater_mc);
  72.      trace("enter room "+tmpUser.getName()+" -------------"+$avater_mc.x+"  ---------------------    "+$avater_mc.y);
  73.   }
  74.   private function __cleanAvater():void{
  75.     trace("cleanAvater:  ");
  76.     trace(__avatarMC.numChildren);
  77.     var mcLength=__avatarMC.numChildren
  78.     if(mcLength>0){
  79.      for(var i:uint=0;i      //trace(i);
  80.       var $mc=__avatarMC.getChildAt(i);
  81.       if($mc.name!=__usrNmae){
  82.         __avatarMC.removeChildAt(i);
  83.         i--;
  84.         mcLength--;
  85.       }
  86.      }
  87.     }
  88.    
  89.   }
  90.   private function __onUserVariablesUpdate(evt:SFSEvent):void{
  91.    var changedVars:Array = evt.params.changedVars
  92.             var $user=evt.params.user
  93.            //if (changedVars["px"] != null || changedVars["py"] != null) {
  94.                trace("User " + evt.params.user.getName() + " moved to new coordinates:")
  95.                trace("\t px: " + evt.params.user.getVariable("px"))
  96.                trace("\t py: " + evt.params.user.getVariable("py"))
  97.       trace("\t init: " + evt.params.user.getVariable("init"))
  98.       
  99.       if($user.getVariable("init")){
  100.        var $name=$user.getName();
  101.        var $mc=__avatarMC.getChildByName($name)  
  102.        if($mc==null || $mc==undefined){
  103.        var avater_mc=new avater($name);   
  104.        avater_mc.x=$user.getVariable("px");
  105.        avater_mc.y=$user.getVariable("py");
  106.        __avatarMC.addChild(avater_mc);
  107.        }else{
  108.         $mc.x=$user.getVariable("px");
  109.         $mc.y=$user.getVariable("py");
  110.        }
  111.       // __playerList.push(avater_mc);
  112.      
  113.        trace("init  : -------------"+avater_mc.x+"    "+avater_mc.y);
  114.       
  115.     }else{
  116.        var tmpAvater2=new MovieClip();
  117.        tmpAvater2=__avatarMC.getChildByName($user.getName());
  118.        __moveAvater(tmpAvater2,$user.getVariable("px"),$user.getVariable("py"));
  119.      
  120.     }
  121.            //  }
  122.    

  123.   }
  124.   private function __moveAvater(_mc:MovieClip,_px,_py):void{
  125.    var startX:Number = _mc.x;
  126.    var startY:Number = _mc.y;
  127.             var finishX:Number = _px;
  128.    var finishY:Number = _py;
  129.             var duration:Number = 1;
  130.             var myTweenX:Tween = new Tween(_mc, "x", Regular.easeOut, startX, finishX, duration, true);
  131.             var myTweenY:Tween = new Tween(_mc, "y", Regular.easeOut, startY, finishY, duration, true);

  132.   }
  133.   private function __onLoginRoom(e:SFSEvent):void{
  134.      
  135.    var tmpRoom:Room= e.params.room
  136.          var userList:Array = tmpRoom.getUserList()
  137.                   
  138.    //chat_mc.chat_txt.text=">> user :"+__usrNmae+" jion the room ";
  139.    chat_mc.userInfor_txt.text="login as >>  "+__usrNmae;
  140.    chat_mc.userList_dg.removeAll();
  141.    trace("usr list : "+userList);
  142.    __cleanAvater();
  143.    if(userList.length>0){
  144.       for (var i:String in userList){
  145.                //trace("login>> "+userList[i].getName());
  146.       var $user:User = userList[i]
  147.       var tmpLabel=$user.getName();
  148.       var tmpData=$user.getId();
  149.       if(tmpLabel!=__usrNmae){
  150.        var player_mc=new avater(tmpLabel);
  151.           //player_mc.name_txt.text=tmpLabel;
  152.        var uVars = $user.getVariables();;
  153.        player_mc.x=uVars.px;
  154.                    player_mc.y=uVars.py;
  155.       // __playerList.push(player_mc);
  156.        __avatarMC.addChild(player_mc);
  157.       }
  158.      
  159.        chat_mc.userList_dg.addItem({label:tmpLabel,data:tmpData});
  160.        chat_mc.chat_txt.text="\n"+tmpLabel+" jion "+tmpRoom.getName();
  161.       
  162.       }  
  163.    }
  164.     __createMyAvater();
  165.     chat_mc.userList_dg.sortItemsOn("label", 1);  
  166.    
  167.    
  168.   }
  169.   private function __createMyAvater():void{
  170.      if (!__inited){
  171.                 //var col = int(Math.random() * 8) + 1
  172.                 //myAvatar = avatarMC.attachMovie("avatar", "avatar_" + smartfox.myUserId, 99999)
  173.                 //myAvatar.disc.gotoAndStop(col)
  174.     __myPlayer=new avater(__usrNmae);
  175.                 //__myPlayer.name.text = _global.myName
  176.                 var px = int(Math.random() * (__areaW - __myPlayer.width / 2)+150)
  177.                 var py = int(Math.random() * (__areaH - __myPlayer.height / 2))
  178.                 __myPlayer.x = px
  179.                 __myPlayer.y = py
  180.     //__myPlayer=new MovieClip();
  181.                 __avatarMC.addChild(__myPlayer);
  182.                 // Store the avatar position on the server
  183.                 __sfsClient.setUserVariables({px:px, py:py,init:true})
  184.                
  185.                 __inited = true
  186.     stage.addEventListener(MouseEvent.CLICK,__onMouseClick);
  187.                 //Mouse.addListener(myMouse)
  188.    
  189.            }

  190.   }
  191.   private function __onMouseClick(evt:MouseEvent):void{
  192.         if (__inited){
  193.                
  194.                         var px = int(evt.stageX)
  195.                         var py = int(evt.stageY)
  196.                         
  197.                         if ((px > (__avatarW/2+150)) && (px < (__areaW - __avatarW/2+150)) && (py > __avatarH/2) && (py < __areaH - __avatarH/2)) {
  198.                               
  199.                                 __sfsClient.setUserVariables({px:px, py:py, init:false})
  200.                                 __moveAvater(__myPlayer,px,py);
  201.         
  202.         trace("px = "+px,"py = "+py);
  203.                         }
  204.                 }
  205.         

  206.      }
  207.   private function  __onRoomUpdate(e:SFSEvent):void{
  208.    chat_mc.roomList_dg.removeAll();
  209.    var roomList=e.params.roomList
  210.    for (var r:String in roomList){
  211.               //trace(e.params.roomList[r].getName())
  212.      var room = roomList[r];
  213.      var tmpUserNum=room.getUserCount();
  214.      var tmpLabel=room.getName()+"("+tmpUserNum+")";
  215.      var tmpData=room.getId();
  216.     // trace(tmpLabel,"-----------------------------"+tmpData);
  217.      chat_mc.roomList_dg.addItem({label:tmpLabel,data:tmpData});
  218.    }
  219.             chat_mc.roomList_dg.sortItemsOn("label", 1);  
  220.       __sfsClient.autoJoin();
  221.    
  222.   }
  223.   private function  __onLogin(e:MouseEvent):void{
  224.    __usrNmae=login_mc.login_txt.text;
  225.    if(__usrNmae==""){
  226.      __usrNmae="guest"+String(Math.round(Math.random()*900+100));
  227.    }
  228.    login_mc.login_txt.text="";
  229.       //__login("SFSmoveTest","mainHall");
  230.       //trace(__usrNmae);
  231.    login_mc.visible = false;
  232.    chat_mc.visible = true;
  233.       __sfsClient.login(__zone, __usrNmae, "");
  234.   }

  235.         private function __onConnectionLost(e:SFSEvent):void{
  236.           trace("Connection lost!");
  237.      chat_mc.chat_txt.text="";
  238.            __init();      
  239.         }

  240.   private function __onConnect(e:SFSEvent) : void {
  241.    if (e.params.success){
  242.              trace("Connection successful");
  243.              login_mc.visible = true;
  244.              login_mc.status_txt.text="connected , plaese login ";   
  245.    }else{
  246.              trace("Connection failed");
  247.              tips_mc.visible = true;
  248.              tips_mc.tips_txt.text="can't connect the SFS !";
  249.     }
  250.   }

  251.   
  252.   private function __connectSfs(_ip : String,_p : uint) : void {
  253.    __sfsClient=new SmartFoxClient();
  254.    __sfsClient.debug = true
  255.    __initEvt();
  256.    __sfsClient.connect(_ip,_p);
  257.   }
  258. }
  259. }
复制代码
代码未完接下帖
686网赚论坛  http://go686.com | 路路有货源网  http://x669.com

TOP

//=================== avater 类 ====================
  1. package{
  2.    import flash.display.MovieClip;
  3.    import flash.text.TextField;
  4.    import flash.events.TimerEvent;
  5.    import flash.utils.Timer;

  6.    public class avater extends MovieClip{
  7.     private var timer:Timer;
  8.    
  9.     public function avater(_name:String){
  10.      __init(_name);
  11.   }
  12.   private function __init(_name:String):void{
  13.    bubble.visible=false;
  14.    name_txt.text=_name;
  15.    this.name=_name;
  16.    //trace("-----------------------------"+_name);
  17.   }
  18.   public function showPMsg(_mag:String):void{
  19.    bubble.visible=true;
  20.    bubble.message.text=_mag;
  21.    timer=new Timer(4000,1)
  22.    timer.addEventListener(TimerEvent.TIMER,__hideBubble);
  23.    timer.start();
  24.   }
  25.   private function  __hideBubble(evt:TimerEvent):void{
  26.    bubble.visible=false;
  27.   }
  28.    }
  29. }
复制代码
686网赚论坛  http://go686.com | 路路有货源网  http://x669.com

TOP

SFS官方教程 AS3.0版 共四篇 (smartFoxServer) 服务端 服务器
第一篇
http://bbs.actionscript3.cn/thread-17170-1-1.html

第二篇
http://bbs.actionscript3.cn/thread-17171-1-1.html

第三篇
http://bbs.actionscript3.cn/thread-17174-1-1.html

第四篇 FLASH虚拟社区
http://bbs.actionscript3.cn/thread-17176-1-1.html
686网赚论坛  http://go686.com | 路路有货源网  http://x669.com

TOP

这好像是哪个版主的文章吧?你把它转到这儿来了?

TOP

.............飘过

TOP

给个包下还好点。

TOP

强烈支持!

TOP

谢谢,学习

TOP

好好好

TOP

我是菜鸟,看不懂,可以直接给源文件吗?
还有需要配置什么环境?

TOP

呵呵....源文件分享就好了

TOP

支持这种精神.......加油...

TOP

看到就很晕。。强烈支持整个包嘛

TOP

跟大家有同感。支持楼主。

TOP

返回列表

江湖传闻 关闭


天地行·上海讲师招募火热进行中…

予人玫瑰手有余香,你想成为讲师么?想与更多的精英开发者分享你的经验么? 快来申请9RIA天地行讲师吧!在这里通通满足你! ...


查看