9. Show Chat UI Chatconstrucor chatScreen= new ChatScreen(); addChild(chatScreen); chatScreen.addEventListener(ChatScreen.OK, onChatScreenReady); chatScreen.addEventListener(ChatScreen.MSG, onChat);
10. Enter Lobby Room private function JoinRoom(roomName:String):void { varcrr:CreateRoomRequest = new CreateRoomRequest(); crr.setRoomName(roomName); crr.setZoneName("chat"); es.send(crr); }
11.
12.
13.
14. Show User List 加入房間成功時呼叫 showUserList() 接收到 UserListUpdateEvent 時呼叫 showUserList() es.addEventListener(MessageType.UserListUpdateEvent, "onUserListUpdate", this); public function onUserListUpdate(ev:UserListUpdateEvent) { showUserList(); }
15.
16. 偵測使用者進入或離開 public function onUserListUpdate(ev:UserListUpdateEvent) { //ev提供相關函式,可取得造成user list變更的使用者資訊 if (ev.getActionId() == UserListUpdateEvent.DeleteUser){ //使用者離開 } if (ev.getActionId() == UserListUpdateEvent.AddUser) { //使用者進入 } }
18. Show Room List private function showRoomList() { varrooms:Array = es.getZoneManager().getZoneByName("chat").getRooms(); chatScreen.room_list.removeAll(); for (vari in rooms) { varrm:Room = rooms[i] as Room; var lab=rm.getRoomName()+"("+rm.getUserCount()+")“; chatScreen.room_list.addItem( { label:lab, data:rm } ); chatScreen.room_list.sortItemsOn("label", "ASC"); } }
19. 加入房間 public function onChangeRoom(e:Event){ varrm:Room = chatScreen.room_list.selectedItem.data; if (rm.getUserCount() == rm.getCapacity()) { //房間已滿 } else{ leaveCurrentRoom(); //離開房間 JoinRoom(rm.getRoomName()); } }