/* This file was made by KnifeySpooney (http://www.spogg.com/KnifeySpooney). Do not copy or reproduce any part of this file without proper credit. */ /* Make sure to add these components to your library: -------------------------------------------------- Button List TextArea TextInput */ import fl.controls.TextArea; import fl.controls.TextInput; import fl.controls.List; import fl.data.DataProvider; import fl.controls.Button; import flash.display.Sprite; setBG(0xDAFFCA); var roomList:Array = new Array(); var usernameList:Array; var pmuserList:Array; var roomLeft = createButton("<", 30, 5, 4.3, false); var roomRight = createButton(">", 30, 395, 4.3, false); roomLeft.addEventListener(MouseEvent.CLICK, function() { moveRooms("left") } ); roomRight.addEventListener(MouseEvent.CLICK, function() { moveRooms("right") } ); var pushMsg:Button = createButton("Send", 68, 356, 376.7, true, false, 19); var namesBtn:Button = createButton("User list", 80, 432, 5, true, true); var pmsBtn:Button = createButton("PMs", 80, 512, 5, true, true); var rand:int = Math.round(Math.random() * 899) + 100; var username:String = "guest" + rand; var usersex:String = "M"; var userage:String = "15"; var visibleRooms:Array = new Array; loadLists(); var msgArea:TextArea = createTextBox(348, 420, 5, 25); var inputMsg:TextInput = createTextField(19, 350, 6, 377); var currentRoom:Object = createRoom("Global Chat", true); var selectBtn:Object = namesBtn; var selectRoom:Object = currentRoom.button; for (var b:int=0; b"; for (var a:int=0; a 0) { sendMsg("Your age has been changed to " + params, true); userage = params; updateLists(); } else sendMsg("Error: Invalid age value. Possible values: 0-100. Age not changed.", true); } else sendMsg("Error: Invalid age value. Possible values: 0-100. Age not changed.", true); } else if (command == "sex" || command == "gender") { params = params.replace(/[\s]/g, ""); // Removes spaces if (params != '' && /^(m|f)$/i.test(params)) { // Checks for value M or F (case-insensitive) params = params.toUpperCase(); sendMsg("Your gender has been changed to " + params, true); usersex = params; updateLists(); } else sendMsg("Error: Invalid gender value. Possible values: M, F. Gender not changed.", true); } else if (command == "clear") { currentRoom.history = ''; updateChat(); } else if (command == "bg") { if (params != '' && /^(#|0x)[\w\d]{6}$/i.test(params)) setBG(uint("0x" + params.replace(/^(#|0x)/i, ""))); else sendMsg("Error: Invalid color value. Possible values: #NNNNNN, 0xNNNNNN. Background color not changed.", true); } else sendMsg("Command not recognized.", true); } function stripTags(str:String, tags:String=null):String { var pattern:RegExp = /<\/?[a-zA-Z0-9]+.*?>/gim; if (tags != null) { var getChars:RegExp = /(<)([^>]*)(>)/gim; var stripPattern:String = tags.replace(getChars, "$2|"); stripPattern = stripPattern.substr(0, -1); stripPattern = "<(?!/?(" + stripPattern + ")(?=[^a-zA-Z0-9]))\/?[a-zA-Z0-9]+.*?/?>"; pattern = new RegExp(stripPattern, "gim"); } return str.replace(pattern, ""); } function findLink(str:String):String { var regexp:RegExp = /(http:\/\/[^ ]+)+/gi; // Matches any text starting with http:// return str.replace(regexp, "$1"); } function switchTabs(clickedTab:Object):void { selectBtn.selected = false; clickedTab.selected = true; selectBtn = clickedTab; if (clickedTab == namesBtn) tableList.dataProvider = namesList; if (clickedTab == pmsBtn) tableList.dataProvider = pmsList; } function switchRooms(clickedRoom:Object, room:Object):void { selectRoom.selected = false; currentRoom.scrollPos = msgArea.verticalScrollPosition; clickedRoom.selected = true; selectRoom = clickedRoom; msgArea.htmlText = room.history; msgArea.verticalScrollPosition = room.scrollPos; currentRoom = room; } function loadLists():void { usernameList = new Array("turtleturtle M8", "Viktor M32", "cr3t1n M13", "seagoat1984 M24", "PurpleHaze M17", "Stefango M44", "Ville M33", "AnnaZ F31", username + " " + usersex + userage); pmuserList = new Array("AnnaZ F31", "Stefango M44", "cr3t1n M13", "Ville M33", "seagoat1984 M24", "turtleturtle M8"); } function updateLists():void { loadLists(); namesList = new DataProvider; for (var i:int=0; i\n"; roomList.push(newRoom); myButton.addEventListener(MouseEvent.CLICK, function(e:Event) { switchRooms(e.target, newRoom); newRoom.isBlinking=false } ); return newRoom; } function createButton(label:String, w:int, x:Number, y:Number, enabled:Boolean=true, selected:Boolean=false, h:int=22):Button { var myButton:Button = new Button(); if (h) myButton.height = h; myButton.label = label; myButton.width = w; myButton.move(x, y); if (!enabled) myButton.enabled = false; if (selected) myButton.toggle = true; addChild(myButton); return myButton; } function createTextBox(h:int, w:int, x:Number, y:Number):TextArea { var textBox:TextArea = new TextArea(); textBox.editable = false; textBox.wordWrap = true; textBox.width = w; textBox.height = h; textBox.move(x, y); addChild(textBox); return textBox; } function createTextField(h:int, w:int, x:Number, y:Number):TextInput { var textBox:TextInput = new TextInput(); textBox.width = w; textBox.height = h; textBox.move(x, y); textBox.maxChars = 200; addChild(textBox); return textBox; } function createList(h:int, w:int, x:Number, y:Number):List { var list:List = new List; list.width = w; list.height = h; list.move(x, y); addChild(list); return list; } function blinking(room:Object):void { var delay:Number = 600; room.isBlinking = true; blink(); function blink():void { if (room.isBlinking) { setTimeout(unBlink, delay); room.button.selected = true; } } function unBlink():void { if (room.isBlinking) { setTimeout(blink, delay); room.button.selected = false; } } } function moveRooms(dir:String):void { var visLength:int = visibleRooms.length; var lastVisRoom:int; for (var p:int=0; p