package { import chatroom.InputBox; import chatroom.MessageBox; import flash.display.*; import flash.text.*; import flash.events.*; //Import chatroom import chatroom.*; import main; //Import Union. import net.user1.reactor.*; public class lobbyP extends MovieClip { //Import lobby UI. import lobbyBG; var lobbybg:lobbyBG = new lobbyBG(); import lobbyNavBtn; var lobbynavbtn:lobbyNavBtn = new lobbyNavBtn(); import findGameNavBtn; var findgamenavbtn:findGameNavBtn = new findGameNavBtn(); import crewNavBtn; var crewnavbtn:crewNavBtn = new crewNavBtn(); import crewWarsNavBtn; var crewwarsnavbtn:crewWarsNavBtn = new crewWarsNavBtn(); import rankNavBtn; var ranknavbtn:rankNavBtn = new rankNavBtn(); import optionsNavBtn; var optionsnavbtn:optionsNavBtn = new optionsNavBtn(); import quitNavBtn; var quitnavbtn:quitNavBtn = new quitNavBtn(); import publicChatBtn var publicchatbtn:publicChatBtn = new publicChatBtn(); import crewChatBtn; var crewchatbtn:crewChatBtn = new crewChatBtn(); import upgradePremBtn; var upgradeprembtn:upgradePremBtn = new upgradePremBtn(); import addFriendBtn; var addfriendbtn:addFriendBtn = new addFriendBtn(); import deleteFriendBtn; var deletefriendbtn:deleteFriendBtn = new deleteFriendBtn(); import userRankBox; var userrankbox:userRankBox = new userRankBox(); import dischatMsg; var dischatmsg:dischatMsg = new dischatMsg(); import inputMsg; var inputmsg:inputMsg = new inputMsg(); import onlineUserBox; var onlineuserbox:onlineUserBox = new onlineUserBox(); import friendsListBox; var friendslistbox:friendsListBox = new friendsListBox(); import sendBtn; var sendbtn:sendBtn = new sendBtn; var outgoingMessages:TextField = new TextField(); var incomingMessages:TextField = new TextField(); var userlist:TextField = new TextField(); //Import Union Objects. protected var chatRoom:Room; protected var connectionManager:ConnectionManager; protected var accountManager:AccountManager; //Private vars(I don't know why you have all those regular vars, prolly cause of how you're doing things //But if you get issues with these I guess just set them up like the ones you have above.. public function lobbyP() { //Build the UI; buildLobby(); //reactor = new Reactor(); Main.reactor; incomingMessages.appendText("Welcome to Sniper Accuracy Beta! Follow the rules."); chatRoom = Main.reactor.getRoomManager().createRoom("saRoom"); chatRoom.addMessageListener("CHAT_MESSAGE", chatMessageListener); chatRoom.addEventListener(RoomEvent.JOIN, joinRoomListener); chatRoom.addEventListener(RoomEvent.ADD_OCCUPANT, addClientListener); chatRoom.addEventListener(RoomEvent.REMOVE_OCCUPANT, removeClientListener); chatRoom.join(); } protected function buildLobby():void{ // constructor code //---Background Image---// addChild(lobbybg); lobbybg.x = 0; lobbybg.y = 0; //---Navigation Bar Buttons---// addChild(lobbynavbtn); lobbynavbtn.x = 94; lobbynavbtn.y = 205; lobbynavbtn.buttonMode = true; addChild(findgamenavbtn); findgamenavbtn.x = 169; findgamenavbtn.y = 205; findgamenavbtn.buttonMode = true; addChild(crewnavbtn); crewnavbtn.x = 281; crewnavbtn.y = 205; crewnavbtn.buttonMode = true; addChild(crewwarsnavbtn); crewwarsnavbtn.x = 344; crewwarsnavbtn.y = 205; crewwarsnavbtn.buttonMode = true; addChild(ranknavbtn); ranknavbtn.x = 450; ranknavbtn.y = 205; ranknavbtn.buttonMode = true; addChild(optionsnavbtn); optionsnavbtn.x = 513.95; optionsnavbtn.y = 205; optionsnavbtn.buttonMode = true; addChild(quitnavbtn); quitnavbtn.x = 600.95; quitnavbtn.y = 205; quitnavbtn.buttonMode = true; quitnavbtn.addEventListener(MouseEvent.CLICK, logoffClickListener) //---General Buttons---// addChild(publicchatbtn); publicchatbtn.x = 133; publicchatbtn.y = 530.95; publicchatbtn.buttonMode = true; addChild(crewchatbtn); crewchatbtn.x = 182; crewchatbtn.y = 530.95; crewchatbtn.buttonMode = true; addChild(upgradeprembtn); upgradeprembtn.x = 732.95; upgradeprembtn.y = 534.95; upgradeprembtn.buttonMode = true; addChild(addfriendbtn); addfriendbtn.x = 498.95; addfriendbtn.y = 600; addfriendbtn.buttonMode = true; addChild(deletefriendbtn); deletefriendbtn.x = 498.95; deletefriendbtn.y = 628; deletefriendbtn.buttonMode = true; //---Lobby Chat/Friends List/Online Users Boxes---// addChild(userrankbox); userrankbox.x = 125; userrankbox.y = 124; //addChild(dischatmsg); dischatmsg.x = 133; dischatmsg.y = 276; dischatmsg.addChild(incomingMessages); incomingMessages.width = 513.95; incomingMessages.height = 204.35; incomingMessages.selectable = false; //addChild(inputmsg); inputmsg.x = 133; inputmsg.y = 496.95; inputmsg.addChild(outgoingMessages); outgoingMessages.width = 458.95; outgoingMessages.height = 21.45; outgoingMessages.type = "input"; addChild(onlineuserbox); onlineuserbox.x = 674; onlineuserbox.y = 274.95; onlineuserbox.addChild(userlist); userlist.width = 145; userlist.height = 233.7; userlist.selectable = false; userlist.textColor = 0xFFFFFF; addChild(friendslistbox); friendslistbox.x = 325.95; friendslistbox.y = 533.95; addChild(sendbtn); sendbtn.x = 612.95; sendbtn.y = 500; sendbtn.buttonMode = true; sendbtn.addEventListener(MouseEvent.CLICK, outgoingKeyUpListener); //New Chatroom //this.msg = new MessageBox(140, 280, 520, 210); Main.msg = new MessageBox(140, 280, 520, 210); Main.msg.setMaxNumLines(13); this.addChild(Main.msg); //msg.setMaxNumLines(13); //By the way I found out what you meant by your whole frame has to be in one class //This whole thing is a movieclip lol, you could have just said that //But it doesn't change how this works :P //this.addChild(msg); //this.input = new InputBox(msg.x, msg.y + msg.height + 10, msg.width, 20, processMessage, msg); Main.input = new InputBox(msg.x, msg.y + msg.height + 10, msg.width, 20, processMessage, msg); Main.input.setStatus("Guest", Rank.USER); this.addChild(Main.input); //You're going to have to find out how to implement this later for finding out which rank you are //But you should know how to setup this class //Also I don't know how to find the username so you do that too //input.setStatus("Guest", Rank.USER); //this.addChild(input); } protected function outgoingKeyUpListener (e:MouseEvent):void { chatRoom.sendMessage("CHAT_MESSAGE", true, null, outgoingMessages.text); //outgoingMessages.text = ""; Main.input.messageSentFromSelf(); } private function processMessage(message:String):void { //I temporarily took out the displaying chat message as soon as you sent it so that you can manage it //With your chatMessageListener function //Easier implementation chatRoom.sendMessage("CHAT_MESSAGE", true, null, message); } protected function chatMessageListener(fromClient:IClient, messageText:String):void{ //incomingMessages.appendText(getUserName(fromClient) + ": " + messageText); //incomingMessages.scrollV = incomingMessages.maxScrollV; //var username:String = getUserName(fromClient); //Again you have to figure out how to get the user status, for now all are users Main.msg.displayChatMessage(username, Rank.USER, messageText); } protected function joinRoomListener (e:RoomEvent):void { updateUserList(); } protected function addClientListener (e:RoomEvent):void { if (e.getClient().isSelf()) { //incomingMessages.appendText("You joined the chat.\n"); Main.msg.displayText("You joined the chat", "#FFFFFF"); } else { if (chatRoom.getSyncState() != SynchronizationState.SYNCHRONIZING) { //incomingMessages.appendText(getUserName(e.getClient()) + " joined the chat.\n"); Main.msg.displayText(getUserName(e.getClient()) + " joined the chat", "#FFFFFF"); } } //incomingMessages.scrollV = incomingMessages.maxScrollV; updateUserList(); } protected function removeClientListener (e:RoomEvent):void { updateUserList(); } protected function updateUserList (e:AccountEvent):void { userlist.text = ""; for each (var getUserID:AccountManager in chatRoom.getOccupants()) { userlist.appendText(getUserName(client) + "\n"); } } protected function getUserName (client:IClient):String { var username:String = client.getAccount(); return username; } protected function logoffListener (e:AccountEvent):void { //incomingMessages.appendText(getUserName(e.getClient()) + " left the chat.\n"); //incomingMessages.scrollV = incomingMessages.maxScrollV; Main.msg.displayText(getUserName(e.getClient()) + " left the chat", "#FFFFFF"); updateUserList(); } protected function logoffClickListener (e:MouseEvent):void { accountManager.logoff(Main.usernameT.text, Main.passwordT.text); } } }