Guest User

Binweevils - Connect Mulch [2016, WOzi]

a guest
Jun 16th, 2016
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 312.80 KB | None | 0 0
  1. package {
  2. import flash.display.*;
  3.  
  4. public dynamic class Button_downSkin extends MovieClip {
  5.  
  6. }
  7. }//package
  8. package {
  9. import flash.display.*;
  10.  
  11. public dynamic class Button_emphasizedSkin extends MovieClip {
  12.  
  13. }
  14. }//package
  15. package {
  16. import flash.display.*;
  17.  
  18. public dynamic class focusRectSkin extends MovieClip {
  19.  
  20. }
  21. }//package
  22. package {
  23. import flash.display.*;
  24.  
  25. public dynamic class Button_selectedOverSkin extends MovieClip {
  26.  
  27. }
  28. }//package
  29. package {
  30. import flash.display.*;
  31.  
  32. public dynamic class Button_selectedDisabledSkin extends MovieClip {
  33.  
  34. }
  35. }//package
  36. package it.gotoandplay.smartfoxserver {
  37. import flash.events.*;
  38.  
  39. public class SFSEvent extends Event {
  40.  
  41. public static const onExtensionResponse:String = "onExtensionResponse";
  42. public static const onConfigLoadFailure:String = "onConfigLoadFailure";
  43. public static const onBuddyListUpdate:String = "onBuddyListUpdate";
  44. public static const onUserLeaveRoom:String = "onUserLeaveRoom";
  45. public static const onRoomLeft:String = "onRoomLeft";
  46. public static const onRoundTripResponse:String = "onRoundTripResponse";
  47. public static const onRoomListUpdate:String = "onRoomListUpdate";
  48. public static const onConnection:String = "onConnection";
  49. public static const onBuddyListError:String = "onBuddyListError";
  50. public static const onJoinRoom:String = "onJoinRoom";
  51. public static const onBuddyRoom:String = "onBuddyRoom";
  52. public static const onUserEnterRoom:String = "onUserEnterRoom";
  53. public static const onDebugMessage:String = "onDebugMessage";
  54. public static const onAdminMessage:String = "onAdminMessage";
  55. public static const onPublicMessage:String = "onPublicMessage";
  56. public static const onModeratorMessage:String = "onModMessage";
  57. public static const onPrivateMessage:String = "onPrivateMessage";
  58. public static const onLogout:String = "onLogout";
  59. public static const onJoinRoomError:String = "onJoinRoomError";
  60. public static const onRoomAdded:String = "onRoomAdded";
  61. public static const onLogin:String = "onLogin";
  62. public static const onSpectatorSwitched:String = "onSpectatorSwitched";
  63. public static const onBuddyPermissionRequest:String = "onBuddyPermissionRequest";
  64. public static const onRoomDeleted:String = "onRoomDeleted";
  65. public static const onConnectionLost:String = "onConnectionLost";
  66. public static const onBuddyList:String = "onBuddyList";
  67. public static const onRoomVariablesUpdate:String = "onRoomVariablesUpdate";
  68. public static const onCreateRoomError:String = "onCreateRoomError";
  69. public static const onUserCountChange:String = "onUserCountChange";
  70. public static const onUserVariablesUpdate:String = "onUserVariablesUpdate";
  71. public static const onConfigLoadSuccess:String = "onConfigLoadSuccess";
  72. public static const onRandomKey:String = "onRandomKey";
  73. public static const onObjectReceived:String = "onObjectReceived";
  74.  
  75. public var params:Object;
  76.  
  77. public function SFSEvent(_arg1:String, _arg2:Object){
  78. super(_arg1);
  79. this.params = _arg2;
  80. }
  81. override public function toString():String{
  82. return (formatToString("SFSEvent", "type", "bubbles", "cancelable", "eventPhase", "params"));
  83. }
  84. override public function clone():Event{
  85. return (new SFSEvent(this.type, this.params));
  86. }
  87.  
  88. }
  89. }//package it.gotoandplay.smartfoxserver
  90. package it.gotoandplay.smartfoxserver.http {
  91. import flash.events.*;
  92.  
  93. public class HttpEvent extends Event {
  94.  
  95. public static const onHttpClose:String = "onHttpClose";
  96. public static const onHttpError:String = "onHttpError";
  97. public static const onHttpConnect:String = "onHttpConnect";
  98. public static const onHttpData:String = "onHttpData";
  99.  
  100. public var params:Object;
  101. private var evtType:String;
  102.  
  103. public function HttpEvent(_arg1:String, _arg2:Object){
  104. super(_arg1);
  105. this.params = _arg2;
  106. this.evtType = _arg1;
  107. }
  108. override public function toString():String{
  109. return (formatToString("HttpEvent", "type", "bubbles", "cancelable", "eventPhase", "params"));
  110. }
  111. override public function clone():Event{
  112. return (new HttpEvent(this.evtType, this.params));
  113. }
  114.  
  115. }
  116. }//package it.gotoandplay.smartfoxserver.http
  117. package it.gotoandplay.smartfoxserver.http {
  118.  
  119. public interface IHttpProtocolCodec {
  120.  
  121. function encode(_arg1:String, _arg2:String):String;
  122. function decode(_arg1:String):String;
  123.  
  124. }
  125. }//package it.gotoandplay.smartfoxserver.http
  126. package it.gotoandplay.smartfoxserver.http {
  127. import flash.events.*;
  128. import flash.net.*;
  129.  
  130. public class HttpConnection extends EventDispatcher {
  131.  
  132. private static const servletUrl:String = "BlueBox/HttpBox.do";
  133. public static const HANDSHAKE_TOKEN:String = "#";
  134. private static const HANDSHAKE:String = "connect";
  135. private static const DISCONNECT:String = "disconnect";
  136. private static const CONN_LOST:String = "ERR#01";
  137. private static const paramName:String = "sfsHttp";
  138.  
  139. private var port:int;
  140. private var connected:Boolean = false;
  141. private var sessionId:String;
  142. private var codec:IHttpProtocolCodec;
  143. private var urlLoaderFactory:LoaderFactory;
  144. private var urlRequest:URLRequest;
  145. private var ipAddr:String;
  146. private var webUrl:String;
  147.  
  148. public function HttpConnection(){
  149. connected = false;
  150. super();
  151. codec = new RawProtocolCodec();
  152. urlLoaderFactory = new LoaderFactory(handleResponse, handleIOError);
  153. }
  154. public function close():void{
  155. send(DISCONNECT);
  156. }
  157. public function getSessionId():String{
  158. return (this.sessionId);
  159. }
  160. private function handleResponse(_arg1:Event):void{
  161. var _local2:URLLoader;
  162. var _local3:String;
  163. var _local4:HttpEvent;
  164. var _local5:Object;
  165. _local2 = (_arg1.target as URLLoader);
  166. _local3 = (_local2.data as String);
  167. _local5 = {};
  168. if (_local3.charAt(0) == HANDSHAKE_TOKEN){
  169. if (sessionId == null){
  170. sessionId = codec.decode(_local3);
  171. connected = true;
  172. _local5.sessionId = this.sessionId;
  173. _local5.success = true;
  174. _local4 = new HttpEvent(HttpEvent.onHttpConnect, _local5);
  175. dispatchEvent(_local4);
  176. } else {
  177. trace("**ERROR** SessionId is being rewritten");
  178. };
  179. } else {
  180. if (_local3.indexOf(CONN_LOST) == 0){
  181. _local5.data = {};
  182. _local4 = new HttpEvent(HttpEvent.onHttpClose, _local5);
  183. } else {
  184. _local5.data = _local3;
  185. _local4 = new HttpEvent(HttpEvent.onHttpData, _local5);
  186. };
  187. dispatchEvent(_local4);
  188. };
  189. }
  190. private function handleIOError(_arg1:IOErrorEvent):void{
  191. var _local2:Object;
  192. var _local3:HttpEvent;
  193. _local2 = {};
  194. _local2.message = _arg1.text;
  195. _local3 = new HttpEvent(HttpEvent.onHttpError, _local2);
  196. dispatchEvent(_local3);
  197. }
  198. public function connect(_arg1:String, _arg2:int=8080):void{
  199. this.ipAddr = _arg1;
  200. this.port = _arg2;
  201. this.webUrl = ((((("http://" + this.ipAddr) + ":") + this.port) + "/") + servletUrl);
  202. this.sessionId = null;
  203. urlRequest = new URLRequest(webUrl);
  204. urlRequest.method = URLRequestMethod.POST;
  205. send(HANDSHAKE);
  206. }
  207. public function send(_arg1:String):void{
  208. var _local2:URLVariables;
  209. var _local3:URLLoader;
  210. if (((((connected) || (((!(connected)) && ((_arg1 == HANDSHAKE)))))) || (((!(connected)) && ((_arg1 == "poll")))))){
  211. _local2 = new URLVariables();
  212. _local2[paramName] = codec.encode(this.sessionId, _arg1);
  213. urlRequest.data = _local2;
  214. if (_arg1 != "poll"){
  215. trace(("[ Send ]: " + urlRequest.data));
  216. };
  217. _local3 = urlLoaderFactory.getLoader();
  218. _local3.data = _local2;
  219. _local3.load(urlRequest);
  220. };
  221. }
  222. public function isConnected():Boolean{
  223. return (this.connected);
  224. }
  225.  
  226. }
  227. }//package it.gotoandplay.smartfoxserver.http
  228. package it.gotoandplay.smartfoxserver.http {
  229.  
  230. public class RawProtocolCodec implements IHttpProtocolCodec {
  231.  
  232. private static const SESSION_ID_LEN:int = 32;
  233.  
  234. public function encode(_arg1:String, _arg2:String):String{
  235. return (((((_arg1 == null)) ? "" : _arg1) + _arg2));
  236. }
  237. public function decode(_arg1:String):String{
  238. var _local2:String;
  239. if (_arg1.charAt(0) == HttpConnection.HANDSHAKE_TOKEN){
  240. _local2 = _arg1.substr(1, SESSION_ID_LEN);
  241. };
  242. return (_local2);
  243. }
  244.  
  245. }
  246. }//package it.gotoandplay.smartfoxserver.http
  247. package it.gotoandplay.smartfoxserver.http {
  248. import flash.events.*;
  249. import flash.net.*;
  250.  
  251. public class LoaderFactory {
  252.  
  253. private static const DEFAULT_POOL_SIZE:int = 8;
  254.  
  255. private var currentLoaderIndex:int;
  256. private var loadersPool:Array;
  257.  
  258. public function LoaderFactory(_arg1:Function, _arg2:Function, _arg3:int=8){
  259. var _local4:int;
  260. var _local5:URLLoader;
  261. super();
  262. loadersPool = [];
  263. _local4 = 0;
  264. while (_local4 < _arg3) {
  265. _local5 = new URLLoader();
  266. _local5.dataFormat = URLLoaderDataFormat.TEXT;
  267. _local5.addEventListener(Event.COMPLETE, _arg1);
  268. _local5.addEventListener(IOErrorEvent.IO_ERROR, _arg2);
  269. _local5.addEventListener(IOErrorEvent.NETWORK_ERROR, _arg2);
  270. loadersPool.push(_local5);
  271. _local4++;
  272. };
  273. currentLoaderIndex = 0;
  274. }
  275. public function getLoader():URLLoader{
  276. var _local1:URLLoader;
  277. _local1 = loadersPool[currentLoaderIndex];
  278. currentLoaderIndex++;
  279. if (currentLoaderIndex >= loadersPool.length){
  280. currentLoaderIndex = 0;
  281. };
  282. return (_local1);
  283. }
  284.  
  285. }
  286. }//package it.gotoandplay.smartfoxserver.http
  287. package it.gotoandplay.smartfoxserver {
  288. import flash.events.*;
  289. import flash.net.*;
  290. import it.gotoandplay.smartfoxserver.data.*;
  291. import it.gotoandplay.smartfoxserver.util.*;
  292. import com.adobe.serialization.json.*;
  293. import it.gotoandplay.smartfoxserver.handlers.*;
  294. import it.gotoandplay.smartfoxserver.http.*;
  295. import flash.utils.*;
  296.  
  297. public class SmartFoxClient extends EventDispatcher {
  298.  
  299. public static const CONNECTION_MODE_HTTP:String = "http";
  300. private static const MSG_JSON:String = "{";
  301. public static const MODMSG_TO_USER:String = "u";
  302. public static const XTMSG_TYPE_XML:String = "xml";
  303. private static const MSG_XML:String = "<";
  304. public static const MODMSG_TO_ROOM:String = "r";
  305. private static const EOM:int = 0;
  306. public static const XTMSG_TYPE_STR:String = "str";
  307. public static const CONNECTION_MODE_SOCKET:String = "socket";
  308. public static const MODMSG_TO_ZONE:String = "z";
  309. public static const CONNECTION_MODE_DISCONNECTED:String = "disconnected";
  310. public static const XTMSG_TYPE_JSON:String = "json";
  311.  
  312. private static var MAX_POLL_SPEED:Number = 10000;
  313. private static var DEFAULT_POLL_SPEED:Number = 750;
  314. private static var MIN_POLL_SPEED:Number = 0;
  315. private static var HTTP_POLL_REQUEST:String = "poll";
  316. private static var MSG_STR:String = "%";
  317.  
  318. private var connected:Boolean;
  319. private var autoConnectOnConfigSuccess:Boolean = false;
  320. private var benchStartTime:int;
  321. private var roomList:Array;
  322. private var _httpPollSpeed:int;
  323. private var minVersion:Number;
  324. public var httpPort:int = 8080;
  325. public var myUserId:int;
  326. public var blueBoxPort:Number = 0;
  327. public var debug:Boolean;
  328. private var byteBuffer:ByteArray;
  329. private var subVersion:Number;
  330. public var buddyList:Array;
  331. public var port:int = 9339;
  332. private var messageHandlers:Array;
  333. public var defaultZone:String;
  334. private var isHttpMode:Boolean = false;
  335. private var httpConnection:HttpConnection;
  336. private var majVersion:Number;
  337. private var socketConnection:Socket;
  338. public var blueBoxIpAddress:String;
  339. private var sysHandler:SysHandler;
  340. public var myBuddyVars:Array;
  341. public var myUserName:String;
  342. public var ipAddress:String;
  343. public var playerId:int;
  344. public var smartConnect:Boolean = true;
  345. public var amIModerator:Boolean;
  346. private var extHandler:ExtHandler;
  347. public var changingRoom:Boolean;
  348. public var activeRoomId:int;
  349.  
  350. public function SmartFoxClient(_arg1:Boolean=false){
  351. autoConnectOnConfigSuccess = false;
  352. port = 9339;
  353. isHttpMode = false;
  354. _httpPollSpeed = DEFAULT_POLL_SPEED;
  355. blueBoxPort = 0;
  356. smartConnect = true;
  357. httpPort = 8080;
  358. super();
  359. this.majVersion = 1;
  360. this.minVersion = 5;
  361. this.subVersion = 4;
  362. this.activeRoomId = -1;
  363. this.debug = _arg1;
  364. this.messageHandlers = [];
  365. setupMessageHandlers();
  366. socketConnection = new Socket();
  367. socketConnection.addEventListener(Event.CONNECT, handleSocketConnection);
  368. socketConnection.addEventListener(Event.CLOSE, handleSocketDisconnection);
  369. socketConnection.addEventListener(ProgressEvent.SOCKET_DATA, handleSocketData);
  370. socketConnection.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
  371. socketConnection.addEventListener(IOErrorEvent.NETWORK_ERROR, handleIOError);
  372. socketConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecurityError);
  373. httpConnection = new HttpConnection();
  374. httpConnection.addEventListener(HttpEvent.onHttpConnect, handleHttpConnect);
  375. httpConnection.addEventListener(HttpEvent.onHttpClose, handleHttpClose);
  376. httpConnection.addEventListener(HttpEvent.onHttpData, handleHttpData);
  377. httpConnection.addEventListener(HttpEvent.onHttpError, handleHttpError);
  378. byteBuffer = new ByteArray();
  379. }
  380. private function getXmlUserVariable(_arg1:Object):String{
  381. var _local2:String;
  382. var _local3:*;
  383. var _local4:String;
  384. var _local5:String;
  385. var _local6:String;
  386. _local2 = "<vars>";
  387. for (_local6 in _arg1) {
  388. _local3 = _arg1[_local6];
  389. _local5 = typeof(_local3);
  390. _local4 = null;
  391. if (_local5 == "boolean"){
  392. _local4 = "b";
  393. _local3 = ((_local3) ? "1" : "0");
  394. } else {
  395. if (_local5 == "number"){
  396. _local4 = "n";
  397. } else {
  398. if (_local5 == "string"){
  399. _local4 = "s";
  400. } else {
  401. if ((((((_local3 == null)) && ((_local5 == "object")))) || ((_local5 == "undefined")))){
  402. _local4 = "x";
  403. _local3 = "";
  404. };
  405. };
  406. };
  407. };
  408. if (_local4 != null){
  409. _local2 = (_local2 + (((((("<var n='" + _local6) + "' t='") + _local4) + "'><![CDATA[") + _local3) + "]]></var>"));
  410. };
  411. };
  412. _local2 = (_local2 + "</vars>");
  413. return (_local2);
  414. }
  415. private function jsonReceived(_arg1:String):void{
  416. var _local2:Object;
  417. var _local3:String;
  418. var _local4:IMessageHandler;
  419. _local2 = JSON.decode(_arg1);
  420. _local3 = _local2["t"];
  421. _local4 = messageHandlers[_local3];
  422. if (_local4 != null){
  423. _local4.handleMessage(_local2["b"], XTMSG_TYPE_JSON);
  424. };
  425. }
  426. private function onConfigLoadFailure(_arg1:IOErrorEvent):void{
  427. var _local2:Object;
  428. var _local3:SFSEvent;
  429. _local2 = {message:_arg1.text};
  430. _local3 = new SFSEvent(SFSEvent.onConfigLoadFailure, _local2);
  431. dispatchEvent(_local3);
  432. }
  433. public function getActiveRoom():Room{
  434. return (roomList[activeRoomId]);
  435. }
  436. public function getBuddyRoom(_arg1:Object):void{
  437. if (_arg1.id != -1){
  438. send({
  439. t:"sys",
  440. bid:_arg1.id
  441. }, "roomB", -1, (("<b id='" + _arg1.id) + "' />"));
  442. };
  443. }
  444. private function checkBuddyDuplicates(_arg1:String):Boolean{
  445. var _local2:Boolean;
  446. var _local3:Object;
  447. _local2 = false;
  448. for each (_local3 in buddyList) {
  449. if (_local3.name == _arg1){
  450. _local2 = true;
  451. break;
  452. };
  453. };
  454. return (_local2);
  455. }
  456. private function getXmlRoomVariable(_arg1:Object):String{
  457. var _local2:String;
  458. var _local3:*;
  459. var _local4:String;
  460. var _local5:String;
  461. var _local6:String;
  462. var _local7:String;
  463. _local2 = _arg1.name.toString();
  464. _local3 = _arg1.val;
  465. _local4 = ((_arg1.priv) ? "1" : "0");
  466. _local5 = ((_arg1.persistent) ? "1" : "0");
  467. _local6 = null;
  468. _local7 = typeof(_local3);
  469. if (_local7 == "boolean"){
  470. _local6 = "b";
  471. _local3 = ((_local3) ? "1" : "0");
  472. } else {
  473. if (_local7 == "number"){
  474. _local6 = "n";
  475. } else {
  476. if (_local7 == "string"){
  477. _local6 = "s";
  478. } else {
  479. if ((((((_local3 == null)) && ((_local7 == "object")))) || ((_local7 == "undefined")))){
  480. _local6 = "x";
  481. _local3 = "";
  482. };
  483. };
  484. };
  485. };
  486. if (_local6 != null){
  487. return ((((((((((("<var n='" + _local2) + "' t='") + _local6) + "' pr='") + _local4) + "' pe='") + _local5) + "'><![CDATA[") + _local3) + "]]></var>"));
  488. };
  489. return ("");
  490. }
  491. public function getBuddyById(_arg1:int):Object{
  492. var _local2:Object;
  493. for each (_local2 in buddyList) {
  494. if (_local2.id == _arg1){
  495. return (_local2);
  496. };
  497. };
  498. return (null);
  499. }
  500. private function handleSocketDisconnection(_arg1:Event):void{
  501. var _local2:SFSEvent;
  502. initialize();
  503. _local2 = new SFSEvent(SFSEvent.onConnectionLost, {});
  504. dispatchEvent(_local2);
  505. }
  506. private function handleSocketError(_arg1:SecurityErrorEvent):void{
  507. debugMessage(("Socket Error: " + _arg1.text));
  508. }
  509. private function xmlReceived(_arg1:String):void{
  510. var _local2:XML;
  511. var _local3:String;
  512. var _local4:String;
  513. var _local5:int;
  514. var _local6:IMessageHandler;
  515. _local2 = new XML(_arg1);
  516. _local3 = _local2.@t;
  517. _local4 = _local2.body.@action;
  518. _local5 = _local2.body.@r;
  519. _local6 = messageHandlers[_local3];
  520. if (_local6 != null){
  521. _local6.handleMessage(_local2, XTMSG_TYPE_XML);
  522. };
  523. }
  524. public function switchSpectator(_arg1:int=-1):void{
  525. if (_arg1 == -1){
  526. _arg1 = activeRoomId;
  527. };
  528. send({t:"sys"}, "swSpec", _arg1, "");
  529. }
  530. public function roundTripBench():void{
  531. this.benchStartTime = getTimer();
  532. send({t:"sys"}, "roundTrip", activeRoomId, "");
  533. }
  534. private function handleHttpError(_arg1:HttpEvent):void{
  535. trace("HttpError");
  536. if (!connected){
  537. dispatchConnectionError();
  538. };
  539. }
  540. public function joinRoom(_arg1, _arg2:String="", _arg3:Boolean=false, _arg4:Boolean=false, _arg5:int=-1):void{
  541. var _local6:int;
  542. var _local7:int;
  543. var _local8:Room;
  544. var _local9:Object;
  545. var _local10:String;
  546. var _local11:int;
  547. var _local12:String;
  548. _local6 = -1;
  549. _local7 = ((_arg3) ? 1 : 0);
  550. if (!this.changingRoom){
  551. if (typeof(_arg1) == "number"){
  552. _local6 = int(_arg1);
  553. } else {
  554. if (typeof(_arg1) == "string"){
  555. for each (_local8 in roomList) {
  556. if (_local8.getName() == _arg1){
  557. _local6 = _local8.getId();
  558. break;
  559. };
  560. };
  561. };
  562. };
  563. if (_local6 != -1){
  564. _local9 = {t:"sys"};
  565. _local10 = ((_arg4) ? "0" : "1");
  566. _local11 = (((_arg5 > -1)) ? _arg5 : activeRoomId);
  567. if (activeRoomId == -1){
  568. _local10 = "0";
  569. _local11 = -1;
  570. };
  571. _local12 = (((((((((("<room id='" + _local6) + "' pwd='") + _arg2) + "' spec='") + _local7) + "' leave='") + _local10) + "' old='") + _local11) + "' />");
  572. send(_local9, "joinRoom", activeRoomId, _local12);
  573. changingRoom = true;
  574. } else {
  575. debugMessage("SmartFoxError: requested room to join does not exist!");
  576. };
  577. };
  578. }
  579. public function get httpPollSpeed():int{
  580. return (this._httpPollSpeed);
  581. }
  582. public function uploadFile(_arg1:FileReference, _arg2:int=-1, _arg3:String="", _arg4:int=-1):void{
  583. if (_arg2 == -1){
  584. _arg2 = this.myUserId;
  585. };
  586. if (_arg3 == ""){
  587. _arg3 = this.myUserName;
  588. };
  589. if (_arg4 == -1){
  590. _arg4 = this.httpPort;
  591. };
  592. _arg1.upload(new URLRequest(((((((("http://" + this.ipAddress) + ":") + _arg4) + "/default/Upload.py?id=") + _arg2) + "&nick=") + _arg3)));
  593. debugMessage(((((((("[UPLOAD]: http://" + this.ipAddress) + ":") + _arg4) + "/default/Upload.py?id=") + _arg2) + "&nick=") + _arg3));
  594. }
  595. private function handleHttpClose(_arg1:HttpEvent):void{
  596. var _local2:SFSEvent;
  597. initialize();
  598. _local2 = new SFSEvent(SFSEvent.onConnectionLost, {});
  599. dispatchEvent(_local2);
  600. }
  601. private function makeXmlHeader(_arg1:Object):String{
  602. var _local2:String;
  603. var _local3:String;
  604. _local2 = "<msg";
  605. for (_local3 in _arg1) {
  606. _local2 = (_local2 + ((((" " + _local3) + "='") + _arg1[_local3]) + "'"));
  607. };
  608. _local2 = (_local2 + ">");
  609. return (_local2);
  610. }
  611. public function getRoomByName(_arg1:String):Room{
  612. var _local2:Room;
  613. var _local3:Room;
  614. _local2 = null;
  615. for each (_local3 in roomList) {
  616. if (_local3.getName() == _arg1){
  617. _local2 = _local3;
  618. break;
  619. };
  620. };
  621. return (_local2);
  622. }
  623. private function debugMessage(_arg1:String):void{
  624. var _local2:SFSEvent;
  625. if (this.debug){
  626. trace(_arg1);
  627. _local2 = new SFSEvent(SFSEvent.onDebugMessage, {message:_arg1});
  628. dispatchEvent(_local2);
  629. };
  630. }
  631. public function loadBuddyList():void{
  632. send({t:"sys"}, "loadB", -1, "");
  633. }
  634. private function handleSocketConnection(_arg1:Event):void{
  635. var _local2:Object;
  636. var _local3:String;
  637. _local2 = {t:"sys"};
  638. _local3 = (((("<ver v='" + this.majVersion.toString()) + this.minVersion.toString()) + this.subVersion.toString()) + "' />");
  639. send(_local2, "verChk", 0, _local3);
  640. }
  641. public function leaveRoom(_arg1:int):void{
  642. var _local2:Object;
  643. var _local3:String;
  644. _local2 = {t:"sys"};
  645. _local3 = (("<rm id='" + _arg1) + "' />");
  646. send(_local2, "leaveRoom", _arg1, _local3);
  647. }
  648. private function addMessageHandler(_arg1:String, _arg2:IMessageHandler):void{
  649. if (this.messageHandlers[_arg1] == null){
  650. this.messageHandlers[_arg1] = _arg2;
  651. } else {
  652. debugMessage((("Warning, message handler called: " + _arg1) + " already exist!"));
  653. };
  654. }
  655. public function set httpPollSpeed(_arg1:int):void{
  656. if ((((_arg1 >= 0)) && ((_arg1 <= 10000)))){
  657. this._httpPollSpeed = _arg1;
  658. };
  659. }
  660. public function getRoom(_arg1:int):Room{
  661. return (roomList[_arg1]);
  662. }
  663. private function handleSocketData(_arg1:Event):void{
  664. var _local2:int;
  665. var _local3:int;
  666. _local2 = socketConnection.bytesAvailable;
  667. while (--_local2 >= 0) {
  668. _local3 = socketConnection.readByte();
  669. if (_local3 != 0){
  670. byteBuffer.writeByte(_local3);
  671. } else {
  672. handleMessage(byteBuffer.toString());
  673. byteBuffer = new ByteArray();
  674. };
  675. };
  676. }
  677. public function setBuddyVariables(_arg1:Array):void{
  678. var _local2:Object;
  679. var _local3:String;
  680. var _local4:String;
  681. var _local5:String;
  682. _local2 = {t:"sys"};
  683. _local3 = "<vars>";
  684. for (_local4 in _arg1) {
  685. _local5 = _arg1[_local4];
  686. if (myBuddyVars[_local4] != _local5){
  687. myBuddyVars[_local4] = _local5;
  688. _local3 = (_local3 + (((("<var n='" + _local4) + "'><![CDATA[") + _local5) + "]]></var>"));
  689. };
  690. };
  691. _local3 = (_local3 + "</vars>");
  692. this.send(_local2, "setBvars", -1, _local3);
  693. }
  694. private function tryBlueBoxConnection(_arg1:ErrorEvent):void{
  695. var _local2:String;
  696. var _local3:int;
  697. if (!connected){
  698. if (smartConnect){
  699. debugMessage("Socket connection failed. Trying BlueBox");
  700. isHttpMode = true;
  701. _local2 = ((blueBoxIpAddress)!=null) ? blueBoxIpAddress : ipAddress;
  702. _local3 = ((blueBoxPort)!=0) ? blueBoxPort : httpPort;
  703. httpConnection.connect(_local2, _local3);
  704. } else {
  705. dispatchConnectionError();
  706. };
  707. } else {
  708. dispatchEvent(_arg1);
  709. debugMessage(("[WARN] Connection error: " + _arg1.text));
  710. };
  711. }
  712. public function getAllRooms():Array{
  713. return (roomList);
  714. }
  715. private function strReceived(_arg1:String):void{
  716. var _local2:Array;
  717. var _local3:String;
  718. var _local4:IMessageHandler;
  719. _local2 = _arg1.substr(1, (_arg1.length - 2)).split(MSG_STR);
  720. _local3 = _local2[0];
  721. _local4 = messageHandlers[_local3];
  722. if (_local4 != null){
  723. _local4.handleMessage(_local2.splice(1, (_local2.length - 1)), XTMSG_TYPE_STR);
  724. };
  725. }
  726. private function handleSecurityError(_arg1:SecurityErrorEvent):void{
  727. tryBlueBoxConnection(_arg1);
  728. }
  729. private function handleIOError(_arg1:IOErrorEvent):void{
  730. tryBlueBoxConnection(_arg1);
  731. }
  732. private function dispatchConnectionError():void{
  733. var _local1:Object;
  734. var _local2:SFSEvent;
  735. _local1 = {};
  736. _local1.success = false;
  737. _local1.error = "I/O Error";
  738. _local2 = new SFSEvent(SFSEvent.onConnection, _local1);
  739. dispatchEvent(_local2);
  740. }
  741. public function login(_arg1:String, _arg2:String, _arg3:String):void{
  742. var _local4:Object;
  743. var _local5:String;
  744. _local4 = {t:"sys"};
  745. _local5 = (((((("<login z='" + _arg1) + "'><nick><![CDATA[") + _arg2) + "]]></nick><pword><![CDATA[") + _arg3) + "]]></pword></login>");
  746. send(_local4, "login", 0, _local5);
  747. }
  748. public function __logout():void{
  749. initialize(true);
  750. }
  751. private function setupMessageHandlers():void{
  752. sysHandler = new SysHandler(this);
  753. extHandler = new ExtHandler(this);
  754. addMessageHandler("sys", sysHandler);
  755. addMessageHandler("xt", extHandler);
  756. }
  757. public function autoJoin():void{
  758. var _local1:Object;
  759. _local1 = {t:"sys"};
  760. this.send(_local1, "autoJoin", ((this.activeRoomId) ? this.activeRoomId : -1), "");
  761. }
  762. private function onConfigLoadSuccess(_arg1:Event):void{
  763. var _local2:URLLoader;
  764. var _local3:XML;
  765. var _local4:SFSEvent;
  766. _local2 = (_arg1.target as URLLoader);
  767. _local3 = new XML(_local2.data);
  768. this.ipAddress = (this.blueBoxIpAddress = _local3.ip);
  769. this.port = int(_local3.port);
  770. this.defaultZone = _local3.zone;
  771. if (_local3.blueBoxIpAddress != undefined){
  772. this.blueBoxIpAddress = _local3.blueBoxIpAddress;
  773. };
  774. if (_local3.blueBoxPort != undefined){
  775. this.blueBoxPort = _local3.blueBoxPort;
  776. };
  777. if (_local3.debug != undefined){
  778. this.debug = (((_local3.debug.toLowerCase() == "true")) ? true : false);
  779. };
  780. if (_local3.smartConnect != undefined){
  781. this.smartConnect = (((_local3.smartConnect.toLowerCase() == "true")) ? true : false);
  782. };
  783. if (_local3.httpPort != undefined){
  784. this.httpPort = int(_local3.httpPort);
  785. };
  786. if (_local3.httpPollSpeed != undefined){
  787. this.httpPollSpeed = int(_local3.httpPollSpeed);
  788. };
  789. if (_local3.rawProtocolSeparator != undefined){
  790. rawProtocolSeparator = _local3.rawProtocolSeparator;
  791. };
  792. if (autoConnectOnConfigSuccess){
  793. this.connect(ipAddress, port);
  794. } else {
  795. _local4 = new SFSEvent(SFSEvent.onConfigLoadSuccess, {});
  796. dispatchEvent(_local4);
  797. };
  798. }
  799. public function logout():void{
  800. var _local1:Object;
  801. _local1 = {t:"sys"};
  802. send(_local1, "logout", -1, "");
  803. }
  804. public function getRoomList():void{
  805. var _local1:Object;
  806. _local1 = {t:"sys"};
  807. send(_local1, "getRmList", activeRoomId, "");
  808. }
  809. public function getConnectionMode():String{
  810. var _local1:String;
  811. _local1 = CONNECTION_MODE_DISCONNECTED;
  812. if (this.isConnected){
  813. if (this.isHttpMode){
  814. _local1 = CONNECTION_MODE_HTTP;
  815. } else {
  816. _local1 = CONNECTION_MODE_SOCKET;
  817. };
  818. };
  819. return (_local1);
  820. }
  821. public function disconnect():void{
  822. connected = false;
  823. if (!isHttpMode){
  824. socketConnection.close();
  825. } else {
  826. httpConnection.close();
  827. };
  828. sysHandler.dispatchDisconnection();
  829. }
  830. public function sendJson(_arg1:String):void{
  831. debugMessage((("[Sending - JSON]: " + _arg1) + "\n"));
  832. if (isHttpMode){
  833. httpConnection.send(_arg1);
  834. } else {
  835. writeToSocket(_arg1);
  836. };
  837. }
  838. private function send(_arg1:Object, _arg2:String, _arg3:Number, _arg4:String):void{
  839. var _local5:String;
  840. _local5 = makeXmlHeader(_arg1);
  841. _local5 = (_local5 + ((((((("<body action='" + _arg2) + "' r='") + _arg3) + "'>") + _arg4) + "</body>") + closeHeader()));
  842. debugMessage((("[Sending]: " + _local5) + "\n"));
  843. if (isHttpMode){
  844. httpConnection.send(_local5);
  845. } else {
  846. writeToSocket(_local5);
  847. };
  848. }
  849. public function setRoomVariables(_arg1:Array, _arg2:int=-1, _arg3:Boolean=true):void{
  850. var _local4:Object;
  851. var _local5:String;
  852. var _local6:Object;
  853. if (_arg2 == -1){
  854. _arg2 = activeRoomId;
  855. };
  856. _local4 = {t:"sys"};
  857. if (_arg3){
  858. _local5 = "<vars>";
  859. } else {
  860. _local5 = "<vars so='0'>";
  861. };
  862. for each (_local6 in _arg1) {
  863. _local5 = (_local5 + getXmlRoomVariable(_local6));
  864. };
  865. _local5 = (_local5 + "</vars>");
  866. send(_local4, "setRvars", _arg2, _local5);
  867. }
  868. public function addBuddy(_arg1:String):void{
  869. var _local2:String;
  870. if (((!((_arg1 == myUserName))) && (!(checkBuddyDuplicates(_arg1))))){
  871. _local2 = (("<n>" + _arg1) + "</n>");
  872. send({t:"sys"}, "addB", -1, _local2);
  873. };
  874. }
  875. public function clearRoomList():void{
  876. this.roomList = [];
  877. }
  878. public function getVersion():String{
  879. return (((((this.majVersion + ".") + this.minVersion) + ".") + this.subVersion));
  880. }
  881. public function setUserVariables(_arg1:Object, _arg2:int=-1):void{
  882. var _local3:Object;
  883. var _local4:Room;
  884. var _local5:User;
  885. var _local6:String;
  886. if (_arg2 == -1){
  887. _arg2 = activeRoomId;
  888. };
  889. _local3 = {t:"sys"};
  890. _local4 = getActiveRoom();
  891. if (_local4 != null){
  892. _local5 = _local4.getUser(myUserId);
  893. if (_local5 != null){
  894. _local5.setVariables(_arg1);
  895. _local6 = getXmlUserVariable(_arg1);
  896. send(_local3, "setUvars", _arg2, _local6);
  897. };
  898. };
  899. }
  900. public function sendPrivateMessage(_arg1:String, _arg2:int, _arg3:int=-1):void{
  901. var _local4:Object;
  902. var _local5:String;
  903. if (_arg3 == -1){
  904. _arg3 = activeRoomId;
  905. };
  906. _local4 = {t:"sys"};
  907. _local5 = (((("<txt rcp='" + _arg2) + "'><![CDATA[") + Entities.encodeEntities(_arg1)) + "]]></txt>");
  908. send(_local4, "prvMsg", _arg3, _local5);
  909. }
  910. public function getBuddyByName(_arg1:String):Object{
  911. var _local2:Object;
  912. for each (_local2 in buddyList) {
  913. if (_local2.name == _arg1){
  914. return (_local2);
  915. };
  916. };
  917. return (null);
  918. }
  919. private function closeHeader():String{
  920. return ("</msg>");
  921. }
  922. public function sendPublicMessage(_arg1:String, _arg2:int=-1):void{
  923. var _local3:Object;
  924. var _local4:String;
  925. if (_arg2 == -1){
  926. _arg2 = activeRoomId;
  927. };
  928. _local3 = {t:"sys"};
  929. _local4 = (("<txt><![CDATA[" + Entities.encodeEntities(_arg1)) + "]]></txt>");
  930. send(_local3, "pubMsg", _arg2, _local4);
  931. }
  932. public function clearBuddyList():void{
  933. var _local1:Object;
  934. var _local2:SFSEvent;
  935. buddyList = [];
  936. send({t:"sys"}, "clearB", -1, "");
  937. _local1 = {};
  938. _local1.list = buddyList;
  939. _local2 = new SFSEvent(SFSEvent.onBuddyList, _local1);
  940. dispatchEvent(_local2);
  941. }
  942. public function sendString(_arg1:String):void{
  943. debugMessage((("[Sending - STR]: " + _arg1) + "\n"));
  944. if (isHttpMode){
  945. httpConnection.send(_arg1);
  946. } else {
  947. writeToSocket(_arg1);
  948. };
  949. }
  950. public function removeBuddy(_arg1:String):void{
  951. var _local2:Boolean;
  952. var _local3:Object;
  953. var _local4:String;
  954. var _local5:Object;
  955. var _local6:String;
  956. var _local7:Object;
  957. var _local8:SFSEvent;
  958. _local2 = false;
  959. for (_local4 in buddyList) {
  960. _local3 = buddyList[_local4];
  961. if (_local3.name == _arg1){
  962. delete buddyList[_local4];
  963. _local2 = true;
  964. break;
  965. };
  966. };
  967. if (_local2){
  968. _local5 = {t:"sys"};
  969. _local6 = (("<n>" + _arg1) + "</n>");
  970. send(_local5, "remB", -1, _local6);
  971. _local7 = {};
  972. _local7.list = buddyList;
  973. _local8 = new SFSEvent(SFSEvent.onBuddyList, _local7);
  974. dispatchEvent(_local8);
  975. };
  976. }
  977. public function setBuddyBlockStatus(_arg1:String, _arg2:Boolean):void{
  978. var _local3:Object;
  979. var _local4:String;
  980. var _local5:Object;
  981. var _local6:SFSEvent;
  982. _local3 = getBuddyByName(_arg1);
  983. if (_local3 != null){
  984. if (_local3.blocked != _arg2){
  985. _local3.isBlocked = _arg2;
  986. _local4 = (((("<n x='" + ((_arg2) ? "1" : "0")) + "'>") + _arg1) + "</n>");
  987. send({t:"sys"}, "setB", -1, _local4);
  988. _local5 = {};
  989. _local5.buddy = _local3;
  990. _local6 = new SFSEvent(SFSEvent.onBuddyListUpdate, _local5);
  991. dispatchEvent(_local6);
  992. };
  993. };
  994. }
  995. private function handleMessage(_arg1:String):void{
  996. var _local2:String;
  997. if (_arg1 != "ok"){
  998. debugMessage((((("[ RECEIVED ]: " + _arg1) + ", (len: ") + _arg1.length) + ")"));
  999. };
  1000. _local2 = _arg1.charAt(0);
  1001. if (_local2 == MSG_XML){
  1002. xmlReceived(_arg1);
  1003. } else {
  1004. if (_local2 == MSG_STR){
  1005. strReceived(_arg1);
  1006. } else {
  1007. if (_local2 == MSG_JSON){
  1008. jsonReceived(_arg1);
  1009. };
  1010. };
  1011. };
  1012. }
  1013. public function getUploadPath():String{
  1014. return ((((("http://" + this.ipAddress) + ":") + this.httpPort) + "/default/uploads/"));
  1015. }
  1016. private function handleHttpData(_arg1:HttpEvent):void{
  1017. var _local2:String;
  1018. var _local3:Array;
  1019. var _local4:String;
  1020. var _local5:int;
  1021. _local2 = (_arg1.params.data as String);
  1022. _local3 = _local2.split("\n");
  1023. if (_local3[0] != ""){
  1024. _local5 = 0;
  1025. while (_local5 < (_local3.length - 1)) {
  1026. _local4 = _local3[_local5];
  1027. if (_local4.length > 0){
  1028. handleMessage(_local4);
  1029. };
  1030. _local5++;
  1031. };
  1032. if (this._httpPollSpeed > 0){
  1033. setTimeout(this.handleDelayedPoll, this._httpPollSpeed);
  1034. } else {
  1035. handleDelayedPoll();
  1036. };
  1037. };
  1038. }
  1039. public function loadConfig(_arg1:String="config.xml", _arg2:Boolean=true):void{
  1040. var _local3:URLLoader;
  1041. this.autoConnectOnConfigSuccess = _arg2;
  1042. _local3 = new URLLoader();
  1043. _local3.addEventListener(Event.COMPLETE, onConfigLoadSuccess);
  1044. _local3.addEventListener(IOErrorEvent.IO_ERROR, onConfigLoadFailure);
  1045. _local3.load(new URLRequest(_arg1));
  1046. }
  1047. public function set rawProtocolSeparator(_arg1:String):void{
  1048. if (((!((_arg1 == "<"))) && (!((_arg1 == "{"))))){
  1049. MSG_STR = _arg1;
  1050. };
  1051. }
  1052. private function writeToSocket(_arg1:String):void{
  1053. var _local2:ByteArray;
  1054. _local2 = new ByteArray();
  1055. _local2.writeMultiByte(_arg1, "utf-8");
  1056. _local2.writeByte(0);
  1057. socketConnection.writeBytes(_local2);
  1058. socketConnection.flush();
  1059. }
  1060. private function initialize(_arg1:Boolean=false):void{
  1061. this.changingRoom = false;
  1062. this.amIModerator = false;
  1063. this.playerId = -1;
  1064. this.activeRoomId = -1;
  1065. this.myUserId = -1;
  1066. this.myUserName = "";
  1067. this.roomList = [];
  1068. this.buddyList = [];
  1069. this.myBuddyVars = [];
  1070. if (!_arg1){
  1071. this.connected = false;
  1072. this.isHttpMode = false;
  1073. };
  1074. }
  1075. public function sendXtMessage(_arg1:String, _arg2:String, _arg3, _arg4:String="xml", _arg5:int=-1):void{
  1076. var _local6:Object;
  1077. var _local7:Object;
  1078. var _local8:String;
  1079. var _local9:String;
  1080. var _local10:Number;
  1081. var _local11:Object;
  1082. var _local12:Object;
  1083. var _local13:String;
  1084. if (_arg5 == -1){
  1085. _arg5 = activeRoomId;
  1086. };
  1087. if (_arg4 == XTMSG_TYPE_XML){
  1088. _local6 = {t:"xt"};
  1089. _local7 = {
  1090. name:_arg1,
  1091. cmd:_arg2,
  1092. param:_arg3
  1093. };
  1094. _local8 = (("<![CDATA[" + ObjectSerializer.getInstance().serialize(_local7)) + "]]>");
  1095. send(_local6, "xtReq", _arg5, _local8);
  1096. } else {
  1097. if (_arg4 == XTMSG_TYPE_STR){
  1098. _local9 = ((((((((MSG_STR + "xt") + MSG_STR) + _arg1) + MSG_STR) + _arg2) + MSG_STR) + _arg5) + MSG_STR);
  1099. _local10 = 0;
  1100. while (_local10 < _arg3.length) {
  1101. _local9 = (_local9 + (_arg3[_local10].toString() + MSG_STR));
  1102. _local10++;
  1103. };
  1104. sendString(_local9);
  1105. } else {
  1106. if (_arg4 == XTMSG_TYPE_JSON){
  1107. _local11 = {};
  1108. _local11.x = _arg1;
  1109. _local11.c = _arg2;
  1110. _local11.r = _arg5;
  1111. _local11.p = _arg3;
  1112. _local12 = {};
  1113. _local12.t = "xt";
  1114. _local12.b = _local11;
  1115. _local13 = JSON.encode(_local12);
  1116. sendJson(_local13);
  1117. };
  1118. };
  1119. };
  1120. }
  1121. public function sendObjectToGroup(_arg1:Object, _arg2:Array, _arg3:int=-1):void{
  1122. var _local4:String;
  1123. var _local5:String;
  1124. var _local6:Object;
  1125. var _local7:String;
  1126. if (_arg3 == -1){
  1127. _arg3 = activeRoomId;
  1128. };
  1129. _local4 = "";
  1130. for (_local5 in _arg2) {
  1131. if (!isNaN(_arg2[_local5])){
  1132. _local4 = (_local4 + (_arg2[_local5] + ","));
  1133. };
  1134. };
  1135. _local4 = _local4.substr(0, (_local4.length - 1));
  1136. _arg1._$$_ = _local4;
  1137. _local6 = {t:"sys"};
  1138. _local7 = (("<![CDATA[" + ObjectSerializer.getInstance().serialize(_arg1)) + "]]>");
  1139. send(_local6, "asObjG", _arg3, _local7);
  1140. }
  1141. public function get rawProtocolSeparator():String{
  1142. return (MSG_STR);
  1143. }
  1144. public function getRandomKey():void{
  1145. send({t:"sys"}, "rndK", -1, "");
  1146. }
  1147. public function sendObject(_arg1:Object, _arg2:int=-1):void{
  1148. var _local3:String;
  1149. var _local4:Object;
  1150. if (_arg2 == -1){
  1151. _arg2 = activeRoomId;
  1152. };
  1153. _local3 = (("<![CDATA[" + ObjectSerializer.getInstance().serialize(_arg1)) + "]]>");
  1154. _local4 = {t:"sys"};
  1155. send(_local4, "asObj", _arg2, _local3);
  1156. }
  1157. public function connect(_arg1:String, _arg2:int=9339):void{
  1158. if (!connected){
  1159. initialize();
  1160. this.ipAddress = _arg1;
  1161. this.port = _arg2;
  1162. socketConnection.connect(_arg1, _arg2);
  1163. } else {
  1164. debugMessage("*** ALREADY CONNECTED ***");
  1165. };
  1166. }
  1167. public function sendBuddyPermissionResponse(_arg1:Boolean, _arg2:String):void{
  1168. var _local3:Object;
  1169. var _local4:String;
  1170. _local3 = {t:"sys"};
  1171. _local4 = (((("<n res='" + ((_arg1) ? "g" : "r")) + "'>") + _arg2) + "</n>");
  1172. send(_local3, "bPrm", -1, _local4);
  1173. }
  1174. public function sendModeratorMessage(_arg1:String, _arg2:String, _arg3:int=-1):void{
  1175. var _local4:Object;
  1176. var _local5:String;
  1177. _local4 = {t:"sys"};
  1178. _local5 = (((((("<txt t='" + _arg2) + "' id='") + _arg3) + "'><![CDATA[") + Entities.encodeEntities(_arg1)) + "]]></txt>");
  1179. send(_local4, "modMsg", activeRoomId, _local5);
  1180. }
  1181. public function getBenchStartTime():int{
  1182. return (this.benchStartTime);
  1183. }
  1184. public function createRoom(_arg1:Object, _arg2:int=-1):void{
  1185. var _local3:Object;
  1186. var _local4:String;
  1187. var _local5:String;
  1188. var _local6:String;
  1189. var _local7:String;
  1190. var _local8:String;
  1191. var _local9:String;
  1192. if (_arg2 == -1){
  1193. _arg2 = activeRoomId;
  1194. };
  1195. _local3 = {t:"sys"};
  1196. _local4 = ((_arg1.isGame) ? "1" : "0");
  1197. _local5 = "1";
  1198. _local6 = (((_arg1.maxUsers == null)) ? "0" : String(_arg1.maxUsers));
  1199. _local7 = (((_arg1.maxSpectators == null)) ? "0" : String(_arg1.maxSpectators));
  1200. if (((_arg1.isGame) && (!((_arg1.exitCurrent == null))))){
  1201. _local5 = ((_arg1.exitCurrent) ? "1" : "0");
  1202. };
  1203. _local8 = (((((("<room tmp='1' gam='" + _local4) + "' spec='") + _local7) + "' exit='") + _local5) + "'>");
  1204. _local8 = (_local8 + (("<name><![CDATA[" + (((_arg1.name == null)) ? "" : _arg1.name)) + "]]></name>"));
  1205. _local8 = (_local8 + (("<pwd><![CDATA[" + (((_arg1.password == null)) ? "" : _arg1.password)) + "]]></pwd>"));
  1206. _local8 = (_local8 + (("<max>" + _local6) + "</max>"));
  1207. if (_arg1.uCount != null){
  1208. _local8 = (_local8 + (("<uCnt>" + ((_arg1.uCount) ? "1" : "0")) + "</uCnt>"));
  1209. };
  1210. if (_arg1.extension != null){
  1211. _local8 = (_local8 + ("<xt n='" + _arg1.extension.name));
  1212. _local8 = (_local8 + (("' s='" + _arg1.extension.script) + "' />"));
  1213. };
  1214. if (_arg1.vars == null){
  1215. _local8 = (_local8 + "<vars></vars>");
  1216. } else {
  1217. _local8 = (_local8 + "<vars>");
  1218. for (_local9 in _arg1.vars) {
  1219. _local8 = (_local8 + getXmlRoomVariable(_arg1.vars[_local9]));
  1220. };
  1221. _local8 = (_local8 + "</vars>");
  1222. };
  1223. _local8 = (_local8 + "</room>");
  1224. send(_local3, "createRoom", _arg2, _local8);
  1225. }
  1226. private function handleDelayedPoll():void{
  1227. httpConnection.send(HTTP_POLL_REQUEST);
  1228. }
  1229. private function handleHttpConnect(_arg1:HttpEvent):void{
  1230. this.handleSocketConnection(null);
  1231. connected = true;
  1232. httpConnection.send(HTTP_POLL_REQUEST);
  1233. }
  1234. public function set isConnected(_arg1:Boolean):void{
  1235. this.connected = _arg1;
  1236. }
  1237. public function get isConnected():Boolean{
  1238. return (this.connected);
  1239. }
  1240.  
  1241. }
  1242. }//package it.gotoandplay.smartfoxserver
  1243. package it.gotoandplay.smartfoxserver.util {
  1244.  
  1245. public class ObjectSerializer {
  1246.  
  1247. private static var instance:ObjectSerializer;
  1248.  
  1249. private var eof:String;
  1250. private var debug:Boolean;
  1251. private var tabs:String;
  1252.  
  1253. public function ObjectSerializer(_arg1:Boolean=false){
  1254. this.tabs = "\t\t\t\t\t\t\t\t\t\t\t\t\t";
  1255. setDebug(_arg1);
  1256. }
  1257. public static function getInstance(_arg1:Boolean=false):ObjectSerializer{
  1258. if (instance == null){
  1259. instance = new ObjectSerializer(_arg1);
  1260. };
  1261. return (instance);
  1262. }
  1263.  
  1264. public function serialize(_arg1:Object):String{
  1265. var _local2:Object;
  1266. _local2 = {};
  1267. obj2xml(_arg1, _local2);
  1268. return (_local2.xmlStr);
  1269. }
  1270. private function obj2xml(_arg1:Object, _arg2:Object, _arg3:int=0, _arg4:String=""):void{
  1271. var _local5:String;
  1272. var _local6:String;
  1273. var _local7:String;
  1274. var _local8:*;
  1275. if (_arg3 == 0){
  1276. _arg2.xmlStr = ("<dataObj>" + this.eof);
  1277. } else {
  1278. if (this.debug){
  1279. _arg2.xmlStr = (_arg2.xmlStr + this.tabs.substr(0, _arg3));
  1280. };
  1281. _local6 = (((_arg1 is Array)) ? "a" : "o");
  1282. _arg2.xmlStr = (_arg2.xmlStr + ((((("<obj t='" + _local6) + "' o='") + _arg4) + "'>") + this.eof));
  1283. };
  1284. for (_local5 in _arg1) {
  1285. _local7 = typeof(_arg1[_local5]);
  1286. _local8 = _arg1[_local5];
  1287. if ((((((((_local7 == "boolean")) || ((_local7 == "number")))) || ((_local7 == "string")))) || ((_local7 == "null")))){
  1288. if (_local7 == "boolean"){
  1289. _local8 = Number(_local8);
  1290. } else {
  1291. if (_local7 == "null"){
  1292. _local7 = "x";
  1293. _local8 = "";
  1294. } else {
  1295. if (_local7 == "string"){
  1296. _local8 = Entities.encodeEntities(_local8);
  1297. };
  1298. };
  1299. };
  1300. if (this.debug){
  1301. _arg2.xmlStr = (_arg2.xmlStr + this.tabs.substr(0, (_arg3 + 1)));
  1302. };
  1303. _arg2.xmlStr = (_arg2.xmlStr + ((((((("<var n='" + _local5) + "' t='") + _local7.substr(0, 1)) + "'>") + _local8) + "</var>") + this.eof));
  1304. } else {
  1305. if (_local7 == "object"){
  1306. obj2xml(_local8, _arg2, (_arg3 + 1), _local5);
  1307. if (this.debug){
  1308. _arg2.xmlStr = (_arg2.xmlStr + this.tabs.substr(0, (_arg3 + 1)));
  1309. };
  1310. _arg2.xmlStr = (_arg2.xmlStr + ("</obj>" + this.eof));
  1311. };
  1312. };
  1313. };
  1314. if (_arg3 == 0){
  1315. _arg2.xmlStr = (_arg2.xmlStr + ("</dataObj>" + this.eof));
  1316. };
  1317. }
  1318. private function setDebug(_arg1:Boolean):void{
  1319. this.debug = _arg1;
  1320. if (this.debug){
  1321. this.eof = "\n";
  1322. } else {
  1323. this.eof = "";
  1324. };
  1325. }
  1326. private function xml2obj(_arg1:XML, _arg2:Object):void{
  1327. var _local3:int;
  1328. var _local4:XMLList;
  1329. var _local5:String;
  1330. var _local6:XML;
  1331. var _local7:String;
  1332. var _local8:String;
  1333. var _local9:String;
  1334. var _local10:String;
  1335. var _local11:String;
  1336. _local3 = 0;
  1337. _local4 = _arg1.children();
  1338. for each (_local6 in _local4) {
  1339. _local5 = _local6.name().toString();
  1340. if (_local5 == "obj"){
  1341. _local7 = _local6.@o;
  1342. _local8 = _local6.@t;
  1343. if (_local8 == "a"){
  1344. _arg2[_local7] = [];
  1345. } else {
  1346. if (_local8 == "o"){
  1347. _arg2[_local7] = {};
  1348. };
  1349. };
  1350. xml2obj(_local6, _arg2[_local7]);
  1351. } else {
  1352. if (_local5 == "var"){
  1353. _local9 = _local6.@n;
  1354. _local10 = _local6.@t;
  1355. _local11 = _local6.toString();
  1356. if (_local10 == "b"){
  1357. _arg2[_local9] = (((_local11 == "0")) ? false : true);
  1358. } else {
  1359. if (_local10 == "n"){
  1360. _arg2[_local9] = Number(_local11);
  1361. } else {
  1362. if (_local10 == "s"){
  1363. _arg2[_local9] = _local11;
  1364. } else {
  1365. if (_local10 == "x"){
  1366. _arg2[_local9] = null;
  1367. };
  1368. };
  1369. };
  1370. };
  1371. };
  1372. };
  1373. };
  1374. }
  1375. private function encodeEntities(_arg1:String):String{
  1376. return (_arg1);
  1377. }
  1378. public function deserialize(_arg1:String):Object{
  1379. var _local2:XML;
  1380. var _local3:Object;
  1381. _local2 = new XML(_arg1);
  1382. _local3 = {};
  1383. xml2obj(_local2, _local3);
  1384. return (_local3);
  1385. }
  1386.  
  1387. }
  1388. }//package it.gotoandplay.smartfoxserver.util
  1389. package it.gotoandplay.smartfoxserver.util {
  1390.  
  1391. public class Entities {
  1392.  
  1393. private static var hexTable:Array = new Array();
  1394. private static var ascTab:Array = [];
  1395. private static var ascTabRev:Array = [];
  1396.  
  1397. public static function decodeEntities(_arg1:String):String{
  1398. var _local2:String;
  1399. var _local3:String;
  1400. var _local4:String;
  1401. var _local5:String;
  1402. var _local6:String;
  1403. var _local7:int;
  1404. _local7 = 0;
  1405. _local2 = "";
  1406. while (_local7 < _arg1.length) {
  1407. _local3 = _arg1.charAt(_local7);
  1408. if (_local3 == "&"){
  1409. _local4 = _local3;
  1410. do {
  1411. _local7++;
  1412. _local5 = _arg1.charAt(_local7);
  1413. _local4 = (_local4 + _local5);
  1414. } while (((!((_local5 == ";"))) && ((_local7 < _arg1.length))));
  1415. _local6 = ascTabRev[_local4];
  1416. if (_local6 != null){
  1417. _local2 = (_local2 + _local6);
  1418. } else {
  1419. _local2 = (_local2 + String.fromCharCode(getCharCode(_local4)));
  1420. };
  1421. } else {
  1422. _local2 = (_local2 + _local3);
  1423. };
  1424. _local7++;
  1425. };
  1426. return (_local2);
  1427. }
  1428. public static function encodeEntities(_arg1:String):String{
  1429. var _local2:String;
  1430. var _local3:int;
  1431. var _local4:String;
  1432. var _local5:int;
  1433. _local2 = "";
  1434. _local3 = 0;
  1435. while (_local3 < _arg1.length) {
  1436. _local4 = _arg1.charAt(_local3);
  1437. _local5 = _arg1.charCodeAt(_local3);
  1438. if ((((((_local5 == 9)) || ((_local5 == 10)))) || ((_local5 == 13)))){
  1439. _local2 = (_local2 + _local4);
  1440. } else {
  1441. if ((((_local5 >= 32)) && ((_local5 <= 126)))){
  1442. if (ascTab[_local4] != null){
  1443. _local2 = (_local2 + ascTab[_local4]);
  1444. } else {
  1445. _local2 = (_local2 + _local4);
  1446. };
  1447. } else {
  1448. _local2 = (_local2 + _local4);
  1449. };
  1450. };
  1451. _local3++;
  1452. };
  1453. return (_local2);
  1454. }
  1455. public static function getCharCode(_arg1:String):Number{
  1456. var _local2:String;
  1457. _local2 = _arg1.substr(3, _arg1.length);
  1458. _local2 = _local2.substr(0, (_local2.length - 1));
  1459. return (Number(("0x" + _local2)));
  1460. }
  1461.  
  1462. ascTab[">"] = "&gt;";
  1463. ascTab["<"] = "&lt;";
  1464. ascTab["&"] = "&amp;";
  1465. ascTab["'"] = "&apos;";
  1466. ascTab["\""] = "&quot;";
  1467. ascTabRev["&gt;"] = ">";
  1468. ascTabRev["&lt;"] = "<";
  1469. ascTabRev["&amp;"] = "&";
  1470. ascTabRev["&apos;"] = "'";
  1471. ascTabRev["&quot;"] = "\"";
  1472. hexTable["0"] = 0;
  1473. hexTable["1"] = 1;
  1474. hexTable["2"] = 2;
  1475. hexTable["3"] = 3;
  1476. hexTable["4"] = 4;
  1477. hexTable["5"] = 5;
  1478. hexTable["6"] = 6;
  1479. hexTable["7"] = 7;
  1480. hexTable["8"] = 8;
  1481. hexTable["9"] = 9;
  1482. hexTable["A"] = 10;
  1483. hexTable["B"] = 11;
  1484. hexTable["C"] = 12;
  1485. hexTable["D"] = 13;
  1486. hexTable["E"] = 14;
  1487. hexTable["F"] = 15;
  1488. }
  1489. }//package it.gotoandplay.smartfoxserver.util
  1490. package it.gotoandplay.smartfoxserver.handlers {
  1491. import it.gotoandplay.smartfoxserver.data.*;
  1492. import it.gotoandplay.smartfoxserver.util.*;
  1493. import it.gotoandplay.smartfoxserver.*;
  1494. import flash.utils.*;
  1495.  
  1496. public class SysHandler implements IMessageHandler {
  1497.  
  1498. private var sfs:SmartFoxClient;
  1499. private var handlersTable:Array;
  1500.  
  1501. public function SysHandler(_arg1:SmartFoxClient){
  1502. this.sfs = _arg1;
  1503. handlersTable = [];
  1504. handlersTable["apiOK"] = this.handleApiOK;
  1505. handlersTable["apiKO"] = this.handleApiKO;
  1506. handlersTable["logOK"] = this.handleLoginOk;
  1507. handlersTable["logKO"] = this.handleLoginKo;
  1508. handlersTable["logout"] = this.handleLogout;
  1509. handlersTable["rmList"] = this.handleRoomList;
  1510. handlersTable["uCount"] = this.handleUserCountChange;
  1511. handlersTable["joinOK"] = this.handleJoinOk;
  1512. handlersTable["joinKO"] = this.handleJoinKo;
  1513. handlersTable["uER"] = this.handleUserEnterRoom;
  1514. handlersTable["userGone"] = this.handleUserLeaveRoom;
  1515. handlersTable["pubMsg"] = this.handlePublicMessage;
  1516. handlersTable["prvMsg"] = this.handlePrivateMessage;
  1517. handlersTable["dmnMsg"] = this.handleAdminMessage;
  1518. handlersTable["modMsg"] = this.handleModMessage;
  1519. handlersTable["dataObj"] = this.handleASObject;
  1520. handlersTable["rVarsUpdate"] = this.handleRoomVarsUpdate;
  1521. handlersTable["roomAdd"] = this.handleRoomAdded;
  1522. handlersTable["roomDel"] = this.handleRoomDeleted;
  1523. handlersTable["rndK"] = this.handleRandomKey;
  1524. handlersTable["roundTripRes"] = this.handleRoundTripBench;
  1525. handlersTable["uVarsUpdate"] = this.handleUserVarsUpdate;
  1526. handlersTable["createRmKO"] = this.handleCreateRoomError;
  1527. handlersTable["bList"] = this.handleBuddyList;
  1528. handlersTable["bUpd"] = this.handleBuddyListUpdate;
  1529. handlersTable["bAdd"] = this.handleBuddyAdded;
  1530. handlersTable["roomB"] = this.handleBuddyRoom;
  1531. handlersTable["leaveRoom"] = this.handleLeaveRoom;
  1532. handlersTable["swSpec"] = this.handleSpectatorSwitched;
  1533. handlersTable["bPrm"] = this.handleAddBuddyPermission;
  1534. handlersTable["remB"] = this.handleRemoveBuddy;
  1535. }
  1536. private function handleRoomDeleted(_arg1:Object):void{
  1537. var _local2:int;
  1538. var _local3:Array;
  1539. var _local4:Object;
  1540. var _local5:SFSEvent;
  1541. _local2 = int(_arg1.body.rm.@id);
  1542. _local3 = sfs.getAllRooms();
  1543. _local4 = {};
  1544. _local4.room = _local3[_local2];
  1545. delete _local3[_local2];
  1546. _local5 = new SFSEvent(SFSEvent.onRoomDeleted, _local4);
  1547. sfs.dispatchEvent(_local5);
  1548. }
  1549. public function handleMessage(_arg1:Object, _arg2:String):void{
  1550. var _local3:XML;
  1551. var _local4:String;
  1552. var _local5:Function;
  1553. _local3 = (_arg1 as XML);
  1554. _local4 = _local3.body.@action;
  1555. _local5 = handlersTable[_local4];
  1556. if (_local5 != null){
  1557. _local5.apply(this, [_arg1]);
  1558. } else {
  1559. trace(("Unknown sys command: " + _local4));
  1560. };
  1561. }
  1562. public function handleUserEnterRoom(_arg1:Object):void{
  1563. var _local2:int;
  1564. var _local3:int;
  1565. var _local4:String;
  1566. var _local5:Boolean;
  1567. var _local6:Boolean;
  1568. var _local7:int;
  1569. var _local8:XMLList;
  1570. var _local9:Room;
  1571. var _local10:User;
  1572. var _local11:Object;
  1573. var _local12:SFSEvent;
  1574. _local2 = int(_arg1.body.@r);
  1575. _local3 = int(_arg1.body.u.@i);
  1576. _local4 = _arg1.body.u.n;
  1577. _local5 = (_arg1.body.u.@m == "1");
  1578. _local6 = (_arg1.body.u.@s == "1");
  1579. _local7 = ((_arg1.body.u.@p)!=null) ? int(_arg1.body.u.@p) : -1;
  1580. _local8 = _arg1.body.u.vars["var"];
  1581. _local9 = sfs.getRoom(_local2);
  1582. _local10 = new User(_local3, _local4);
  1583. _local10.setModerator(_local5);
  1584. _local10.setIsSpectator(_local6);
  1585. _local10.setPlayerId(_local7);
  1586. _local9.addUser(_local10, _local3);
  1587. if (_arg1.body.u.vars.toString().length > 0){
  1588. populateVariables(_local10.getVariables(), _arg1.body.u);
  1589. };
  1590. _local11 = {};
  1591. _local11.roomId = _local2;
  1592. _local11.user = _local10;
  1593. _local12 = new SFSEvent(SFSEvent.onUserEnterRoom, _local11);
  1594. sfs.dispatchEvent(_local12);
  1595. }
  1596. public function handleUserVarsUpdate(_arg1:Object):void{
  1597. var _local2:int;
  1598. var _local3:int;
  1599. var _local4:User;
  1600. var _local5:Array;
  1601. var _local6:Object;
  1602. var _local7:SFSEvent;
  1603. _local2 = int(_arg1.body.@r);
  1604. _local3 = int(_arg1.body.user.@id);
  1605. _local4 = sfs.getRoom(_local2).getUser(_local3);
  1606. _local5 = [];
  1607. if (_arg1.body.vars.toString().length > 0){
  1608. populateVariables(_local4.getVariables(), _arg1.body, _local5);
  1609. };
  1610. _local6 = {};
  1611. _local6.user = _local4;
  1612. _local6.changedVars = _local5;
  1613. _local7 = new SFSEvent(SFSEvent.onUserVariablesUpdate, _local6);
  1614. sfs.dispatchEvent(_local7);
  1615. }
  1616. private function handleCreateRoomError(_arg1:Object):void{
  1617. var _local2:String;
  1618. var _local3:Object;
  1619. var _local4:SFSEvent;
  1620. _local2 = _arg1.body.room.@e;
  1621. _local3 = {};
  1622. _local3.error = _local2;
  1623. _local4 = new SFSEvent(SFSEvent.onCreateRoomError, _local3);
  1624. sfs.dispatchEvent(_local4);
  1625. }
  1626. public function handlePrivateMessage(_arg1:Object):void{
  1627. var _local2:int;
  1628. var _local3:int;
  1629. var _local4:String;
  1630. var _local5:User;
  1631. var _local6:Object;
  1632. var _local7:SFSEvent;
  1633. _local2 = int(_arg1.body.@r);
  1634. _local3 = int(_arg1.body.user.@id);
  1635. _local4 = _arg1.body.txt;
  1636. _local5 = sfs.getRoom(_local2).getUser(_local3);
  1637. _local6 = {};
  1638. _local6.message = Entities.decodeEntities(_local4);
  1639. _local6.sender = _local5;
  1640. _local6.roomId = _local2;
  1641. _local6.userId = _local3;
  1642. _local7 = new SFSEvent(SFSEvent.onPrivateMessage, _local6);
  1643. sfs.dispatchEvent(_local7);
  1644. }
  1645. private function handleBuddyRoom(_arg1:Object):void{
  1646. var _local2:String;
  1647. var _local3:Array;
  1648. var _local4:int;
  1649. var _local5:Object;
  1650. var _local6:SFSEvent;
  1651. _local2 = _arg1.body.br.@r;
  1652. _local3 = _local2.split(",");
  1653. _local4 = 0;
  1654. while (_local4 < _local3.length) {
  1655. _local3[_local4] = int(_local3[_local4]);
  1656. _local4++;
  1657. };
  1658. _local5 = {};
  1659. _local5.idList = _local3;
  1660. _local6 = new SFSEvent(SFSEvent.onBuddyRoom, _local5);
  1661. sfs.dispatchEvent(_local6);
  1662. }
  1663. public function handleLogout(_arg1:Object):void{
  1664. var _local2:SFSEvent;
  1665. sfs.__logout();
  1666. _local2 = new SFSEvent(SFSEvent.onLogout, {});
  1667. sfs.dispatchEvent(_local2);
  1668. }
  1669. public function handleUserCountChange(_arg1:Object):void{
  1670. var _local2:int;
  1671. var _local3:int;
  1672. var _local4:int;
  1673. var _local5:Room;
  1674. var _local6:Object;
  1675. var _local7:SFSEvent;
  1676. _local2 = int(_arg1.body.@u);
  1677. _local3 = int(_arg1.body.@s);
  1678. _local4 = int(_arg1.body.@r);
  1679. _local5 = sfs.getAllRooms()[_local4];
  1680. if (_local5 != null){
  1681. _local5.setUserCount(_local2);
  1682. _local5.setSpectatorCount(_local3);
  1683. _local6 = {};
  1684. _local6.room = _local5;
  1685. _local7 = new SFSEvent(SFSEvent.onUserCountChange, _local6);
  1686. sfs.dispatchEvent(_local7);
  1687. };
  1688. }
  1689. private function handleRandomKey(_arg1:Object):void{
  1690. var _local2:String;
  1691. var _local3:Object;
  1692. var _local4:SFSEvent;
  1693. _local2 = _arg1.body.k.toString();
  1694. _local3 = {};
  1695. _local3.key = _local2;
  1696. _local4 = new SFSEvent(SFSEvent.onRandomKey, _local3);
  1697. sfs.dispatchEvent(_local4);
  1698. }
  1699. public function handlePublicMessage(_arg1:Object):void{
  1700. var roomId:* = 0;
  1701. var userId:* = 0;
  1702. var message:* = null;
  1703. var sender:* = null;
  1704. var params:* = null;
  1705. var evt:* = null;
  1706. var o:* = _arg1;
  1707. roomId = int(o.body.@r);
  1708. userId = int(o.body.user.@id);
  1709. message = o.body.txt;
  1710. sender = null;
  1711. try {
  1712. sender = sfs.getRoom(roomId).getUser(userId);
  1713. } catch(e:Error) {
  1714. trace("--------------------------------------Error in SysHandler::handlePublicMessage");
  1715. } finally {
  1716. params = {};
  1717. params.message = Entities.decodeEntities(message);
  1718. params.sender = sender;
  1719. params.roomId = roomId;
  1720. params.userId = userId;
  1721. evt = new SFSEvent(SFSEvent.onPublicMessage, params);
  1722. sfs.dispatchEvent(evt);
  1723. };
  1724. }
  1725. public function handleAdminMessage(_arg1:Object):void{
  1726. var _local2:int;
  1727. var _local3:int;
  1728. var _local4:String;
  1729. var _local5:Object;
  1730. var _local6:SFSEvent;
  1731. _local2 = int(_arg1.body.@r);
  1732. _local3 = int(_arg1.body.user.@id);
  1733. _local4 = _arg1.body.txt;
  1734. _local5 = {};
  1735. _local5.message = Entities.decodeEntities(_local4);
  1736. _local6 = new SFSEvent(SFSEvent.onAdminMessage, _local5);
  1737. sfs.dispatchEvent(_local6);
  1738. }
  1739. public function dispatchDisconnection():void{
  1740. var _local1:SFSEvent;
  1741. _local1 = new SFSEvent(SFSEvent.onConnectionLost, null);
  1742. sfs.dispatchEvent(_local1);
  1743. }
  1744. private function handleRemoveBuddy(_arg1:Object):void{
  1745. var _local2:String;
  1746. var _local3:Object;
  1747. var _local4:String;
  1748. var _local5:Object;
  1749. var _local6:SFSEvent;
  1750. _local2 = _arg1.body.n.toString();
  1751. _local3 = null;
  1752. for (_local4 in sfs.buddyList) {
  1753. _local3 = sfs.buddyList[_local4];
  1754. if (_local3.name == _local2){
  1755. delete sfs.buddyList[_local4];
  1756. _local5 = {};
  1757. _local5.list = sfs.buddyList;
  1758. _local6 = new SFSEvent(SFSEvent.onBuddyList, _local5);
  1759. sfs.dispatchEvent(_local6);
  1760. break;
  1761. };
  1762. };
  1763. }
  1764. private function handleAddBuddyPermission(_arg1:Object):void{
  1765. var _local2:Object;
  1766. var _local3:SFSEvent;
  1767. _local2 = {};
  1768. _local2.sender = _arg1.body.n.toString();
  1769. _local2.message = "";
  1770. if (_arg1.body.txt != undefined){
  1771. _local2.message = Entities.decodeEntities(_arg1.body.txt);
  1772. };
  1773. _local3 = new SFSEvent(SFSEvent.onBuddyPermissionRequest, _local2);
  1774. sfs.dispatchEvent(_local3);
  1775. }
  1776. public function handleLoginOk(_arg1:Object):void{
  1777. var _local2:int;
  1778. var _local3:int;
  1779. var _local4:String;
  1780. var _local5:Object;
  1781. var _local6:SFSEvent;
  1782. _local2 = int(_arg1.body.login.@id);
  1783. _local3 = int(_arg1.body.login.@mod);
  1784. _local4 = _arg1.body.login.@n;
  1785. sfs.amIModerator = (_local3 == 1);
  1786. sfs.myUserId = _local2;
  1787. sfs.myUserName = _local4;
  1788. sfs.playerId = -1;
  1789. _local5 = {};
  1790. _local5.success = true;
  1791. _local5.name = _local4;
  1792. _local5.error = "";
  1793. _local6 = new SFSEvent(SFSEvent.onLogin, _local5);
  1794. sfs.dispatchEvent(_local6);
  1795. sfs.getRoomList();
  1796. }
  1797. public function handleUserLeaveRoom(_arg1:Object):void{
  1798. var userId:* = 0;
  1799. var roomId:* = 0;
  1800. var theRoom:* = null;
  1801. var uName:* = null;
  1802. var params:* = null;
  1803. var evt:* = null;
  1804. var o:* = _arg1;
  1805. trace(("----------------------------------------------SysHandler::handleUserLeaveRoom o=" + o));
  1806. userId = int(o.body.user.@id);
  1807. roomId = int(o.body.@r);
  1808. trace(("----------------------------------------------SysHandler::handleUserLeaveRoom roomID=" + roomId));
  1809. trace(("----------------------------------------------SysHandler::handleUserLeaveRoom sfs.getRoom=" + sfs.getRoom(roomId)));
  1810. theRoom = sfs.getRoom(roomId);
  1811. trace(("----------------------------------------------SysHandler::handleUserLeaveRoom theRoom.getUser(userId)=" + theRoom.getUser(userId)));
  1812. try {
  1813. uName = theRoom.getUser(userId).getName();
  1814. theRoom.removeUser(userId);
  1815. } catch(e:Error) {
  1816. trace(("=--------------------------------------- SysHandler::handleUserLeaveRoom EXCEPTION" + e));
  1817. } finally {
  1818. params = {};
  1819. params.roomId = roomId;
  1820. params.userId = userId;
  1821. params.userName = uName;
  1822. evt = new SFSEvent(SFSEvent.onUserLeaveRoom, params);
  1823. sfs.dispatchEvent(evt);
  1824. };
  1825. }
  1826. public function handleRoomList(_arg1:Object):void{
  1827. var _local2:Array;
  1828. var _local3:XML;
  1829. var _local4:Object;
  1830. var _local5:SFSEvent;
  1831. var _local6:int;
  1832. var _local7:Room;
  1833. sfs.clearRoomList();
  1834. _local2 = sfs.getAllRooms();
  1835. for each (_local3 in _arg1.body.rmList.rm) {
  1836. _local6 = int(_local3.@id);
  1837. _local7 = new Room(_local6, _local3.n, int(_local3.@maxu), int(_local3.@maxs), (_local3.@temp == "1"), (_local3.@game == "1"), (_local3.@priv == "1"), (_local3.@lmb == "1"), int(_local3.@ucnt), int(_local3.@scnt));
  1838. if (_local3.vars.toString().length > 0){
  1839. populateVariables(_local7.getVariables(), _local3);
  1840. };
  1841. _local2[_local6] = _local7;
  1842. };
  1843. _local4 = {};
  1844. _local4.roomList = _local2;
  1845. _local5 = new SFSEvent(SFSEvent.onRoomListUpdate, _local4);
  1846. sfs.dispatchEvent(_local5);
  1847. }
  1848. private function handleBuddyAdded(_arg1:Object):void{
  1849. var _local2:Object;
  1850. var _local3:XMLList;
  1851. var _local4:Object;
  1852. var _local5:SFSEvent;
  1853. var _local6:XML;
  1854. _local2 = {};
  1855. _local2.isOnline = (((_arg1.body.b.@s == "1")) ? true : false);
  1856. _local2.name = _arg1.body.b.n.toString();
  1857. _local2.id = _arg1.body.b.@i;
  1858. _local2.isBlocked = (((_arg1.body.b.@x == "1")) ? true : false);
  1859. _local2.variables = {};
  1860. _local3 = _arg1.body.b.vs;
  1861. if (_local3.toString().length > 0){
  1862. for each (_local6 in _local3.v) {
  1863. _local2.variables[_local6.@n.toString()] = _local6.toString();
  1864. };
  1865. };
  1866. sfs.buddyList.push(_local2);
  1867. _local4 = {};
  1868. _local4.list = sfs.buddyList;
  1869. _local5 = new SFSEvent(SFSEvent.onBuddyList, _local4);
  1870. sfs.dispatchEvent(_local5);
  1871. }
  1872. private function handleRoomAdded(_arg1:Object):void{
  1873. var _local2:int;
  1874. var _local3:String;
  1875. var _local4:int;
  1876. var _local5:int;
  1877. var _local6:Boolean;
  1878. var _local7:Boolean;
  1879. var _local8:Boolean;
  1880. var _local9:Boolean;
  1881. var _local10:Room;
  1882. var _local11:Array;
  1883. var _local12:Object;
  1884. var _local13:SFSEvent;
  1885. _local2 = int(_arg1.body.rm.@id);
  1886. _local3 = _arg1.body.rm.name;
  1887. _local4 = int(_arg1.body.rm.@max);
  1888. _local5 = int(_arg1.body.rm.@spec);
  1889. _local6 = (((_arg1.body.rm.@temp == "1")) ? true : false);
  1890. _local7 = (((_arg1.body.rm.@game == "1")) ? true : false);
  1891. _local8 = (((_arg1.body.rm.@priv == "1")) ? true : false);
  1892. _local9 = (((_arg1.body.rm.@limbo == "1")) ? true : false);
  1893. _local10 = new Room(_local2, _local3, _local4, _local5, _local6, _local7, _local8, _local9);
  1894. _local11 = sfs.getAllRooms();
  1895. _local11[_local2] = _local10;
  1896. if (_arg1.body.rm.vars.toString().length > 0){
  1897. populateVariables(_local10.getVariables(), _arg1.body.rm);
  1898. };
  1899. _local12 = {};
  1900. _local12.room = _local10;
  1901. _local13 = new SFSEvent(SFSEvent.onRoomAdded, _local12);
  1902. sfs.dispatchEvent(_local13);
  1903. }
  1904. private function populateVariables(_arg1:Array, _arg2:Object, _arg3:Array=null):void{
  1905. var _local4:XML;
  1906. var _local5:String;
  1907. var _local6:String;
  1908. var _local7:String;
  1909. for each (_local4 in _arg2.vars["var"]) {
  1910. _local5 = _local4.@n;
  1911. _local6 = _local4.@t;
  1912. _local7 = _local4;
  1913. if (_arg3 != null){
  1914. _arg3.push(_local5);
  1915. _arg3[_local5] = true;
  1916. };
  1917. if (_local6 == "b"){
  1918. _arg1[_local5] = (((_local7 == "1")) ? true : false);
  1919. } else {
  1920. if (_local6 == "n"){
  1921. _arg1[_local5] = Number(_local7);
  1922. } else {
  1923. if (_local6 == "s"){
  1924. _arg1[_local5] = _local7;
  1925. } else {
  1926. if (_local6 == "x"){
  1927. delete _arg1[_local5];
  1928. };
  1929. };
  1930. };
  1931. };
  1932. };
  1933. }
  1934. public function handleRoomVarsUpdate(_arg1:Object):void{
  1935. var _local2:int;
  1936. var _local3:int;
  1937. var _local4:Room;
  1938. var _local5:Array;
  1939. var _local6:Object;
  1940. var _local7:SFSEvent;
  1941. _local2 = int(_arg1.body.@r);
  1942. _local3 = int(_arg1.body.user.@id);
  1943. _local4 = sfs.getRoom(_local2);
  1944. _local5 = [];
  1945. if (_arg1.body.vars.toString().length > 0){
  1946. populateVariables(_local4.getVariables(), _arg1.body, _local5);
  1947. };
  1948. _local6 = {};
  1949. _local6.room = _local4;
  1950. _local6.changedVars = _local5;
  1951. _local7 = new SFSEvent(SFSEvent.onRoomVariablesUpdate, _local6);
  1952. sfs.dispatchEvent(_local7);
  1953. }
  1954. private function handleSpectatorSwitched(_arg1:Object):void{
  1955. var _local2:int;
  1956. var _local3:int;
  1957. var _local4:Room;
  1958. var _local5:int;
  1959. var _local6:User;
  1960. var _local7:Object;
  1961. var _local8:SFSEvent;
  1962. _local2 = int(_arg1.body.@r);
  1963. _local3 = int(_arg1.body.pid.@id);
  1964. _local4 = sfs.getRoom(_local2);
  1965. if (_local3 > 0){
  1966. _local4.setUserCount((_local4.getUserCount() + 1));
  1967. _local4.setSpectatorCount((_local4.getSpectatorCount() - 1));
  1968. };
  1969. if (_arg1.body.pid.@u != undefined){
  1970. _local5 = int(_arg1.body.pid.@u);
  1971. _local6 = _local4.getUser(_local5);
  1972. if (_local6 != null){
  1973. _local6.setIsSpectator(false);
  1974. _local6.setPlayerId(_local3);
  1975. };
  1976. } else {
  1977. sfs.playerId = _local3;
  1978. _local7 = {};
  1979. _local7.success = (sfs.playerId > 0);
  1980. _local7.newId = sfs.playerId;
  1981. _local7.room = _local4;
  1982. _local8 = new SFSEvent(SFSEvent.onSpectatorSwitched, _local7);
  1983. sfs.dispatchEvent(_local8);
  1984. };
  1985. }
  1986. private function handleLeaveRoom(_arg1:Object):void{
  1987. var _local2:int;
  1988. var _local3:Object;
  1989. var _local4:SFSEvent;
  1990. _local2 = int(_arg1.body.rm.@id);
  1991. _local3 = {};
  1992. _local3.roomId = _local2;
  1993. _local4 = new SFSEvent(SFSEvent.onRoomLeft, _local3);
  1994. sfs.dispatchEvent(_local4);
  1995. }
  1996. private function handleBuddyListUpdate(_arg1:Object):void{
  1997. var _local2:Object;
  1998. var _local3:SFSEvent;
  1999. var _local4:Object;
  2000. var _local5:XMLList;
  2001. var _local6:Object;
  2002. var _local7:Boolean;
  2003. var _local8:String;
  2004. var _local9:XML;
  2005. _local2 = {};
  2006. _local3 = null;
  2007. if (_arg1.body.b != null){
  2008. _local4 = {};
  2009. _local4.isOnline = (((_arg1.body.b.@s == "1")) ? true : false);
  2010. _local4.name = _arg1.body.b.n.toString();
  2011. _local4.id = _arg1.body.b.@i;
  2012. _local4.isBlocked = (((_arg1.body.b.@x == "1")) ? true : false);
  2013. _local5 = _arg1.body.b.vs;
  2014. _local6 = null;
  2015. _local7 = false;
  2016. for (_local8 in sfs.buddyList) {
  2017. _local6 = sfs.buddyList[_local8];
  2018. if (_local6.name == _local4.name){
  2019. sfs.buddyList[_local8] = _local4;
  2020. _local4.isBlocked = _local6.isBlocked;
  2021. _local4.variables = _local6.variables;
  2022. if (_local5.toString().length > 0){
  2023. for each (_local9 in _local5.v) {
  2024. _local4.variables[_local9.@n.toString()] = _local9.toString();
  2025. };
  2026. };
  2027. _local7 = true;
  2028. break;
  2029. };
  2030. };
  2031. if (_local7){
  2032. _local2.buddy = _local4;
  2033. _local3 = new SFSEvent(SFSEvent.onBuddyListUpdate, _local2);
  2034. sfs.dispatchEvent(_local3);
  2035. };
  2036. } else {
  2037. _local2.error = _arg1.body.err.toString();
  2038. _local3 = new SFSEvent(SFSEvent.onBuddyListError, _local2);
  2039. sfs.dispatchEvent(_local3);
  2040. };
  2041. }
  2042. public function handleLoginKo(_arg1:Object):void{
  2043. var _local2:Object;
  2044. var _local3:SFSEvent;
  2045. _local2 = {};
  2046. _local2.success = false;
  2047. _local2.error = _arg1.body.login.@e;
  2048. _local3 = new SFSEvent(SFSEvent.onLogin, _local2);
  2049. sfs.dispatchEvent(_local3);
  2050. }
  2051. public function handleModMessage(_arg1:Object):void{
  2052. var _local2:int;
  2053. var _local3:int;
  2054. var _local4:String;
  2055. var _local5:User;
  2056. var _local6:Room;
  2057. var _local7:Object;
  2058. var _local8:SFSEvent;
  2059. _local2 = int(_arg1.body.@r);
  2060. _local3 = int(_arg1.body.user.@id);
  2061. _local4 = _arg1.body.txt;
  2062. _local5 = null;
  2063. _local6 = sfs.getRoom(_local2);
  2064. if (_local6 != null){
  2065. _local5 = sfs.getRoom(_local2).getUser(_local3);
  2066. };
  2067. _local7 = {};
  2068. _local7.message = Entities.decodeEntities(_local4);
  2069. _local7.sender = _local5;
  2070. _local8 = new SFSEvent(SFSEvent.onModeratorMessage, _local7);
  2071. sfs.dispatchEvent(_local8);
  2072. }
  2073. public function handleApiOK(_arg1:Object):void{
  2074. var _local2:SFSEvent;
  2075. sfs.isConnected = true;
  2076. _local2 = new SFSEvent(SFSEvent.onConnection, {success:true});
  2077. sfs.dispatchEvent(_local2);
  2078. }
  2079. private function handleRoundTripBench(_arg1:Object):void{
  2080. var _local2:int;
  2081. var _local3:int;
  2082. var _local4:Object;
  2083. var _local5:SFSEvent;
  2084. _local2 = getTimer();
  2085. _local3 = (_local2 - sfs.getBenchStartTime());
  2086. _local4 = {};
  2087. _local4.elapsed = _local3;
  2088. _local5 = new SFSEvent(SFSEvent.onRoundTripResponse, _local4);
  2089. sfs.dispatchEvent(_local5);
  2090. }
  2091. public function handleJoinOk(_arg1:Object):void{
  2092. var _local2:int;
  2093. var _local3:XMLList;
  2094. var _local4:XMLList;
  2095. var _local5:int;
  2096. var _local6:Room;
  2097. var _local7:XML;
  2098. var _local8:Object;
  2099. var _local9:SFSEvent;
  2100. var _local10:String;
  2101. var _local11:int;
  2102. var _local12:Boolean;
  2103. var _local13:Boolean;
  2104. var _local14:int;
  2105. var _local15:User;
  2106. _local2 = int(_arg1.body.@r);
  2107. _local3 = _arg1.body;
  2108. _local4 = _arg1.body.uLs.u;
  2109. _local5 = int(_arg1.body.pid.@id);
  2110. sfs.activeRoomId = _local2;
  2111. _local6 = sfs.getRoom(_local2);
  2112. _local6.clearUserList();
  2113. sfs.playerId = _local5;
  2114. _local6.setMyPlayerIndex(_local5);
  2115. if (_local3.vars.toString().length > 0){
  2116. _local6.clearVariables();
  2117. populateVariables(_local6.getVariables(), _local3);
  2118. };
  2119. for each (_local7 in _local4) {
  2120. _local10 = _local7.n;
  2121. _local11 = int(_local7.@i);
  2122. _local12 = (((_local7.@m == "1")) ? true : false);
  2123. _local13 = (((_local7.@s == "1")) ? true : false);
  2124. _local14 = (((_local7.@p == null)) ? -1 : int(_local7.@p));
  2125. _local15 = new User(_local11, _local10);
  2126. _local15.setModerator(_local12);
  2127. _local15.setIsSpectator(_local13);
  2128. _local15.setPlayerId(_local14);
  2129. if (_local7.vars.toString().length > 0){
  2130. populateVariables(_local15.getVariables(), _local7);
  2131. };
  2132. _local6.addUser(_local15, _local11);
  2133. };
  2134. sfs.changingRoom = false;
  2135. _local8 = {};
  2136. _local8.room = _local6;
  2137. _local9 = new SFSEvent(SFSEvent.onJoinRoom, _local8);
  2138. sfs.dispatchEvent(_local9);
  2139. }
  2140. public function handleJoinKo(_arg1:Object):void{
  2141. var _local2:Object;
  2142. var _local3:SFSEvent;
  2143. sfs.changingRoom = false;
  2144. _local2 = {};
  2145. _local2.error = _arg1.body.error.@msg;
  2146. _local3 = new SFSEvent(SFSEvent.onJoinRoomError, _local2);
  2147. sfs.dispatchEvent(_local3);
  2148. }
  2149. public function handleASObject(_arg1:Object):void{
  2150. var _local2:int;
  2151. var _local3:int;
  2152. var _local4:String;
  2153. var _local5:User;
  2154. var _local6:Object;
  2155. var _local7:Object;
  2156. var _local8:SFSEvent;
  2157. _local2 = int(_arg1.body.@r);
  2158. _local3 = int(_arg1.body.user.@id);
  2159. _local4 = _arg1.body.dataObj;
  2160. _local5 = sfs.getRoom(_local2).getUser(_local3);
  2161. _local6 = ObjectSerializer.getInstance().deserialize(new XML(_local4));
  2162. _local7 = {};
  2163. _local7.obj = _local6;
  2164. _local7.sender = _local5;
  2165. _local8 = new SFSEvent(SFSEvent.onObjectReceived, _local7);
  2166. sfs.dispatchEvent(_local8);
  2167. }
  2168. private function handleBuddyList(_arg1:Object):void{
  2169. var _local2:XMLList;
  2170. var _local3:XMLList;
  2171. var _local4:Object;
  2172. var _local5:Object;
  2173. var _local6:SFSEvent;
  2174. var _local7:XML;
  2175. var _local8:XML;
  2176. var _local9:XMLList;
  2177. var _local10:XML;
  2178. _local2 = _arg1.body.bList;
  2179. _local3 = _arg1.body.mv;
  2180. _local5 = {};
  2181. _local6 = null;
  2182. if (((!((_local2 == null))) && (!((_local2.b.length == null))))){
  2183. if (((!((_local3 == null))) && ((_local3.toString().length > 0)))){
  2184. for each (_local7 in _local3.v) {
  2185. sfs.myBuddyVars[_local7.@n.toString()] = _local7.toString();
  2186. };
  2187. };
  2188. if (_local2.toString().length > 0){
  2189. for each (_local8 in _local2.b) {
  2190. _local4 = {};
  2191. _local4.isOnline = (((_local8.@s == "1")) ? true : false);
  2192. _local4.name = _local8.n.toString();
  2193. _local4.id = _local8.@i;
  2194. _local4.isBlocked = (((_local8.@x == "1")) ? true : false);
  2195. _local4.variables = {};
  2196. _local9 = _local8.vs;
  2197. if (_local9.toString().length > 0){
  2198. for each (_local10 in _local9.v) {
  2199. _local4.variables[_local10.@n.toString()] = _local10.toString();
  2200. };
  2201. };
  2202. sfs.buddyList.push(_local4);
  2203. };
  2204. };
  2205. _local5.list = sfs.buddyList;
  2206. _local6 = new SFSEvent(SFSEvent.onBuddyList, _local5);
  2207. sfs.dispatchEvent(_local6);
  2208. } else {
  2209. _local5.error = _arg1.body.err.toString();
  2210. _local6 = new SFSEvent(SFSEvent.onBuddyListError, _local5);
  2211. sfs.dispatchEvent(_local6);
  2212. };
  2213. }
  2214. public function handleApiKO(_arg1:Object):void{
  2215. var _local2:Object;
  2216. var _local3:SFSEvent;
  2217. _local2 = {};
  2218. _local2.success = false;
  2219. _local2.error = "API are obsolete, please upgrade";
  2220. _local3 = new SFSEvent(SFSEvent.onConnection, _local2);
  2221. sfs.dispatchEvent(_local3);
  2222. }
  2223.  
  2224. }
  2225. }//package it.gotoandplay.smartfoxserver.handlers
  2226. package it.gotoandplay.smartfoxserver.handlers {
  2227.  
  2228. public interface IMessageHandler {
  2229.  
  2230. function handleMessage(_arg1:Object, _arg2:String):void;
  2231.  
  2232. }
  2233. }//package it.gotoandplay.smartfoxserver.handlers
  2234. package it.gotoandplay.smartfoxserver.handlers {
  2235. import it.gotoandplay.smartfoxserver.util.*;
  2236. import it.gotoandplay.smartfoxserver.*;
  2237.  
  2238. public class ExtHandler implements IMessageHandler {
  2239.  
  2240. private var sfs:SmartFoxClient;
  2241.  
  2242. public function ExtHandler(_arg1:SmartFoxClient){
  2243. this.sfs = _arg1;
  2244. }
  2245. public function handleMessage(_arg1:Object, _arg2:String):void{
  2246. var _local3:Object;
  2247. var _local4:SFSEvent;
  2248. var _local5:XML;
  2249. var _local6:String;
  2250. var _local7:int;
  2251. var _local8:String;
  2252. var _local9:Object;
  2253. if (_arg2 == SmartFoxClient.XTMSG_TYPE_XML){
  2254. _local5 = (_arg1 as XML);
  2255. _local6 = _local5.body.@action;
  2256. _local7 = int(_local5.body.@id);
  2257. if (_local6 == "xtRes"){
  2258. _local8 = _local5.body.toString();
  2259. _local9 = ObjectSerializer.getInstance().deserialize(_local8);
  2260. _local3 = {};
  2261. _local3.dataObj = _local9;
  2262. _local3.type = _arg2;
  2263. _local4 = new SFSEvent(SFSEvent.onExtensionResponse, _local3);
  2264. sfs.dispatchEvent(_local4);
  2265. };
  2266. } else {
  2267. if (_arg2 == SmartFoxClient.XTMSG_TYPE_JSON){
  2268. _local3 = {};
  2269. _local3.dataObj = _arg1.o;
  2270. _local3.type = _arg2;
  2271. _local4 = new SFSEvent(SFSEvent.onExtensionResponse, _local3);
  2272. sfs.dispatchEvent(_local4);
  2273. } else {
  2274. if (_arg2 == SmartFoxClient.XTMSG_TYPE_STR){
  2275. _local3 = {};
  2276. _local3.dataObj = _arg1;
  2277. _local3.type = _arg2;
  2278. _local4 = new SFSEvent(SFSEvent.onExtensionResponse, _local3);
  2279. sfs.dispatchEvent(_local4);
  2280. };
  2281. };
  2282. };
  2283. }
  2284.  
  2285. }
  2286. }//package it.gotoandplay.smartfoxserver.handlers
  2287. package it.gotoandplay.smartfoxserver.data {
  2288.  
  2289. public class Room {
  2290.  
  2291. private var maxUsers:int;
  2292. private var userList:Array;
  2293. private var name:String;
  2294. private var userCount:int;
  2295. private var specCount:int;
  2296. private var id:int;
  2297. private var myPlayerIndex:int;
  2298. private var priv:Boolean;
  2299. private var temp:Boolean;
  2300. private var limbo:Boolean;
  2301. private var maxSpectators:int;
  2302. private var game:Boolean;
  2303. private var variables:Array;
  2304.  
  2305. public function Room(_arg1:int, _arg2:String, _arg3:int, _arg4:int, _arg5:Boolean, _arg6:Boolean, _arg7:Boolean, _arg8:Boolean, _arg9:int=0, _arg10:int=0){
  2306. this.id = _arg1;
  2307. this.name = _arg2;
  2308. this.maxSpectators = _arg4;
  2309. this.maxUsers = _arg3;
  2310. this.temp = _arg5;
  2311. this.game = _arg6;
  2312. this.priv = _arg7;
  2313. this.limbo = _arg8;
  2314. this.userCount = _arg9;
  2315. this.specCount = _arg10;
  2316. this.userList = [];
  2317. this.variables = [];
  2318. }
  2319. public function getVariable(_arg1:String){
  2320. return (variables[_arg1]);
  2321. }
  2322. public function addUser(_arg1:User, _arg2:int):void{
  2323. userList[_arg2] = _arg1;
  2324. if (((this.game) && (_arg1.isSpectator()))){
  2325. specCount++;
  2326. } else {
  2327. userCount++;
  2328. };
  2329. }
  2330. public function getName():String{
  2331. return (this.name);
  2332. }
  2333. public function getId():int{
  2334. return (this.id);
  2335. }
  2336. public function setIsLimbo(_arg1:Boolean):void{
  2337. this.limbo = _arg1;
  2338. }
  2339. public function clearVariables():void{
  2340. this.variables = [];
  2341. }
  2342. public function isTemp():Boolean{
  2343. return (this.temp);
  2344. }
  2345. public function getMaxSpectators():int{
  2346. return (this.maxSpectators);
  2347. }
  2348. public function setVariables(_arg1:Array):void{
  2349. this.variables = _arg1;
  2350. }
  2351. public function isGame():Boolean{
  2352. return (this.game);
  2353. }
  2354. public function getUser(_arg1):User{
  2355. var _local2:User;
  2356. var _local3:String;
  2357. var _local4:User;
  2358. _local2 = null;
  2359. if (typeof(_arg1) == "number"){
  2360. _local2 = userList[_arg1];
  2361. } else {
  2362. if (typeof(_arg1) == "string"){
  2363. for (_local3 in userList) {
  2364. _local4 = this.userList[_local3];
  2365. if (_local4.getName() == _arg1){
  2366. _local2 = _local4;
  2367. break;
  2368. };
  2369. };
  2370. };
  2371. };
  2372. return (_local2);
  2373. }
  2374. public function setUserCount(_arg1:int):void{
  2375. this.userCount = _arg1;
  2376. }
  2377. public function getVariables():Array{
  2378. return (variables);
  2379. }
  2380. public function getUserCount():int{
  2381. return (this.userCount);
  2382. }
  2383. public function isLimbo():Boolean{
  2384. return (this.limbo);
  2385. }
  2386. public function getSpectatorCount():int{
  2387. return (this.specCount);
  2388. }
  2389. public function setSpectatorCount(_arg1:int):void{
  2390. this.specCount = _arg1;
  2391. }
  2392. public function setMyPlayerIndex(_arg1:int):void{
  2393. this.myPlayerIndex = _arg1;
  2394. }
  2395. public function getMyPlayerIndex():int{
  2396. return (this.myPlayerIndex);
  2397. }
  2398. public function clearUserList():void{
  2399. this.userList = [];
  2400. this.userCount = 0;
  2401. this.specCount = 0;
  2402. }
  2403. public function isPrivate():Boolean{
  2404. return (this.priv);
  2405. }
  2406. public function getMaxUsers():int{
  2407. return (this.maxUsers);
  2408. }
  2409. public function removeUser(_arg1:int):void{
  2410. var _local2:User;
  2411. _local2 = userList[_arg1];
  2412. if (((this.game) && (_local2.isSpectator()))){
  2413. specCount--;
  2414. } else {
  2415. userCount--;
  2416. };
  2417. delete userList[_arg1];
  2418. }
  2419. public function getUserList():Array{
  2420. return (this.userList);
  2421. }
  2422.  
  2423. }
  2424. }//package it.gotoandplay.smartfoxserver.data
  2425. package it.gotoandplay.smartfoxserver.data {
  2426.  
  2427. public class User {
  2428.  
  2429. private var isSpec:Boolean;
  2430. private var name:String;
  2431. private var id:int;
  2432. private var pId:int;
  2433. private var variables:Array;
  2434. private var isMod:Boolean;
  2435.  
  2436. public function User(_arg1:int, _arg2:String){
  2437. this.id = _arg1;
  2438. this.name = _arg2;
  2439. this.variables = [];
  2440. this.isSpec = false;
  2441. this.isMod = false;
  2442. }
  2443. public function setModerator(_arg1:Boolean):void{
  2444. this.isMod = _arg1;
  2445. }
  2446. public function getName():String{
  2447. return (this.name);
  2448. }
  2449. public function getVariables():Array{
  2450. return (this.variables);
  2451. }
  2452. public function getId():int{
  2453. return (this.id);
  2454. }
  2455. public function getPlayerId():int{
  2456. return (this.pId);
  2457. }
  2458. public function setPlayerId(_arg1:int):void{
  2459. this.pId = _arg1;
  2460. }
  2461. public function setIsSpectator(_arg1:Boolean):void{
  2462. this.isSpec = _arg1;
  2463. }
  2464. public function isSpectator():Boolean{
  2465. return (this.isSpec);
  2466. }
  2467. public function clearVariables():void{
  2468. this.variables = [];
  2469. }
  2470. public function getVariable(_arg1:String){
  2471. return (this.variables[_arg1]);
  2472. }
  2473. public function setVariables(_arg1:Object):void{
  2474. var _local2:String;
  2475. var _local3:*;
  2476. for (_local2 in _arg1) {
  2477. _local3 = _arg1[_local2];
  2478. if (_local3 != null){
  2479. this.variables[_local2] = _local3;
  2480. } else {
  2481. delete this.variables[_local2];
  2482. };
  2483. };
  2484. }
  2485. public function isModerator():Boolean{
  2486. return (this.isMod);
  2487. }
  2488.  
  2489. }
  2490. }//package it.gotoandplay.smartfoxserver.data
  2491. package {
  2492. import flash.display.*;
  2493.  
  2494. public dynamic class Button_disabledSkin extends MovieClip {
  2495.  
  2496. }
  2497. }//package
  2498. package {
  2499. import flash.media.*;
  2500.  
  2501. public dynamic class mulchblurp extends Sound {
  2502.  
  2503. }
  2504. }//package
  2505. package {
  2506. import flash.display.*;
  2507.  
  2508. public dynamic class Button_selectedDownSkin extends MovieClip {
  2509.  
  2510. }
  2511. }//package
  2512. package {
  2513. import flash.display.*;
  2514.  
  2515. public dynamic class Button_selectedUpSkin extends MovieClip {
  2516.  
  2517. }
  2518. }//package
  2519. package {
  2520. import flash.display.*;
  2521.  
  2522. public dynamic class Button_upSkin extends MovieClip {
  2523.  
  2524. }
  2525. }//package
  2526. package fl.controls {
  2527. import flash.display.*;
  2528. import flash.events.*;
  2529. import fl.core.*;
  2530. import flash.utils.*;
  2531. import fl.events.*;
  2532.  
  2533. public class BaseButton extends UIComponent {
  2534.  
  2535. private static var defaultStyles:Object = {
  2536. upSkin:"Button_upSkin",
  2537. downSkin:"Button_downSkin",
  2538. overSkin:"Button_overSkin",
  2539. disabledSkin:"Button_disabledSkin",
  2540. selectedDisabledSkin:"Button_selectedDisabledSkin",
  2541. selectedUpSkin:"Button_selectedUpSkin",
  2542. selectedDownSkin:"Button_selectedDownSkin",
  2543. selectedOverSkin:"Button_selectedOverSkin",
  2544. focusRectSkin:null,
  2545. focusRectPadding:null,
  2546. repeatDelay:500,
  2547. repeatInterval:35
  2548. };
  2549.  
  2550. protected var _selected:Boolean = false;
  2551. private var unlockedMouseState:String;
  2552. protected var pressTimer:Timer;
  2553. protected var mouseState:String;
  2554. protected var background:DisplayObject;
  2555. private var _mouseStateLocked:Boolean = false;
  2556. protected var _autoRepeat:Boolean = false;
  2557.  
  2558. public function BaseButton(){
  2559. _selected = false;
  2560. _autoRepeat = false;
  2561. _mouseStateLocked = false;
  2562. super();
  2563. buttonMode = true;
  2564. mouseChildren = false;
  2565. useHandCursor = false;
  2566. setupMouseEvents();
  2567. setMouseState("up");
  2568. pressTimer = new Timer(1, 0);
  2569. pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true);
  2570. }
  2571. public static function getStyleDefinition():Object{
  2572. return (defaultStyles);
  2573. }
  2574.  
  2575. protected function endPress():void{
  2576. pressTimer.reset();
  2577. }
  2578. public function set mouseStateLocked(_arg1:Boolean):void{
  2579. _mouseStateLocked = _arg1;
  2580. if (_arg1 == false){
  2581. setMouseState(unlockedMouseState);
  2582. } else {
  2583. unlockedMouseState = mouseState;
  2584. };
  2585. }
  2586. public function get autoRepeat():Boolean{
  2587. return (_autoRepeat);
  2588. }
  2589. public function set autoRepeat(_arg1:Boolean):void{
  2590. _autoRepeat = _arg1;
  2591. }
  2592. override public function set enabled(_arg1:Boolean):void{
  2593. super.enabled = _arg1;
  2594. mouseEnabled = _arg1;
  2595. }
  2596. public function get selected():Boolean{
  2597. return (_selected);
  2598. }
  2599. protected function mouseEventHandler(_arg1:MouseEvent):void{
  2600. if (_arg1.type == MouseEvent.MOUSE_DOWN){
  2601. setMouseState("down");
  2602. startPress();
  2603. } else {
  2604. if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){
  2605. setMouseState("over");
  2606. endPress();
  2607. } else {
  2608. if (_arg1.type == MouseEvent.ROLL_OUT){
  2609. setMouseState("up");
  2610. endPress();
  2611. };
  2612. };
  2613. };
  2614. }
  2615. public function setMouseState(_arg1:String):void{
  2616. if (_mouseStateLocked){
  2617. unlockedMouseState = _arg1;
  2618. return;
  2619. };
  2620. if (mouseState == _arg1){
  2621. return;
  2622. };
  2623. mouseState = _arg1;
  2624. invalidate(InvalidationType.STATE);
  2625. }
  2626. protected function startPress():void{
  2627. if (_autoRepeat){
  2628. pressTimer.delay = Number(getStyleValue("repeatDelay"));
  2629. pressTimer.start();
  2630. };
  2631. dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
  2632. }
  2633. protected function buttonDown(_arg1:TimerEvent):void{
  2634. if (!_autoRepeat){
  2635. endPress();
  2636. return;
  2637. };
  2638. if (pressTimer.currentCount == 1){
  2639. pressTimer.delay = Number(getStyleValue("repeatInterval"));
  2640. };
  2641. dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
  2642. }
  2643. public function set selected(_arg1:Boolean):void{
  2644. if (_selected == _arg1){
  2645. return;
  2646. };
  2647. _selected = _arg1;
  2648. invalidate(InvalidationType.STATE);
  2649. }
  2650. override public function get enabled():Boolean{
  2651. return (super.enabled);
  2652. }
  2653. override protected function draw():void{
  2654. if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
  2655. drawBackground();
  2656. invalidate(InvalidationType.SIZE, false);
  2657. };
  2658. if (isInvalid(InvalidationType.SIZE)){
  2659. drawLayout();
  2660. };
  2661. super.draw();
  2662. }
  2663. protected function setupMouseEvents():void{
  2664. addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true);
  2665. addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true);
  2666. addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true);
  2667. addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true);
  2668. }
  2669. protected function drawLayout():void{
  2670. background.width = width;
  2671. background.height = height;
  2672. }
  2673. protected function drawBackground():void{
  2674. var _local1:String;
  2675. var _local2:DisplayObject;
  2676. _local1 = ((enabled) ? mouseState : "disabled");
  2677. if (selected){
  2678. _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1));
  2679. };
  2680. _local1 = (_local1 + "Skin");
  2681. _local2 = background;
  2682. background = getDisplayObjectInstance(getStyleValue(_local1));
  2683. addChildAt(background, 0);
  2684. if (((!((_local2 == null))) && (!((_local2 == background))))){
  2685. removeChild(_local2);
  2686. };
  2687. }
  2688.  
  2689. }
  2690. }//package fl.controls
  2691. package fl.controls {
  2692. import flash.display.*;
  2693. import flash.events.*;
  2694. import fl.core.*;
  2695. import fl.managers.*;
  2696. import fl.events.*;
  2697. import flash.text.*;
  2698. import flash.ui.*;
  2699.  
  2700. public class LabelButton extends BaseButton implements IFocusManagerComponent {
  2701.  
  2702. private static var defaultStyles:Object = {
  2703. icon:null,
  2704. upIcon:null,
  2705. downIcon:null,
  2706. overIcon:null,
  2707. disabledIcon:null,
  2708. selectedDisabledIcon:null,
  2709. selectedUpIcon:null,
  2710. selectedDownIcon:null,
  2711. selectedOverIcon:null,
  2712. textFormat:null,
  2713. disabledTextFormat:null,
  2714. textPadding:5,
  2715. embedFonts:false
  2716. };
  2717. public static var createAccessibilityImplementation:Function;
  2718.  
  2719. protected var _labelPlacement:String = "right";
  2720. protected var _toggle:Boolean = false;
  2721. protected var icon:DisplayObject;
  2722. protected var oldMouseState:String;
  2723. protected var mode:String = "center";
  2724. public var textField:TextField;
  2725. protected var _label:String = "Label";
  2726.  
  2727. public function LabelButton(){
  2728. _labelPlacement = ButtonLabelPlacement.RIGHT;
  2729. _toggle = false;
  2730. _label = "Label";
  2731. mode = "center";
  2732. super();
  2733. }
  2734. public static function getStyleDefinition():Object{
  2735. return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition()));
  2736. }
  2737.  
  2738. protected function toggleSelected(_arg1:MouseEvent):void{
  2739. selected = !(selected);
  2740. dispatchEvent(new Event(Event.CHANGE, true));
  2741. }
  2742. public function get labelPlacement():String{
  2743. return (_labelPlacement);
  2744. }
  2745. override protected function keyDownHandler(_arg1:KeyboardEvent):void{
  2746. if (!enabled){
  2747. return;
  2748. };
  2749. if (_arg1.keyCode == Keyboard.SPACE){
  2750. if (oldMouseState == null){
  2751. oldMouseState = mouseState;
  2752. };
  2753. setMouseState("down");
  2754. startPress();
  2755. };
  2756. }
  2757. protected function setEmbedFont(){
  2758. var _local1:Object;
  2759. _local1 = getStyleValue("embedFonts");
  2760. if (_local1 != null){
  2761. textField.embedFonts = _local1;
  2762. };
  2763. }
  2764. override protected function keyUpHandler(_arg1:KeyboardEvent):void{
  2765. if (!enabled){
  2766. return;
  2767. };
  2768. if (_arg1.keyCode == Keyboard.SPACE){
  2769. setMouseState(oldMouseState);
  2770. oldMouseState = null;
  2771. endPress();
  2772. dispatchEvent(new MouseEvent(MouseEvent.CLICK));
  2773. };
  2774. }
  2775. override public function get selected():Boolean{
  2776. return (((_toggle) ? _selected : false));
  2777. }
  2778. public function set labelPlacement(_arg1:String):void{
  2779. _labelPlacement = _arg1;
  2780. invalidate(InvalidationType.SIZE);
  2781. }
  2782. public function set toggle(_arg1:Boolean):void{
  2783. if (((!(_arg1)) && (super.selected))){
  2784. selected = false;
  2785. };
  2786. _toggle = _arg1;
  2787. if (_toggle){
  2788. addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true);
  2789. } else {
  2790. removeEventListener(MouseEvent.CLICK, toggleSelected);
  2791. };
  2792. invalidate(InvalidationType.STATE);
  2793. }
  2794. public function get label():String{
  2795. return (_label);
  2796. }
  2797. override public function set selected(_arg1:Boolean):void{
  2798. _selected = _arg1;
  2799. if (_toggle){
  2800. invalidate(InvalidationType.STATE);
  2801. };
  2802. }
  2803. override protected function draw():void{
  2804. if (textField.text != _label){
  2805. label = _label;
  2806. };
  2807. if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
  2808. drawBackground();
  2809. drawIcon();
  2810. drawTextFormat();
  2811. invalidate(InvalidationType.SIZE, false);
  2812. };
  2813. if (isInvalid(InvalidationType.SIZE)){
  2814. drawLayout();
  2815. };
  2816. if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
  2817. if (((isFocused) && (focusManager.showFocusIndicator))){
  2818. drawFocus(true);
  2819. };
  2820. };
  2821. validate();
  2822. }
  2823. public function get toggle():Boolean{
  2824. return (_toggle);
  2825. }
  2826. override protected function configUI():void{
  2827. super.configUI();
  2828. textField = new TextField();
  2829. textField.type = TextFieldType.DYNAMIC;
  2830. textField.selectable = false;
  2831. addChild(textField);
  2832. }
  2833. override protected function drawLayout():void{
  2834. var _local1:Number;
  2835. var _local2:String;
  2836. var _local3:Number;
  2837. var _local4:Number;
  2838. var _local5:Number;
  2839. var _local6:Number;
  2840. var _local7:Number;
  2841. var _local8:Number;
  2842. _local1 = Number(getStyleValue("textPadding"));
  2843. _local2 = (((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement);
  2844. textField.height = (textField.textHeight + 4);
  2845. _local3 = (textField.textWidth + 4);
  2846. _local4 = (textField.textHeight + 4);
  2847. _local5 = ((icon)==null) ? 0 : (icon.width + _local1);
  2848. _local6 = ((icon)==null) ? 0 : (icon.height + _local1);
  2849. textField.visible = (label.length > 0);
  2850. if (icon != null){
  2851. icon.x = Math.round(((width - icon.width) / 2));
  2852. icon.y = Math.round(((height - icon.height) / 2));
  2853. };
  2854. if (textField.visible == false){
  2855. textField.width = 0;
  2856. textField.height = 0;
  2857. } else {
  2858. if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){
  2859. _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1))));
  2860. if ((height - 2) > _local4){
  2861. _local8 = _local4;
  2862. } else {
  2863. _local8 = (height - 2);
  2864. };
  2865. _local3 = _local7;
  2866. textField.width = _local3;
  2867. _local4 = _local8;
  2868. textField.height = _local4;
  2869. textField.x = Math.round(((width - _local3) / 2));
  2870. textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0));
  2871. if (icon != null){
  2872. icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1));
  2873. };
  2874. } else {
  2875. _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1))));
  2876. _local3 = _local7;
  2877. textField.width = _local3;
  2878. textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0));
  2879. textField.y = Math.round(((height - textField.height) / 2));
  2880. if (icon != null){
  2881. icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1));
  2882. };
  2883. };
  2884. };
  2885. super.drawLayout();
  2886. }
  2887. override protected function initializeAccessibility():void{
  2888. if (LabelButton.createAccessibilityImplementation != null){
  2889. LabelButton.createAccessibilityImplementation(this);
  2890. };
  2891. }
  2892. protected function drawIcon():void{
  2893. var _local1:DisplayObject;
  2894. var _local2:String;
  2895. var _local3:Object;
  2896. _local1 = icon;
  2897. _local2 = ((enabled) ? mouseState : "disabled");
  2898. if (selected){
  2899. _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1));
  2900. };
  2901. _local2 = (_local2 + "Icon");
  2902. _local3 = getStyleValue(_local2);
  2903. if (_local3 == null){
  2904. _local3 = getStyleValue("icon");
  2905. };
  2906. if (_local3 != null){
  2907. icon = getDisplayObjectInstance(_local3);
  2908. };
  2909. if (icon != null){
  2910. addChildAt(icon, 1);
  2911. };
  2912. if (((!((_local1 == null))) && (!((_local1 == icon))))){
  2913. removeChild(_local1);
  2914. };
  2915. }
  2916. public function set label(_arg1:String):void{
  2917. _label = _arg1;
  2918. if (textField.text != _label){
  2919. textField.text = _label;
  2920. dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE));
  2921. };
  2922. invalidate(InvalidationType.SIZE);
  2923. invalidate(InvalidationType.STYLES);
  2924. }
  2925. protected function drawTextFormat():void{
  2926. var _local1:Object;
  2927. var _local2:TextFormat;
  2928. var _local3:TextFormat;
  2929. _local1 = UIComponent.getStyleDefinition();
  2930. _local2 = ((enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat));
  2931. textField.setTextFormat(_local2);
  2932. _local3 = (getStyleValue(((enabled) ? "textFormat" : "disabledTextFormat")) as TextFormat);
  2933. if (_local3 != null){
  2934. textField.setTextFormat(_local3);
  2935. } else {
  2936. _local3 = _local2;
  2937. };
  2938. textField.defaultTextFormat = _local3;
  2939. setEmbedFont();
  2940. }
  2941.  
  2942. }
  2943. }//package fl.controls
  2944. package fl.controls {
  2945. import flash.display.*;
  2946. import fl.core.*;
  2947. import fl.managers.*;
  2948.  
  2949. public class Button extends LabelButton implements IFocusManagerComponent {
  2950.  
  2951. private static var defaultStyles:Object = {
  2952. emphasizedSkin:"Button_emphasizedSkin",
  2953. emphasizedPadding:2
  2954. };
  2955. public static var createAccessibilityImplementation:Function;
  2956.  
  2957. protected var emphasizedBorder:DisplayObject;
  2958. protected var _emphasized:Boolean = false;
  2959.  
  2960. public function Button(){
  2961. _emphasized = false;
  2962. super();
  2963. }
  2964. public static function getStyleDefinition():Object{
  2965. return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles));
  2966. }
  2967.  
  2968. override public function drawFocus(_arg1:Boolean):void{
  2969. var _local2:Number;
  2970. var _local3:*;
  2971. super.drawFocus(_arg1);
  2972. if (_arg1){
  2973. _local2 = Number(getStyleValue("emphasizedPadding"));
  2974. if ((((_local2 < 0)) || (!(_emphasized)))){
  2975. _local2 = 0;
  2976. };
  2977. _local3 = getStyleValue("focusRectPadding");
  2978. _local3 = ((_local3)==null) ? 2 : _local3;
  2979. _local3 = (_local3 + _local2);
  2980. uiFocusRect.x = -(_local3);
  2981. uiFocusRect.y = -(_local3);
  2982. uiFocusRect.width = (width + (_local3 * 2));
  2983. uiFocusRect.height = (height + (_local3 * 2));
  2984. };
  2985. }
  2986. public function set emphasized(_arg1:Boolean):void{
  2987. _emphasized = _arg1;
  2988. invalidate(InvalidationType.STYLES);
  2989. }
  2990. override protected function draw():void{
  2991. if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){
  2992. drawEmphasized();
  2993. };
  2994. super.draw();
  2995. if (emphasizedBorder != null){
  2996. setChildIndex(emphasizedBorder, (numChildren - 1));
  2997. };
  2998. }
  2999. public function get emphasized():Boolean{
  3000. return (_emphasized);
  3001. }
  3002. override protected function initializeAccessibility():void{
  3003. if (Button.createAccessibilityImplementation != null){
  3004. Button.createAccessibilityImplementation(this);
  3005. };
  3006. }
  3007. protected function drawEmphasized():void{
  3008. var _local1:Object;
  3009. var _local2:Number;
  3010. if (emphasizedBorder != null){
  3011. removeChild(emphasizedBorder);
  3012. };
  3013. emphasizedBorder = null;
  3014. if (!_emphasized){
  3015. return;
  3016. };
  3017. _local1 = getStyleValue("emphasizedSkin");
  3018. if (_local1 != null){
  3019. emphasizedBorder = getDisplayObjectInstance(_local1);
  3020. };
  3021. if (emphasizedBorder != null){
  3022. addChildAt(emphasizedBorder, 0);
  3023. _local2 = Number(getStyleValue("emphasizedPadding"));
  3024. emphasizedBorder.x = (emphasizedBorder.y = -(_local2));
  3025. emphasizedBorder.width = (width + (_local2 * 2));
  3026. emphasizedBorder.height = (height + (_local2 * 2));
  3027. };
  3028. }
  3029.  
  3030. }
  3031. }//package fl.controls
  3032. package fl.controls {
  3033.  
  3034. public class ButtonLabelPlacement {
  3035.  
  3036. public static const TOP:String = "top";
  3037. public static const LEFT:String = "left";
  3038. public static const BOTTOM:String = "bottom";
  3039. public static const RIGHT:String = "right";
  3040.  
  3041. }
  3042. }//package fl.controls
  3043. package fl.core {
  3044.  
  3045. public class InvalidationType {
  3046.  
  3047. public static const SIZE:String = "size";
  3048. public static const ALL:String = "all";
  3049. public static const DATA:String = "data";
  3050. public static const SCROLL:String = "scroll";
  3051. public static const STATE:String = "state";
  3052. public static const STYLES:String = "styles";
  3053. public static const SELECTED:String = "selected";
  3054. public static const RENDERER_STYLES:String = "rendererStyles";
  3055.  
  3056. }
  3057. }//package fl.core
  3058. package fl.core {
  3059. import flash.display.*;
  3060. import flash.events.*;
  3061. import fl.managers.*;
  3062. import flash.utils.*;
  3063. import fl.events.*;
  3064. import flash.text.*;
  3065. import flash.system.*;
  3066.  
  3067. public class UIComponent extends Sprite {
  3068.  
  3069. public static var inCallLaterPhase:Boolean = false;
  3070. private static var defaultStyles:Object = {
  3071. focusRectSkin:"focusRectSkin",
  3072. focusRectPadding:2,
  3073. textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0),
  3074. disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0),
  3075. defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0),
  3076. defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)
  3077. };
  3078. public static var createAccessibilityImplementation:Function;
  3079. private static var focusManagers:Dictionary = new Dictionary(false);
  3080.  
  3081. protected var _enabled:Boolean = true;
  3082. private var _mouseFocusEnabled:Boolean = true;
  3083. protected var startHeight:Number;
  3084. protected var _height:Number;
  3085. protected var _oldIMEMode:String = null;
  3086. protected var startWidth:Number;
  3087. public var focusTarget:IFocusManagerComponent;
  3088. protected var errorCaught:Boolean = false;
  3089. protected var uiFocusRect:DisplayObject;
  3090. protected var _width:Number;
  3091. public var version:String = "3.0.0.15";
  3092. protected var isFocused:Boolean = false;
  3093. protected var callLaterMethods:Dictionary;
  3094. private var _focusEnabled:Boolean = true;
  3095. private var tempText:TextField;
  3096. protected var invalidateFlag:Boolean = false;
  3097. protected var _inspector:Boolean = false;
  3098. protected var sharedStyles:Object;
  3099. protected var invalidHash:Object;
  3100. protected var isLivePreview:Boolean = false;
  3101. protected var _imeMode:String = null;
  3102. protected var instanceStyles:Object;
  3103. protected var _x:Number;
  3104. protected var _y:Number;
  3105.  
  3106. public function UIComponent(){
  3107. version = "3.0.0.15";
  3108. isLivePreview = false;
  3109. invalidateFlag = false;
  3110. _enabled = true;
  3111. isFocused = false;
  3112. _focusEnabled = true;
  3113. _mouseFocusEnabled = true;
  3114. _imeMode = null;
  3115. _oldIMEMode = null;
  3116. errorCaught = false;
  3117. _inspector = false;
  3118. super();
  3119. instanceStyles = {};
  3120. sharedStyles = {};
  3121. invalidHash = {};
  3122. callLaterMethods = new Dictionary();
  3123. StyleManager.registerInstance(this);
  3124. configUI();
  3125. invalidate(InvalidationType.ALL);
  3126. tabEnabled = (this is IFocusManagerComponent);
  3127. focusRect = false;
  3128. if (tabEnabled){
  3129. addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
  3130. addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
  3131. addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
  3132. addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
  3133. };
  3134. initializeFocusManager();
  3135. addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true);
  3136. }
  3137. public static function getStyleDefinition():Object{
  3138. return (defaultStyles);
  3139. }
  3140. public static function mergeStyles(... _args):Object{
  3141. var _local2:Object;
  3142. var _local3:uint;
  3143. var _local4:uint;
  3144. var _local5:Object;
  3145. var _local6:String;
  3146. _local2 = {};
  3147. _local3 = _args.length;
  3148. _local4 = 0;
  3149. while (_local4 < _local3) {
  3150. _local5 = _args[_local4];
  3151. for (_local6 in _local5) {
  3152. if (_local2[_local6] != null){
  3153. } else {
  3154. _local2[_local6] = _args[_local4][_local6];
  3155. };
  3156. };
  3157. _local4++;
  3158. };
  3159. return (_local2);
  3160. }
  3161.  
  3162. public function drawFocus(_arg1:Boolean):void{
  3163. var _local2:Number;
  3164. isFocused = _arg1;
  3165. if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){
  3166. removeChild(uiFocusRect);
  3167. uiFocusRect = null;
  3168. };
  3169. if (_arg1){
  3170. uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite);
  3171. if (uiFocusRect == null){
  3172. return;
  3173. };
  3174. _local2 = Number(getStyleValue("focusRectPadding"));
  3175. uiFocusRect.x = -(_local2);
  3176. uiFocusRect.y = -(_local2);
  3177. uiFocusRect.width = (width + (_local2 * 2));
  3178. uiFocusRect.height = (height + (_local2 * 2));
  3179. addChildAt(uiFocusRect, 0);
  3180. };
  3181. }
  3182. private function callLaterDispatcher(_arg1:Event):void{
  3183. var _local2:Dictionary;
  3184. var _local3:Object;
  3185. if (_arg1.type == Event.ADDED_TO_STAGE){
  3186. removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher);
  3187. stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
  3188. stage.invalidate();
  3189. return;
  3190. };
  3191. _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher);
  3192. if (stage == null){
  3193. addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
  3194. return;
  3195. };
  3196. inCallLaterPhase = true;
  3197. _local2 = callLaterMethods;
  3198. for (_local3 in _local2) {
  3199. _local3();
  3200. delete _local2[_local3];
  3201. };
  3202. inCallLaterPhase = false;
  3203. }
  3204. private function addedHandler(_arg1:Event):void{
  3205. removeEventListener("addedToStage", addedHandler);
  3206. initializeFocusManager();
  3207. }
  3208. protected function getStyleValue(_arg1:String):Object{
  3209. return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]);
  3210. }
  3211. protected function isOurFocus(_arg1:DisplayObject):Boolean{
  3212. return ((_arg1 == this));
  3213. }
  3214. override public function get scaleX():Number{
  3215. return ((width / startWidth));
  3216. }
  3217. override public function get scaleY():Number{
  3218. return ((height / startHeight));
  3219. }
  3220. override public function set height(_arg1:Number):void{
  3221. if (_height == _arg1){
  3222. return;
  3223. };
  3224. setSize(width, _arg1);
  3225. }
  3226. protected function keyDownHandler(_arg1:KeyboardEvent):void{
  3227. }
  3228. protected function focusInHandler(_arg1:FocusEvent):void{
  3229. var _local2:IFocusManager;
  3230. if (isOurFocus((_arg1.target as DisplayObject))){
  3231. _local2 = focusManager;
  3232. if (((_local2) && (_local2.showFocusIndicator))){
  3233. drawFocus(true);
  3234. isFocused = true;
  3235. };
  3236. };
  3237. }
  3238. public function setStyle(_arg1:String, _arg2:Object):void{
  3239. if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
  3240. return;
  3241. };
  3242. instanceStyles[_arg1] = _arg2;
  3243. invalidate(InvalidationType.STYLES);
  3244. }
  3245. override public function get visible():Boolean{
  3246. return (super.visible);
  3247. }
  3248. public function get componentInspectorSetting():Boolean{
  3249. return (_inspector);
  3250. }
  3251. override public function get x():Number{
  3252. return (((isNaN(_x)) ? super.x : _x));
  3253. }
  3254. override public function get y():Number{
  3255. return (((isNaN(_y)) ? super.y : _y));
  3256. }
  3257. protected function setIMEMode(_arg1:Boolean){
  3258. var enabled:* = _arg1;
  3259. if (_imeMode != null){
  3260. if (enabled){
  3261. IME.enabled = true;
  3262. _oldIMEMode = IME.conversionMode;
  3263. try {
  3264. if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){
  3265. IME.conversionMode = _imeMode;
  3266. };
  3267. errorCaught = false;
  3268. } catch(e:Error) {
  3269. errorCaught = true;
  3270. throw (new Error(("IME mode not supported: " + _imeMode)));
  3271. };
  3272. } else {
  3273. if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){
  3274. IME.conversionMode = _oldIMEMode;
  3275. };
  3276. IME.enabled = false;
  3277. };
  3278. };
  3279. }
  3280. public function set enabled(_arg1:Boolean):void{
  3281. if (_arg1 == _enabled){
  3282. return;
  3283. };
  3284. _enabled = _arg1;
  3285. invalidate(InvalidationType.STATE);
  3286. }
  3287. public function setSharedStyle(_arg1:String, _arg2:Object):void{
  3288. if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
  3289. return;
  3290. };
  3291. sharedStyles[_arg1] = _arg2;
  3292. if (instanceStyles[_arg1] == null){
  3293. invalidate(InvalidationType.STYLES);
  3294. };
  3295. }
  3296. protected function keyUpHandler(_arg1:KeyboardEvent):void{
  3297. }
  3298. public function set focusEnabled(_arg1:Boolean):void{
  3299. _focusEnabled = _arg1;
  3300. }
  3301. override public function set scaleX(_arg1:Number):void{
  3302. setSize((startWidth * _arg1), height);
  3303. }
  3304. public function get mouseFocusEnabled():Boolean{
  3305. return (_mouseFocusEnabled);
  3306. }
  3307. override public function set scaleY(_arg1:Number):void{
  3308. setSize(width, (startHeight * _arg1));
  3309. }
  3310. protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{
  3311. var classDef:* = null;
  3312. var skin:* = _arg1;
  3313. classDef = null;
  3314. if ((skin is Class)){
  3315. return ((new (skin)() as DisplayObject));
  3316. };
  3317. if ((skin is DisplayObject)){
  3318. (skin as DisplayObject).x = 0;
  3319. (skin as DisplayObject).y = 0;
  3320. return ((skin as DisplayObject));
  3321. };
  3322. try {
  3323. classDef = getDefinitionByName(skin.toString());
  3324. } catch(e:Error) {
  3325. try {
  3326. classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object);
  3327. } catch(e:Error) {
  3328. };
  3329. };
  3330. if (classDef == null){
  3331. return (null);
  3332. };
  3333. return ((new (classDef)() as DisplayObject));
  3334. }
  3335. protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{
  3336. var _local3:String;
  3337. for (_local3 in _arg2) {
  3338. _arg1.setStyle(_local3, getStyleValue(_arg2[_local3]));
  3339. };
  3340. }
  3341. protected function beforeComponentParameters():void{
  3342. }
  3343. protected function callLater(_arg1:Function):void{
  3344. if (inCallLaterPhase){
  3345. return;
  3346. };
  3347. callLaterMethods[_arg1] = true;
  3348. if (stage != null){
  3349. stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
  3350. stage.invalidate();
  3351. } else {
  3352. addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
  3353. };
  3354. }
  3355. protected function createFocusManager():void{
  3356. if (focusManagers[stage] == null){
  3357. focusManagers[stage] = new FocusManager(stage);
  3358. };
  3359. }
  3360. override public function set visible(_arg1:Boolean):void{
  3361. var _local2:String;
  3362. if (super.visible == _arg1){
  3363. return;
  3364. };
  3365. super.visible = _arg1;
  3366. _local2 = ((_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE);
  3367. dispatchEvent(new ComponentEvent(_local2, true));
  3368. }
  3369. protected function hookAccessibility(_arg1:Event):void{
  3370. removeEventListener(Event.ENTER_FRAME, hookAccessibility);
  3371. initializeAccessibility();
  3372. }
  3373. public function set componentInspectorSetting(_arg1:Boolean):void{
  3374. _inspector = _arg1;
  3375. if (_inspector){
  3376. beforeComponentParameters();
  3377. } else {
  3378. afterComponentParameters();
  3379. };
  3380. }
  3381. override public function set x(_arg1:Number):void{
  3382. move(_arg1, _y);
  3383. }
  3384. public function drawNow():void{
  3385. draw();
  3386. }
  3387. override public function set y(_arg1:Number):void{
  3388. move(_x, _arg1);
  3389. }
  3390. protected function checkLivePreview():Boolean{
  3391. var className:* = null;
  3392. if (parent == null){
  3393. return (false);
  3394. };
  3395. try {
  3396. className = getQualifiedClassName(parent);
  3397. } catch(e:Error) {
  3398. };
  3399. return ((className == "fl.livepreview::LivePreviewParent"));
  3400. }
  3401. protected function focusOutHandler(_arg1:FocusEvent):void{
  3402. if (isOurFocus((_arg1.target as DisplayObject))){
  3403. drawFocus(false);
  3404. isFocused = false;
  3405. };
  3406. }
  3407. public function set mouseFocusEnabled(_arg1:Boolean):void{
  3408. _mouseFocusEnabled = _arg1;
  3409. }
  3410. public function getFocus():InteractiveObject{
  3411. if (stage){
  3412. return (stage.focus);
  3413. };
  3414. return (null);
  3415. }
  3416. protected function validate():void{
  3417. invalidHash = {};
  3418. }
  3419. override public function get height():Number{
  3420. return (_height);
  3421. }
  3422. public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{
  3423. invalidHash[_arg1] = true;
  3424. if (_arg2){
  3425. this.callLater(draw);
  3426. };
  3427. }
  3428. public function get enabled():Boolean{
  3429. return (_enabled);
  3430. }
  3431. protected function getScaleX():Number{
  3432. return (super.scaleX);
  3433. }
  3434. protected function getScaleY():Number{
  3435. return (super.scaleY);
  3436. }
  3437. public function get focusEnabled():Boolean{
  3438. return (_focusEnabled);
  3439. }
  3440. protected function afterComponentParameters():void{
  3441. }
  3442. protected function draw():void{
  3443. if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
  3444. if (((isFocused) && (focusManager.showFocusIndicator))){
  3445. drawFocus(true);
  3446. };
  3447. };
  3448. validate();
  3449. }
  3450. protected function configUI():void{
  3451. var _local1:Number;
  3452. var _local2:Number;
  3453. var _local3:Number;
  3454. isLivePreview = checkLivePreview();
  3455. _local1 = rotation;
  3456. rotation = 0;
  3457. _local2 = super.width;
  3458. _local3 = super.height;
  3459. var _local4 = 1;
  3460. super.scaleY = _local4;
  3461. super.scaleX = _local4;
  3462. setSize(_local2, _local3);
  3463. move(super.x, super.y);
  3464. rotation = _local1;
  3465. startWidth = _local2;
  3466. startHeight = _local3;
  3467. if (numChildren > 0){
  3468. removeChildAt(0);
  3469. };
  3470. }
  3471. protected function setScaleX(_arg1:Number):void{
  3472. super.scaleX = _arg1;
  3473. }
  3474. protected function setScaleY(_arg1:Number):void{
  3475. super.scaleY = _arg1;
  3476. }
  3477. private function initializeFocusManager():void{
  3478. if (stage == null){
  3479. addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true);
  3480. } else {
  3481. createFocusManager();
  3482. };
  3483. }
  3484. public function set focusManager(_arg1:IFocusManager):void{
  3485. UIComponent.focusManagers[this] = _arg1;
  3486. }
  3487. public function clearStyle(_arg1:String):void{
  3488. setStyle(_arg1, null);
  3489. }
  3490. protected function isInvalid(_arg1:String, ... _args):Boolean{
  3491. if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){
  3492. return (true);
  3493. };
  3494. while (_args.length > 0) {
  3495. if (invalidHash[_args.pop()]){
  3496. return (true);
  3497. };
  3498. };
  3499. return (false);
  3500. }
  3501. public function setSize(_arg1:Number, _arg2:Number):void{
  3502. _width = _arg1;
  3503. _height = _arg2;
  3504. invalidate(InvalidationType.SIZE);
  3505. dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false));
  3506. }
  3507. override public function set width(_arg1:Number):void{
  3508. if (_width == _arg1){
  3509. return;
  3510. };
  3511. setSize(_arg1, height);
  3512. }
  3513. public function setFocus():void{
  3514. if (stage){
  3515. stage.focus = this;
  3516. };
  3517. }
  3518. protected function initializeAccessibility():void{
  3519. if (UIComponent.createAccessibilityImplementation != null){
  3520. UIComponent.createAccessibilityImplementation(this);
  3521. };
  3522. }
  3523. public function get focusManager():IFocusManager{
  3524. var _local1:DisplayObject;
  3525. _local1 = this;
  3526. while (_local1) {
  3527. if (UIComponent.focusManagers[_local1] != null){
  3528. return (IFocusManager(UIComponent.focusManagers[_local1]));
  3529. };
  3530. _local1 = _local1.parent;
  3531. };
  3532. return (null);
  3533. }
  3534. override public function get width():Number{
  3535. return (_width);
  3536. }
  3537. public function move(_arg1:Number, _arg2:Number):void{
  3538. _x = _arg1;
  3539. _y = _arg2;
  3540. super.x = Math.round(_arg1);
  3541. super.y = Math.round(_arg2);
  3542. dispatchEvent(new ComponentEvent(ComponentEvent.MOVE));
  3543. }
  3544. public function validateNow():void{
  3545. invalidate(InvalidationType.ALL, false);
  3546. draw();
  3547. }
  3548. public function getStyle(_arg1:String):Object{
  3549. return (instanceStyles[_arg1]);
  3550. }
  3551.  
  3552. }
  3553. }//package fl.core
  3554. package fl.core {
  3555. import flash.display.*;
  3556.  
  3557. public dynamic class ComponentShim extends MovieClip {
  3558.  
  3559. }
  3560. }//package fl.core
  3561. package fl.managers {
  3562. import fl.controls.*;
  3563. import flash.display.*;
  3564.  
  3565. public interface IFocusManager {
  3566.  
  3567. function getFocus():InteractiveObject;
  3568. function deactivate():void;
  3569. function set defaultButton(_arg1:Button):void;
  3570. function set showFocusIndicator(_arg1:Boolean):void;
  3571. function get defaultButtonEnabled():Boolean;
  3572. function get nextTabIndex():int;
  3573. function get defaultButton():Button;
  3574. function get showFocusIndicator():Boolean;
  3575. function setFocus(_arg1:InteractiveObject):void;
  3576. function activate():void;
  3577. function showFocus():void;
  3578. function set defaultButtonEnabled(_arg1:Boolean):void;
  3579. function hideFocus():void;
  3580. function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject;
  3581. function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject;
  3582.  
  3583. }
  3584. }//package fl.managers
  3585. package fl.managers {
  3586.  
  3587. public interface IFocusManagerComponent {
  3588.  
  3589. function set focusEnabled(_arg1:Boolean):void;
  3590. function drawFocus(_arg1:Boolean):void;
  3591. function setFocus():void;
  3592. function get focusEnabled():Boolean;
  3593. function get tabEnabled():Boolean;
  3594. function get tabIndex():int;
  3595. function get mouseFocusEnabled():Boolean;
  3596.  
  3597. }
  3598. }//package fl.managers
  3599. package fl.managers {
  3600. import fl.core.*;
  3601. import flash.utils.*;
  3602. import flash.text.*;
  3603.  
  3604. public class StyleManager {
  3605.  
  3606. private static var _instance:StyleManager;
  3607.  
  3608. private var globalStyles:Object;
  3609. private var classToDefaultStylesDict:Dictionary;
  3610. private var styleToClassesHash:Object;
  3611. private var classToStylesDict:Dictionary;
  3612. private var classToInstancesDict:Dictionary;
  3613.  
  3614. public function StyleManager(){
  3615. styleToClassesHash = {};
  3616. classToInstancesDict = new Dictionary(true);
  3617. classToStylesDict = new Dictionary(true);
  3618. classToDefaultStylesDict = new Dictionary(true);
  3619. globalStyles = UIComponent.getStyleDefinition();
  3620. }
  3621. public static function clearComponentStyle(_arg1:Object, _arg2:String):void{
  3622. var _local3:Class;
  3623. var _local4:Object;
  3624. _local3 = getClassDef(_arg1);
  3625. _local4 = getInstance().classToStylesDict[_local3];
  3626. if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){
  3627. delete _local4[_arg2];
  3628. invalidateComponentStyle(_local3, _arg2);
  3629. };
  3630. }
  3631. private static function getClassDef(_arg1:Object):Class{
  3632. var component:* = _arg1;
  3633. if ((component is Class)){
  3634. return ((component as Class));
  3635. };
  3636. try {
  3637. return ((getDefinitionByName(getQualifiedClassName(component)) as Class));
  3638. } catch(e:Error) {
  3639. if ((component is UIComponent)){
  3640. try {
  3641. return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class));
  3642. } catch(e:Error) {
  3643. };
  3644. };
  3645. };
  3646. return (null);
  3647. }
  3648. public static function clearStyle(_arg1:String):void{
  3649. setStyle(_arg1, null);
  3650. }
  3651. public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{
  3652. var _local4:Class;
  3653. var _local5:Object;
  3654. _local4 = getClassDef(_arg1);
  3655. _local5 = getInstance().classToStylesDict[_local4];
  3656. if (_local5 == null){
  3657. _local5 = (getInstance().classToStylesDict[_local4] = {});
  3658. };
  3659. if (_local5 == _arg3){
  3660. return;
  3661. };
  3662. _local5[_arg2] = _arg3;
  3663. invalidateComponentStyle(_local4, _arg2);
  3664. }
  3665. private static function setSharedStyles(_arg1:UIComponent):void{
  3666. var _local2:StyleManager;
  3667. var _local3:Class;
  3668. var _local4:Object;
  3669. var _local5:String;
  3670. _local2 = getInstance();
  3671. _local3 = getClassDef(_arg1);
  3672. _local4 = _local2.classToDefaultStylesDict[_local3];
  3673. for (_local5 in _local4) {
  3674. _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5));
  3675. };
  3676. }
  3677. public static function getComponentStyle(_arg1:Object, _arg2:String):Object{
  3678. var _local3:Class;
  3679. var _local4:Object;
  3680. _local3 = getClassDef(_arg1);
  3681. _local4 = getInstance().classToStylesDict[_local3];
  3682. return (((_local4)==null) ? null : _local4[_arg2]);
  3683. }
  3684. private static function getInstance(){
  3685. if (_instance == null){
  3686. _instance = new (StyleManager)();
  3687. };
  3688. return (_instance);
  3689. }
  3690. private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{
  3691. var _local3:Dictionary;
  3692. var _local4:Object;
  3693. var _local5:UIComponent;
  3694. _local3 = getInstance().classToInstancesDict[_arg1];
  3695. if (_local3 == null){
  3696. return;
  3697. };
  3698. for (_local4 in _local3) {
  3699. _local5 = (_local4 as UIComponent);
  3700. if (_local5 == null){
  3701. } else {
  3702. _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2));
  3703. };
  3704. };
  3705. }
  3706. private static function invalidateStyle(_arg1:String):void{
  3707. var _local2:Dictionary;
  3708. var _local3:Object;
  3709. _local2 = getInstance().styleToClassesHash[_arg1];
  3710. if (_local2 == null){
  3711. return;
  3712. };
  3713. for (_local3 in _local2) {
  3714. invalidateComponentStyle(Class(_local3), _arg1);
  3715. };
  3716. }
  3717. public static function registerInstance(_arg1:UIComponent):void{
  3718. var inst:* = null;
  3719. var classDef:* = null;
  3720. var target:* = null;
  3721. var defaultStyles:* = null;
  3722. var styleToClasses:* = null;
  3723. var n:* = null;
  3724. var instance:* = _arg1;
  3725. inst = getInstance();
  3726. classDef = getClassDef(instance);
  3727. if (classDef == null){
  3728. return;
  3729. };
  3730. if (inst.classToInstancesDict[classDef] == null){
  3731. inst.classToInstancesDict[classDef] = new Dictionary(true);
  3732. target = classDef;
  3733. while (defaultStyles == null) {
  3734. if (target["getStyleDefinition"] != null){
  3735. defaultStyles = target["getStyleDefinition"]();
  3736. break;
  3737. };
  3738. try {
  3739. target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class);
  3740. } catch(err:Error) {
  3741. try {
  3742. target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class);
  3743. } catch(e:Error) {
  3744. defaultStyles = UIComponent.getStyleDefinition();
  3745. break;
  3746. };
  3747. };
  3748. };
  3749. styleToClasses = inst.styleToClassesHash;
  3750. for (n in defaultStyles) {
  3751. if (styleToClasses[n] == null){
  3752. styleToClasses[n] = new Dictionary(true);
  3753. };
  3754. styleToClasses[n][classDef] = true;
  3755. };
  3756. inst.classToDefaultStylesDict[classDef] = defaultStyles;
  3757. inst.classToStylesDict[classDef] = {};
  3758. };
  3759. inst.classToInstancesDict[classDef][instance] = true;
  3760. setSharedStyles(instance);
  3761. }
  3762. public static function getStyle(_arg1:String):Object{
  3763. return (getInstance().globalStyles[_arg1]);
  3764. }
  3765. private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{
  3766. var _local3:Class;
  3767. var _local4:StyleManager;
  3768. var _local5:Object;
  3769. _local3 = getClassDef(_arg1);
  3770. _local4 = getInstance();
  3771. _local5 = _local4.classToStylesDict[_local3][_arg2];
  3772. if (_local5 != null){
  3773. return (_local5);
  3774. };
  3775. _local5 = _local4.globalStyles[_arg2];
  3776. if (_local5 != null){
  3777. return (_local5);
  3778. };
  3779. return (_local4.classToDefaultStylesDict[_local3][_arg2]);
  3780. }
  3781. public static function setStyle(_arg1:String, _arg2:Object):void{
  3782. var _local3:Object;
  3783. _local3 = getInstance().globalStyles;
  3784. if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
  3785. return;
  3786. };
  3787. _local3[_arg1] = _arg2;
  3788. invalidateStyle(_arg1);
  3789. }
  3790.  
  3791. }
  3792. }//package fl.managers
  3793. package fl.managers {
  3794.  
  3795. public interface IFocusManagerGroup {
  3796.  
  3797. function set groupName(_arg1:String):void;
  3798. function set selected(_arg1:Boolean):void;
  3799. function get groupName():String;
  3800. function get selected():Boolean;
  3801.  
  3802. }
  3803. }//package fl.managers
  3804. package fl.managers {
  3805. import fl.controls.*;
  3806. import flash.display.*;
  3807. import flash.events.*;
  3808. import fl.core.*;
  3809. import flash.utils.*;
  3810. import flash.text.*;
  3811. import flash.ui.*;
  3812.  
  3813. public class FocusManager implements IFocusManager {
  3814.  
  3815. private var focusableObjects:Dictionary;
  3816. private var _showFocusIndicator:Boolean = true;
  3817. private var defButton:Button;
  3818. private var focusableCandidates:Array;
  3819. private var _form:DisplayObjectContainer;
  3820. private var _defaultButtonEnabled:Boolean = true;
  3821. private var activated:Boolean = false;
  3822. private var _defaultButton:Button;
  3823. private var calculateCandidates:Boolean = true;
  3824. private var lastFocus:InteractiveObject;
  3825. private var lastAction:String;
  3826.  
  3827. public function FocusManager(_arg1:DisplayObjectContainer){
  3828. activated = false;
  3829. calculateCandidates = true;
  3830. _showFocusIndicator = true;
  3831. _defaultButtonEnabled = true;
  3832. super();
  3833. focusableObjects = new Dictionary(true);
  3834. if (_arg1 != null){
  3835. _form = _arg1;
  3836. addFocusables(DisplayObject(_arg1));
  3837. _arg1.addEventListener(Event.ADDED, addedHandler);
  3838. _arg1.addEventListener(Event.REMOVED, removedHandler);
  3839. activate();
  3840. };
  3841. }
  3842. public function get showFocusIndicator():Boolean{
  3843. return (_showFocusIndicator);
  3844. }
  3845. private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{
  3846. var _local5:int;
  3847. var _local6:int;
  3848. var _local7:DisplayObject;
  3849. var _local8:IFocusManagerGroup;
  3850. var _local9:int;
  3851. var _local10:DisplayObject;
  3852. var _local11:IFocusManagerGroup;
  3853. _local5 = focusableCandidates.length;
  3854. _local6 = _arg1;
  3855. while (true) {
  3856. if (_arg2){
  3857. _arg1--;
  3858. } else {
  3859. _arg1++;
  3860. };
  3861. if (_arg3){
  3862. if (((_arg2) && ((_arg1 < 0)))){
  3863. break;
  3864. };
  3865. if (((!(_arg2)) && ((_arg1 == _local5)))){
  3866. break;
  3867. };
  3868. } else {
  3869. _arg1 = ((_arg1 + _local5) % _local5);
  3870. if (_local6 == _arg1){
  3871. break;
  3872. };
  3873. };
  3874. if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){
  3875. _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1]));
  3876. if ((_local7 is IFocusManagerGroup)){
  3877. _local8 = IFocusManagerGroup(_local7);
  3878. _local9 = 0;
  3879. while (_local9 < focusableCandidates.length) {
  3880. _local10 = focusableCandidates[_local9];
  3881. if ((_local10 is IFocusManagerGroup)){
  3882. _local11 = IFocusManagerGroup(_local10);
  3883. if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){
  3884. _arg1 = _local9;
  3885. break;
  3886. };
  3887. };
  3888. _local9++;
  3889. };
  3890. };
  3891. return (_arg1);
  3892. };
  3893. };
  3894. return (_arg1);
  3895. }
  3896. public function set form(_arg1:DisplayObjectContainer):void{
  3897. _form = _arg1;
  3898. }
  3899. private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{
  3900. var focusable:* = null;
  3901. var io:* = null;
  3902. var doc:* = null;
  3903. var i:* = 0;
  3904. var child:* = null;
  3905. var o:* = _arg1;
  3906. var skipTopLevel:Boolean = _arg2;
  3907. if (!skipTopLevel){
  3908. if ((o is IFocusManagerComponent)){
  3909. focusable = IFocusManagerComponent(o);
  3910. if (focusable.focusEnabled){
  3911. if (((focusable.tabEnabled) && (isTabVisible(o)))){
  3912. focusableObjects[o] = true;
  3913. calculateCandidates = true;
  3914. };
  3915. o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
  3916. o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
  3917. };
  3918. } else {
  3919. if ((o is InteractiveObject)){
  3920. io = (o as InteractiveObject);
  3921. if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){
  3922. focusableObjects[io] = true;
  3923. calculateCandidates = true;
  3924. };
  3925. io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
  3926. io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
  3927. };
  3928. };
  3929. };
  3930. if ((o is DisplayObjectContainer)){
  3931. doc = DisplayObjectContainer(o);
  3932. o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
  3933. if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){
  3934. i = 0;
  3935. while (i < doc.numChildren) {
  3936. try {
  3937. child = doc.getChildAt(i);
  3938. if (child != null){
  3939. addFocusables(doc.getChildAt(i));
  3940. };
  3941. } catch(error:SecurityError) {
  3942. };
  3943. i = (i + 1);
  3944. };
  3945. };
  3946. };
  3947. }
  3948. private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{
  3949. return (_arg1.getChildIndex(_arg2));
  3950. }
  3951. private function mouseFocusChangeHandler(_arg1:FocusEvent):void{
  3952. if ((_arg1.relatedObject is TextField)){
  3953. return;
  3954. };
  3955. _arg1.preventDefault();
  3956. }
  3957. private function focusOutHandler(_arg1:FocusEvent):void{
  3958. var _local2:InteractiveObject;
  3959. _local2 = (_arg1.target as InteractiveObject);
  3960. }
  3961. private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{
  3962. var _local3:IFocusManagerGroup;
  3963. if (!isEnabledAndVisible(_arg1)){
  3964. return (false);
  3965. };
  3966. if ((_arg1 is IFocusManagerGroup)){
  3967. _local3 = IFocusManagerGroup(_arg1);
  3968. if (_arg2 == _local3.groupName){
  3969. return (false);
  3970. };
  3971. };
  3972. return (true);
  3973. }
  3974. public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{
  3975. var _local2:InteractiveObject;
  3976. _local2 = _arg1;
  3977. while (_arg1) {
  3978. if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){
  3979. return (_arg1);
  3980. };
  3981. _arg1 = _arg1.parent;
  3982. };
  3983. return (_local2);
  3984. }
  3985. private function sortFocusableObjectsTabIndex():void{
  3986. var _local1:Object;
  3987. var _local2:InteractiveObject;
  3988. focusableCandidates = [];
  3989. for (_local1 in focusableObjects) {
  3990. _local2 = InteractiveObject(_local1);
  3991. if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){
  3992. focusableCandidates.push(_local2);
  3993. };
  3994. };
  3995. focusableCandidates.sort(sortByTabIndex);
  3996. }
  3997. private function removeFocusables(_arg1:DisplayObject):void{
  3998. var _local2:Object;
  3999. var _local3:DisplayObject;
  4000. if ((_arg1 is DisplayObjectContainer)){
  4001. _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
  4002. _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
  4003. for (_local2 in focusableObjects) {
  4004. _local3 = DisplayObject(_local2);
  4005. if (DisplayObjectContainer(_arg1).contains(_local3)){
  4006. if (_local3 == lastFocus){
  4007. lastFocus = null;
  4008. };
  4009. _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
  4010. delete focusableObjects[_local2];
  4011. calculateCandidates = true;
  4012. };
  4013. };
  4014. };
  4015. }
  4016. private function addedHandler(_arg1:Event):void{
  4017. var _local2:DisplayObject;
  4018. _local2 = DisplayObject(_arg1.target);
  4019. if (_local2.stage){
  4020. addFocusables(DisplayObject(_arg1.target));
  4021. };
  4022. }
  4023. private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{
  4024. while (_arg1 != InteractiveObject(form)) {
  4025. if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){
  4026. return (_arg1);
  4027. };
  4028. _arg1 = _arg1.parent;
  4029. if (_arg1 == null){
  4030. break;
  4031. };
  4032. };
  4033. return (null);
  4034. }
  4035. private function tabChildrenChangeHandler(_arg1:Event):void{
  4036. var _local2:DisplayObjectContainer;
  4037. if (_arg1.target != _arg1.currentTarget){
  4038. return;
  4039. };
  4040. calculateCandidates = true;
  4041. _local2 = DisplayObjectContainer(_arg1.target);
  4042. if (_local2.tabChildren){
  4043. addFocusables(_local2, true);
  4044. } else {
  4045. removeFocusables(_local2);
  4046. };
  4047. }
  4048. public function sendDefaultButtonEvent():void{
  4049. defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
  4050. }
  4051. public function getFocus():InteractiveObject{
  4052. var _local1:InteractiveObject;
  4053. _local1 = form.stage.focus;
  4054. return (findFocusManagerComponent(_local1));
  4055. }
  4056. private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{
  4057. var _local2:DisplayObjectContainer;
  4058. var _local3:TextField;
  4059. var _local4:SimpleButton;
  4060. _local2 = DisplayObject(form).parent;
  4061. while (_arg1 != _local2) {
  4062. if ((_arg1 is UIComponent)){
  4063. if (!UIComponent(_arg1).enabled){
  4064. return (false);
  4065. };
  4066. } else {
  4067. if ((_arg1 is TextField)){
  4068. _local3 = TextField(_arg1);
  4069. if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){
  4070. return (false);
  4071. };
  4072. } else {
  4073. if ((_arg1 is SimpleButton)){
  4074. _local4 = SimpleButton(_arg1);
  4075. if (!_local4.enabled){
  4076. return (false);
  4077. };
  4078. };
  4079. };
  4080. };
  4081. if (!_arg1.visible){
  4082. return (false);
  4083. };
  4084. _arg1 = _arg1.parent;
  4085. };
  4086. return (true);
  4087. }
  4088. public function set defaultButton(_arg1:Button):void{
  4089. var _local2:Button;
  4090. _local2 = ((_arg1) ? Button(_arg1) : null);
  4091. if (_local2 != _defaultButton){
  4092. if (_defaultButton){
  4093. _defaultButton.emphasized = false;
  4094. };
  4095. if (defButton){
  4096. defButton.emphasized = false;
  4097. };
  4098. _defaultButton = _local2;
  4099. defButton = _local2;
  4100. if (_local2){
  4101. _local2.emphasized = true;
  4102. };
  4103. };
  4104. }
  4105. private function deactivateHandler(_arg1:Event):void{
  4106. var _local2:InteractiveObject;
  4107. _local2 = InteractiveObject(_arg1.target);
  4108. }
  4109. public function setFocus(_arg1:InteractiveObject):void{
  4110. if ((_arg1 is IFocusManagerComponent)){
  4111. IFocusManagerComponent(_arg1).setFocus();
  4112. } else {
  4113. form.stage.focus = _arg1;
  4114. };
  4115. }
  4116. private function setFocusToNextObject(_arg1:FocusEvent):void{
  4117. var _local2:InteractiveObject;
  4118. if (!hasFocusableObjects()){
  4119. return;
  4120. };
  4121. _local2 = getNextFocusManagerComponent(_arg1.shiftKey);
  4122. if (_local2){
  4123. setFocus(_local2);
  4124. };
  4125. }
  4126. private function hasFocusableObjects():Boolean{
  4127. var _local1:Object;
  4128. for (_local1 in focusableObjects) {
  4129. return (true);
  4130. };
  4131. return (false);
  4132. }
  4133. private function tabIndexChangeHandler(_arg1:Event):void{
  4134. calculateCandidates = true;
  4135. }
  4136. private function sortFocusableObjects():void{
  4137. var _local1:Object;
  4138. var _local2:InteractiveObject;
  4139. focusableCandidates = [];
  4140. for (_local1 in focusableObjects) {
  4141. _local2 = InteractiveObject(_local1);
  4142. if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){
  4143. sortFocusableObjectsTabIndex();
  4144. return;
  4145. };
  4146. focusableCandidates.push(_local2);
  4147. };
  4148. focusableCandidates.sort(sortByDepth);
  4149. }
  4150. private function keyFocusChangeHandler(_arg1:FocusEvent):void{
  4151. showFocusIndicator = true;
  4152. if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){
  4153. setFocusToNextObject(_arg1);
  4154. _arg1.preventDefault();
  4155. };
  4156. }
  4157. private function getIndexOfFocusedObject(_arg1:DisplayObject):int{
  4158. var _local2:int;
  4159. var _local3:int;
  4160. _local2 = focusableCandidates.length;
  4161. _local3 = 0;
  4162. _local3 = 0;
  4163. while (_local3 < _local2) {
  4164. if (focusableCandidates[_local3] == _arg1){
  4165. return (_local3);
  4166. };
  4167. _local3++;
  4168. };
  4169. return (-1);
  4170. }
  4171. public function hideFocus():void{
  4172. }
  4173. private function removedHandler(_arg1:Event):void{
  4174. var _local2:int;
  4175. var _local3:DisplayObject;
  4176. var _local4:InteractiveObject;
  4177. _local3 = DisplayObject(_arg1.target);
  4178. if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){
  4179. if (_local3 == lastFocus){
  4180. IFocusManagerComponent(lastFocus).drawFocus(false);
  4181. lastFocus = null;
  4182. };
  4183. _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
  4184. delete focusableObjects[_local3];
  4185. calculateCandidates = true;
  4186. } else {
  4187. if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){
  4188. _local4 = (_local3 as InteractiveObject);
  4189. if (_local4){
  4190. if (_local4 == lastFocus){
  4191. lastFocus = null;
  4192. };
  4193. delete focusableObjects[_local4];
  4194. calculateCandidates = true;
  4195. };
  4196. _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
  4197. };
  4198. };
  4199. removeFocusables(_local3);
  4200. }
  4201. private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{
  4202. var _local3:String;
  4203. var _local4:String;
  4204. var _local5:int;
  4205. var _local6:String;
  4206. var _local7:String;
  4207. var _local8:String;
  4208. var _local9:DisplayObject;
  4209. var _local10:DisplayObject;
  4210. _local3 = "";
  4211. _local4 = "";
  4212. _local8 = "0000";
  4213. _local9 = DisplayObject(_arg1);
  4214. _local10 = DisplayObject(_arg2);
  4215. while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) {
  4216. _local5 = getChildIndex(_local9.parent, _local9);
  4217. _local6 = _local5.toString(16);
  4218. if (_local6.length < 4){
  4219. _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
  4220. };
  4221. _local3 = (_local7 + _local3);
  4222. _local9 = _local9.parent;
  4223. };
  4224. while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) {
  4225. _local5 = getChildIndex(_local10.parent, _local10);
  4226. _local6 = _local5.toString(16);
  4227. if (_local6.length < 4){
  4228. _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
  4229. };
  4230. _local4 = (_local7 + _local4);
  4231. _local10 = _local10.parent;
  4232. };
  4233. return ((((_local3 > _local4)) ? 1 : (((_local3 < _local4)) ? -1 : 0)));
  4234. }
  4235. public function get defaultButton():Button{
  4236. return (_defaultButton);
  4237. }
  4238. private function activateHandler(_arg1:Event):void{
  4239. var _local2:InteractiveObject;
  4240. _local2 = InteractiveObject(_arg1.target);
  4241. if (lastFocus){
  4242. if ((lastFocus is IFocusManagerComponent)){
  4243. IFocusManagerComponent(lastFocus).setFocus();
  4244. } else {
  4245. form.stage.focus = lastFocus;
  4246. };
  4247. };
  4248. lastAction = "ACTIVATE";
  4249. }
  4250. public function showFocus():void{
  4251. }
  4252. public function set defaultButtonEnabled(_arg1:Boolean):void{
  4253. _defaultButtonEnabled = _arg1;
  4254. }
  4255. public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{
  4256. var _local2:DisplayObject;
  4257. var _local3:String;
  4258. var _local4:int;
  4259. var _local5:Boolean;
  4260. var _local6:int;
  4261. var _local7:int;
  4262. var _local8:IFocusManagerGroup;
  4263. if (!hasFocusableObjects()){
  4264. return (null);
  4265. };
  4266. if (calculateCandidates){
  4267. sortFocusableObjects();
  4268. calculateCandidates = false;
  4269. };
  4270. _local2 = form.stage.focus;
  4271. _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2)));
  4272. _local3 = "";
  4273. if ((_local2 is IFocusManagerGroup)){
  4274. _local8 = IFocusManagerGroup(_local2);
  4275. _local3 = _local8.groupName;
  4276. };
  4277. _local4 = getIndexOfFocusedObject(_local2);
  4278. _local5 = false;
  4279. _local6 = _local4;
  4280. if (_local4 == -1){
  4281. if (_arg1){
  4282. _local4 = focusableCandidates.length;
  4283. };
  4284. _local5 = true;
  4285. };
  4286. _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3);
  4287. return (findFocusManagerComponent(focusableCandidates[_local7]));
  4288. }
  4289. private function mouseDownHandler(_arg1:MouseEvent):void{
  4290. var _local2:InteractiveObject;
  4291. if (_arg1.isDefaultPrevented()){
  4292. return;
  4293. };
  4294. _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target));
  4295. if (!_local2){
  4296. return;
  4297. };
  4298. showFocusIndicator = false;
  4299. if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){
  4300. setFocus(_local2);
  4301. };
  4302. lastAction = "MOUSEDOWN";
  4303. }
  4304. private function isTabVisible(_arg1:DisplayObject):Boolean{
  4305. var _local2:DisplayObjectContainer;
  4306. _local2 = _arg1.parent;
  4307. while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) {
  4308. if (!_local2.tabChildren){
  4309. return (false);
  4310. };
  4311. _local2 = _local2.parent;
  4312. };
  4313. return (true);
  4314. }
  4315. public function get nextTabIndex():int{
  4316. return (0);
  4317. }
  4318. private function keyDownHandler(_arg1:KeyboardEvent):void{
  4319. if (_arg1.keyCode == Keyboard.TAB){
  4320. lastAction = "KEY";
  4321. if (calculateCandidates){
  4322. sortFocusableObjects();
  4323. calculateCandidates = false;
  4324. };
  4325. };
  4326. if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){
  4327. sendDefaultButtonEvent();
  4328. };
  4329. }
  4330. private function focusInHandler(_arg1:FocusEvent):void{
  4331. var _local2:InteractiveObject;
  4332. var _local3:Button;
  4333. _local2 = InteractiveObject(_arg1.target);
  4334. if (form.contains(_local2)){
  4335. lastFocus = findFocusManagerComponent(InteractiveObject(_local2));
  4336. if ((lastFocus is Button)){
  4337. _local3 = Button(lastFocus);
  4338. if (defButton){
  4339. defButton.emphasized = false;
  4340. defButton = _local3;
  4341. _local3.emphasized = true;
  4342. };
  4343. } else {
  4344. if (((defButton) && (!((defButton == _defaultButton))))){
  4345. defButton.emphasized = false;
  4346. defButton = _defaultButton;
  4347. _defaultButton.emphasized = true;
  4348. };
  4349. };
  4350. };
  4351. }
  4352. private function tabEnabledChangeHandler(_arg1:Event):void{
  4353. var _local2:InteractiveObject;
  4354. var _local3:Boolean;
  4355. calculateCandidates = true;
  4356. _local2 = InteractiveObject(_arg1.target);
  4357. _local3 = (focusableObjects[_local2] == true);
  4358. if (_local2.tabEnabled){
  4359. if (((!(_local3)) && (isTabVisible(_local2)))){
  4360. if (!(_local2 is IFocusManagerComponent)){
  4361. _local2.focusRect = false;
  4362. };
  4363. focusableObjects[_local2] = true;
  4364. };
  4365. } else {
  4366. if (_local3){
  4367. delete focusableObjects[_local2];
  4368. };
  4369. };
  4370. }
  4371. public function set showFocusIndicator(_arg1:Boolean):void{
  4372. _showFocusIndicator = _arg1;
  4373. }
  4374. public function get form():DisplayObjectContainer{
  4375. return (_form);
  4376. }
  4377. private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{
  4378. return ((((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : (((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2))));
  4379. }
  4380. public function activate():void{
  4381. if (activated){
  4382. return;
  4383. };
  4384. form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true);
  4385. form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true);
  4386. form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
  4387. form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
  4388. form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true);
  4389. form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
  4390. form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
  4391. form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
  4392. activated = true;
  4393. if (lastFocus){
  4394. setFocus(lastFocus);
  4395. };
  4396. }
  4397. public function deactivate():void{
  4398. form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);
  4399. form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
  4400. form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
  4401. form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
  4402. form.stage.removeEventListener(Event.ACTIVATE, activateHandler);
  4403. form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler);
  4404. form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
  4405. form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
  4406. activated = false;
  4407. }
  4408. public function get defaultButtonEnabled():Boolean{
  4409. return (_defaultButtonEnabled);
  4410. }
  4411.  
  4412. }
  4413. }//package fl.managers
  4414. package fl.events {
  4415. import flash.events.*;
  4416.  
  4417. public class ComponentEvent extends Event {
  4418.  
  4419. public static const HIDE:String = "hide";
  4420. public static const BUTTON_DOWN:String = "buttonDown";
  4421. public static const MOVE:String = "move";
  4422. public static const RESIZE:String = "resize";
  4423. public static const ENTER:String = "enter";
  4424. public static const LABEL_CHANGE:String = "labelChange";
  4425. public static const SHOW:String = "show";
  4426.  
  4427. public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
  4428. super(_arg1, _arg2, _arg3);
  4429. }
  4430. override public function toString():String{
  4431. return (formatToString("ComponentEvent", "type", "bubbles", "cancelable"));
  4432. }
  4433. override public function clone():Event{
  4434. return (new ComponentEvent(type, bubbles, cancelable));
  4435. }
  4436.  
  4437. }
  4438. }//package fl.events
  4439. package com.adobe.serialization.json {
  4440.  
  4441. public class JSONToken {
  4442.  
  4443. private var _value:Object;
  4444. private var _type:int;
  4445.  
  4446. public function JSONToken(_arg1:int=-1, _arg2:Object=null){
  4447. _type = _arg1;
  4448. _value = _arg2;
  4449. }
  4450. public function set value(_arg1:Object):void{
  4451. _value = _arg1;
  4452. }
  4453. public function get value():Object{
  4454. return (_value);
  4455. }
  4456. public function set type(_arg1:int):void{
  4457. _type = _arg1;
  4458. }
  4459. public function get type():int{
  4460. return (_type);
  4461. }
  4462.  
  4463. }
  4464. }//package com.adobe.serialization.json
  4465. package com.adobe.serialization.json {
  4466. import flash.utils.*;
  4467.  
  4468. public class JSONEncoder {
  4469.  
  4470. private var jsonString:String;
  4471.  
  4472. public function JSONEncoder(_arg1){
  4473. jsonString = convertToString(_arg1);
  4474. }
  4475. private function arrayToString(_arg1:Array):String{
  4476. var _local2:String;
  4477. var _local3:int;
  4478. _local2 = "";
  4479. _local3 = 0;
  4480. while (_local3 < _arg1.length) {
  4481. if (_local2.length > 0){
  4482. _local2 = (_local2 + ",");
  4483. };
  4484. _local2 = (_local2 + convertToString(_arg1[_local3]));
  4485. _local3++;
  4486. };
  4487. return ((("[" + _local2) + "]"));
  4488. }
  4489. private function convertToString(_arg1):String{
  4490. if ((_arg1 is String)){
  4491. return (escapeString((_arg1 as String)));
  4492. };
  4493. if ((_arg1 is Number)){
  4494. return (((isFinite((_arg1 as Number))) ? _arg1.toString() : "null"));
  4495. };
  4496. if ((_arg1 is Boolean)){
  4497. return (((_arg1) ? "true" : "false"));
  4498. };
  4499. if ((_arg1 is Array)){
  4500. return (arrayToString((_arg1 as Array)));
  4501. };
  4502. if ((((_arg1 is Object)) && (!((_arg1 == null))))){
  4503. return (objectToString(_arg1));
  4504. };
  4505. return ("null");
  4506. }
  4507. private function escapeString(_arg1:String):String{
  4508. var _local2:String;
  4509. var _local3:String;
  4510. var _local4:Number;
  4511. var _local5:int;
  4512. var _local6:String;
  4513. var _local7:String;
  4514. _local2 = "";
  4515. _local4 = _arg1.length;
  4516. _local5 = 0;
  4517. while (_local5 < _local4) {
  4518. _local3 = _arg1.charAt(_local5);
  4519. switch (_local3){
  4520. case "\"":
  4521. _local2 = (_local2 + "\\\"");
  4522. break;
  4523. case "\\":
  4524. _local2 = (_local2 + "\\\\");
  4525. break;
  4526. case "\b":
  4527. _local2 = (_local2 + "\\b");
  4528. break;
  4529. case "\f":
  4530. _local2 = (_local2 + "\\f");
  4531. break;
  4532. case "\n":
  4533. _local2 = (_local2 + "\\n");
  4534. break;
  4535. case "\r":
  4536. _local2 = (_local2 + "\\r");
  4537. break;
  4538. case "\t":
  4539. _local2 = (_local2 + "\\t");
  4540. break;
  4541. default:
  4542. if (_local3 < " "){
  4543. _local6 = _local3.charCodeAt(0).toString(16);
  4544. _local7 = (((_local6.length == 2)) ? "00" : "000");
  4545. _local2 = (_local2 + (("\\u" + _local7) + _local6));
  4546. } else {
  4547. _local2 = (_local2 + _local3);
  4548. };
  4549. };
  4550. _local5++;
  4551. };
  4552. return ((("\"" + _local2) + "\""));
  4553. }
  4554. private function objectToString(_arg1:Object):String{
  4555. var s:* = null;
  4556. var classInfo:* = null;
  4557. var value:* = null;
  4558. var key:* = null;
  4559. var v:* = null;
  4560. var o:* = _arg1;
  4561. s = "";
  4562. classInfo = describeType(o);
  4563. if (classInfo.@name.toString() == "Object"){
  4564. for (key in o) {
  4565. value = o[key];
  4566. if ((value is Function)){
  4567. } else {
  4568. if (s.length > 0){
  4569. s = (s + ",");
  4570. };
  4571. s = (s + ((escapeString(key) + ":") + convertToString(value)));
  4572. };
  4573. };
  4574. } else {
  4575. for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) {
  4576. if (s.length > 0){
  4577. s = (s + ",");
  4578. };
  4579. s = (s + ((escapeString(v.@name.toString()) + ":") + convertToString(o[v.@name])));
  4580. };
  4581. };
  4582. return ((("{" + s) + "}"));
  4583. }
  4584. public function getString():String{
  4585. return (jsonString);
  4586. }
  4587.  
  4588. }
  4589. }//package com.adobe.serialization.json
  4590. package com.adobe.serialization.json {
  4591.  
  4592. public class JSONParseError extends Error {
  4593.  
  4594. private var _text:String;
  4595. private var _location:int;
  4596.  
  4597. public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){
  4598. super(_arg1);
  4599. _location = _arg2;
  4600. _text = _arg3;
  4601. }
  4602. public function get text():String{
  4603. return (_text);
  4604. }
  4605. public function get location():int{
  4606. return (_location);
  4607. }
  4608.  
  4609. }
  4610. }//package com.adobe.serialization.json
  4611. package com.adobe.serialization.json {
  4612.  
  4613. public class JSONTokenizer {
  4614.  
  4615. private var loc:int;
  4616. private var ch:String;
  4617. private var obj:Object;
  4618. private var jsonString:String;
  4619.  
  4620. public function JSONTokenizer(_arg1:String){
  4621. jsonString = _arg1;
  4622. loc = 0;
  4623. nextChar();
  4624. }
  4625. private function skipComments():void{
  4626. if (ch == "/"){
  4627. nextChar();
  4628. switch (ch){
  4629. case "/":
  4630. do {
  4631. nextChar();
  4632. } while (((!((ch == "\n"))) && (!((ch == "")))));
  4633. nextChar();
  4634. break;
  4635. case "*":
  4636. nextChar();
  4637. while (true) {
  4638. if (ch == "*"){
  4639. nextChar();
  4640. if (ch == "/"){
  4641. nextChar();
  4642. break;
  4643. };
  4644. } else {
  4645. nextChar();
  4646. };
  4647. if (ch == ""){
  4648. parseError("Multi-line comment not closed");
  4649. };
  4650. };
  4651. break;
  4652. default:
  4653. parseError((("Unexpected " + ch) + " encountered (expecting '/' or '*' )"));
  4654. };
  4655. };
  4656. }
  4657. private function isDigit(_arg1:String):Boolean{
  4658. return ((((_arg1 >= "0")) && ((_arg1 <= "9"))));
  4659. }
  4660. private function readNumber():JSONToken{
  4661. var _local1:JSONToken;
  4662. var _local2:String;
  4663. var _local3:Number;
  4664. _local1 = new JSONToken();
  4665. _local1.type = JSONTokenType.NUMBER;
  4666. _local2 = "";
  4667. if (ch == "-"){
  4668. _local2 = (_local2 + "-");
  4669. nextChar();
  4670. };
  4671. if (!isDigit(ch)){
  4672. parseError("Expecting a digit");
  4673. };
  4674. if (ch == "0"){
  4675. _local2 = (_local2 + ch);
  4676. nextChar();
  4677. if (isDigit(ch)){
  4678. parseError("A digit cannot immediately follow 0");
  4679. };
  4680. } else {
  4681. while (isDigit(ch)) {
  4682. _local2 = (_local2 + ch);
  4683. nextChar();
  4684. };
  4685. };
  4686. if (ch == "."){
  4687. _local2 = (_local2 + ".");
  4688. nextChar();
  4689. if (!isDigit(ch)){
  4690. parseError("Expecting a digit");
  4691. };
  4692. while (isDigit(ch)) {
  4693. _local2 = (_local2 + ch);
  4694. nextChar();
  4695. };
  4696. };
  4697. if ((((ch == "e")) || ((ch == "E")))){
  4698. _local2 = (_local2 + "e");
  4699. nextChar();
  4700. if ((((ch == "+")) || ((ch == "-")))){
  4701. _local2 = (_local2 + ch);
  4702. nextChar();
  4703. };
  4704. if (!isDigit(ch)){
  4705. parseError("Scientific notation number needs exponent value");
  4706. };
  4707. while (isDigit(ch)) {
  4708. _local2 = (_local2 + ch);
  4709. nextChar();
  4710. };
  4711. };
  4712. _local3 = Number(_local2);
  4713. if (((isFinite(_local3)) && (!(isNaN(_local3))))){
  4714. _local1.value = _local3;
  4715. return (_local1);
  4716. };
  4717. parseError((("Number " + _local3) + " is not valid!"));
  4718. return (null);
  4719. }
  4720. private function nextChar():String{
  4721. return ((ch = jsonString.charAt(loc++)));
  4722. }
  4723. public function getNextToken():JSONToken{
  4724. var _local1:JSONToken;
  4725. var _local2:String;
  4726. var _local3:String;
  4727. var _local4:String;
  4728. _local1 = new JSONToken();
  4729. skipIgnored();
  4730. switch (ch){
  4731. case "{":
  4732. _local1.type = JSONTokenType.LEFT_BRACE;
  4733. _local1.value = "{";
  4734. nextChar();
  4735. break;
  4736. case "}":
  4737. _local1.type = JSONTokenType.RIGHT_BRACE;
  4738. _local1.value = "}";
  4739. nextChar();
  4740. break;
  4741. case "[":
  4742. _local1.type = JSONTokenType.LEFT_BRACKET;
  4743. _local1.value = "[";
  4744. nextChar();
  4745. break;
  4746. case "]":
  4747. _local1.type = JSONTokenType.RIGHT_BRACKET;
  4748. _local1.value = "]";
  4749. nextChar();
  4750. break;
  4751. case ",":
  4752. _local1.type = JSONTokenType.COMMA;
  4753. _local1.value = ",";
  4754. nextChar();
  4755. break;
  4756. case ":":
  4757. _local1.type = JSONTokenType.COLON;
  4758. _local1.value = ":";
  4759. nextChar();
  4760. break;
  4761. case "t":
  4762. _local2 = ((("t" + nextChar()) + nextChar()) + nextChar());
  4763. if (_local2 == "true"){
  4764. _local1.type = JSONTokenType.TRUE;
  4765. _local1.value = true;
  4766. nextChar();
  4767. } else {
  4768. parseError(("Expecting 'true' but found " + _local2));
  4769. };
  4770. break;
  4771. case "f":
  4772. _local3 = (((("f" + nextChar()) + nextChar()) + nextChar()) + nextChar());
  4773. if (_local3 == "false"){
  4774. _local1.type = JSONTokenType.FALSE;
  4775. _local1.value = false;
  4776. nextChar();
  4777. } else {
  4778. parseError(("Expecting 'false' but found " + _local3));
  4779. };
  4780. break;
  4781. case "n":
  4782. _local4 = ((("n" + nextChar()) + nextChar()) + nextChar());
  4783. if (_local4 == "null"){
  4784. _local1.type = JSONTokenType.NULL;
  4785. _local1.value = null;
  4786. nextChar();
  4787. } else {
  4788. parseError(("Expecting 'null' but found " + _local4));
  4789. };
  4790. break;
  4791. case "\"":
  4792. _local1 = readString();
  4793. break;
  4794. default:
  4795. if (((isDigit(ch)) || ((ch == "-")))){
  4796. _local1 = readNumber();
  4797. } else {
  4798. if (ch == ""){
  4799. return (null);
  4800. };
  4801. parseError((("Unexpected " + ch) + " encountered"));
  4802. };
  4803. };
  4804. return (_local1);
  4805. }
  4806. private function skipWhite():void{
  4807. while (isWhiteSpace(ch)) {
  4808. nextChar();
  4809. };
  4810. }
  4811. private function isWhiteSpace(_arg1:String):Boolean{
  4812. return ((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n"))));
  4813. }
  4814. public function parseError(_arg1:String):void{
  4815. throw (new JSONParseError(_arg1, loc, jsonString));
  4816. }
  4817. private function skipIgnored():void{
  4818. skipWhite();
  4819. skipComments();
  4820. skipWhite();
  4821. }
  4822. private function isHexDigit(_arg1:String):Boolean{
  4823. var _local2:String;
  4824. _local2 = _arg1.toUpperCase();
  4825. return (((isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F"))))));
  4826. }
  4827. private function readString():JSONToken{
  4828. var _local1:JSONToken;
  4829. var _local2:String;
  4830. var _local3:String;
  4831. var _local4:int;
  4832. _local1 = new JSONToken();
  4833. _local1.type = JSONTokenType.STRING;
  4834. _local2 = "";
  4835. nextChar();
  4836. while (((!((ch == "\""))) && (!((ch == ""))))) {
  4837. if (ch == "\\"){
  4838. nextChar();
  4839. switch (ch){
  4840. case "\"":
  4841. _local2 = (_local2 + "\"");
  4842. break;
  4843. case "/":
  4844. _local2 = (_local2 + "/");
  4845. break;
  4846. case "\\":
  4847. _local2 = (_local2 + "\\");
  4848. break;
  4849. case "b":
  4850. _local2 = (_local2 + "\b");
  4851. break;
  4852. case "f":
  4853. _local2 = (_local2 + "\f");
  4854. break;
  4855. case "n":
  4856. _local2 = (_local2 + "\n");
  4857. break;
  4858. case "r":
  4859. _local2 = (_local2 + "\r");
  4860. break;
  4861. case "t":
  4862. _local2 = (_local2 + "\t");
  4863. break;
  4864. case "u":
  4865. _local3 = "";
  4866. _local4 = 0;
  4867. while (_local4 < 4) {
  4868. if (!isHexDigit(nextChar())){
  4869. parseError((" Excepted a hex digit, but found: " + ch));
  4870. };
  4871. _local3 = (_local3 + ch);
  4872. _local4++;
  4873. };
  4874. _local2 = (_local2 + String.fromCharCode(parseInt(_local3, 16)));
  4875. break;
  4876. default:
  4877. _local2 = (_local2 + ("\\" + ch));
  4878. };
  4879. } else {
  4880. _local2 = (_local2 + ch);
  4881. };
  4882. nextChar();
  4883. };
  4884. if (ch == ""){
  4885. parseError("Unterminated string literal");
  4886. };
  4887. nextChar();
  4888. _local1.value = _local2;
  4889. return (_local1);
  4890. }
  4891.  
  4892. }
  4893. }//package com.adobe.serialization.json
  4894. package com.adobe.serialization.json {
  4895.  
  4896. public class JSONTokenType {
  4897.  
  4898. public static const NUMBER:int = 11;
  4899. public static const FALSE:int = 8;
  4900. public static const RIGHT_BRACKET:int = 4;
  4901. public static const NULL:int = 9;
  4902. public static const TRUE:int = 7;
  4903. public static const RIGHT_BRACE:int = 2;
  4904. public static const UNKNOWN:int = -1;
  4905. public static const COMMA:int = 0;
  4906. public static const LEFT_BRACKET:int = 3;
  4907. public static const STRING:int = 10;
  4908. public static const LEFT_BRACE:int = 1;
  4909. public static const COLON:int = 6;
  4910.  
  4911. }
  4912. }//package com.adobe.serialization.json
  4913. package com.adobe.serialization.json {
  4914.  
  4915. public class JSONDecoder {
  4916.  
  4917. private var value;
  4918. private var tokenizer:JSONTokenizer;
  4919. private var token:JSONToken;
  4920.  
  4921. public function JSONDecoder(_arg1:String){
  4922. tokenizer = new JSONTokenizer(_arg1);
  4923. nextToken();
  4924. value = parseValue();
  4925. }
  4926. private function nextToken():JSONToken{
  4927. return ((token = tokenizer.getNextToken()));
  4928. }
  4929. private function parseObject():Object{
  4930. var _local1:Object;
  4931. var _local2:String;
  4932. _local1 = new Object();
  4933. nextToken();
  4934. if (token.type == JSONTokenType.RIGHT_BRACE){
  4935. return (_local1);
  4936. };
  4937. if (token.type == JSONTokenType.STRING){
  4938. _local2 = String(token.value);
  4939. nextToken();
  4940. if (token.type == JSONTokenType.COLON){
  4941. nextToken();
  4942. _local1[_local2] = parseValue();
  4943. nextToken();
  4944. if (token.type == JSONTokenType.RIGHT_BRACE){
  4945. return (_local1);
  4946. };
  4947. if (token.type == JSONTokenType.COMMA){
  4948. nextToken();
  4949. } else {
  4950. tokenizer.parseError(("Expecting } or , but found " + token.value));
  4951. };
  4952. } else {
  4953. tokenizer.parseError(("Expecting : but found " + token.value));
  4954. };
  4955. } else {
  4956. tokenizer.parseError(("Expecting string but found " + token.value));
  4957. };
  4958. //unresolved jump
  4959. }
  4960. private function parseArray():Array{
  4961. var _local1:Array;
  4962. _local1 = new Array();
  4963. nextToken();
  4964. if (token.type == JSONTokenType.RIGHT_BRACKET){
  4965. return (_local1);
  4966. };
  4967. _local1.push(parseValue());
  4968. nextToken();
  4969. if (token.type == JSONTokenType.RIGHT_BRACKET){
  4970. return (_local1);
  4971. };
  4972. if (token.type == JSONTokenType.COMMA){
  4973. nextToken();
  4974. } else {
  4975. tokenizer.parseError(("Expecting ] or , but found " + token.value));
  4976. };
  4977. //unresolved jump
  4978. }
  4979. public function getValue(){
  4980. return (value);
  4981. }
  4982. private function parseValue():Object{
  4983. switch (token.type){
  4984. case JSONTokenType.LEFT_BRACE:
  4985. return (parseObject());
  4986. case JSONTokenType.LEFT_BRACKET:
  4987. return (parseArray());
  4988. case JSONTokenType.STRING:
  4989. case JSONTokenType.NUMBER:
  4990. case JSONTokenType.TRUE:
  4991. case JSONTokenType.FALSE:
  4992. case JSONTokenType.NULL:
  4993. return (token.value);
  4994. default:
  4995. tokenizer.parseError(("Unexpected " + token.value));
  4996. };
  4997. return (null);
  4998. }
  4999.  
  5000. }
  5001. }//package com.adobe.serialization.json
  5002. package com.adobe.serialization.json {
  5003.  
  5004. public class JSON {
  5005.  
  5006. public static function decode(_arg1:String){
  5007. var _local2:JSONDecoder;
  5008. _local2 = new JSONDecoder(_arg1);
  5009. return (_local2.getValue());
  5010. }
  5011. public static function encode(_arg1:Object):String{
  5012. var _local2:JSONEncoder;
  5013. _local2 = new JSONEncoder(_arg1);
  5014. return (_local2.getString());
  5015. }
  5016.  
  5017. }
  5018. }//package com.adobe.serialization.json
  5019. package com.binweevils.utilities {
  5020. import flash.display.*;
  5021. import flash.events.*;
  5022. import flash.net.*;
  5023. import flash.system.*;
  5024.  
  5025. public class URLhandler {
  5026.  
  5027. private static var _basePathSmall:String;
  5028. private static var _loginPageURL:String;
  5029. private static var _autoBin:Boolean;
  5030. private static var _pathAssetsNest:String;
  5031. private static var _servicesLocation:String;
  5032. public static var LOCAL_TEST_MODE = true;
  5033. private static var _pathItemConfigs:String;
  5034. private static var _pathAssetsGarden:String;
  5035. private static var _basePathLarge:String;
  5036. private static var _userName:String;
  5037. private static var _pathAssetsTycoon:String;
  5038. private static var _pathAssets3D:String;
  5039. private static var _domain:String;
  5040.  
  5041. public static function set pathAssetsNest(_arg1:String):void{
  5042. _pathAssetsNest = _arg1;
  5043. }
  5044. public static function set pathItemConfigs(_arg1:String):void{
  5045. _pathItemConfigs = _arg1;
  5046. }
  5047. public static function get pathAssetsNest():String{
  5048. return (_pathAssetsNest);
  5049. }
  5050. public static function set domain(_arg1:String):void{
  5051. _domain = _arg1;
  5052. }
  5053. public static function set basePathLarge(_arg1:String):void{
  5054. _basePathLarge = _arg1;
  5055. }
  5056. public static function get basePathSmall():String{
  5057. return (_basePathSmall);
  5058. }
  5059. public static function gotoURL(_arg1:String, _arg2:String):void{
  5060. var _local3:String;
  5061. var _local4:URLRequest;
  5062. _arg1 = (((_domain + _arg1) + "?weevilname=") + _userName);
  5063. if (_arg2 == "popup"){
  5064. trace(("POPUP: " + _arg1));
  5065. _local3 = (("javascript:NewWindow=window.open('" + _arg1) + "','newWin','width=400,height=300,left=0,top=0,toolbar=No,location=No,scrollbars=No,status=No,resizable=No,fullscreen=No'); NewWindow.focus(); void(0);");
  5066. trace(("$url=" + _local3));
  5067. _local4 = new URLRequest(_local3);
  5068. navigateToURL(_local4);
  5069. } else {
  5070. _local3 = ("http://www." + _arg1);
  5071. _local4 = new URLRequest(_local3);
  5072. navigateToURL(_local4, _arg2);
  5073. };
  5074. }
  5075. public static function get pathAssets3D():String{
  5076. return (_pathAssets3D);
  5077. }
  5078. public static function set basePathSmall(_arg1:String):void{
  5079. _basePathSmall = _arg1;
  5080. }
  5081. public static function get servicesLocation():String{
  5082. return (_servicesLocation);
  5083. }
  5084. public static function set autoBin(_arg1:Boolean):void{
  5085. _autoBin = _arg1;
  5086. }
  5087. public static function set pathAssetsGarden(_arg1:String):void{
  5088. _pathAssetsGarden = _arg1;
  5089. }
  5090. public static function get loginPageURL():String{
  5091. return (_loginPageURL);
  5092. }
  5093. public static function get domain():String{
  5094. return (_domain);
  5095. }
  5096. public static function get basePathLarge():String{
  5097. return (_basePathLarge);
  5098. }
  5099. public static function get pathAssetsGarden():String{
  5100. return (_pathAssetsGarden);
  5101. }
  5102. public static function get autoBin():Boolean{
  5103. return (_autoBin);
  5104. }
  5105. public static function loadFromCDN(_arg1:Loader, _arg2:String, _arg3:Function, _arg4:Boolean=false):void{
  5106. var _local5:String;
  5107. var _local6:LoaderContext;
  5108. var _local7:URLRequest;
  5109. _local5 = basePathSmall;
  5110. if (_arg4){
  5111. _local5 = basePathLarge;
  5112. };
  5113. _local6 = new LoaderContext();
  5114. _local6.checkPolicyFile = true;
  5115. _local6.applicationDomain = ApplicationDomain.currentDomain;
  5116. _local6.securityDomain = SecurityDomain.currentDomain;
  5117. _local7 = new URLRequest((_local5 + _arg2));
  5118. _arg1.contentLoaderInfo.addEventListener(Event.COMPLETE, _arg3);
  5119. _arg1.load(_local7, _local6);
  5120. }
  5121. public static function set servicesLocation(_arg1:String):void{
  5122. _servicesLocation = _arg1;
  5123. }
  5124. public static function set userName(_arg1:String):void{
  5125. _userName = _arg1;
  5126. }
  5127. public static function set loginPageURL(_arg1:String):void{
  5128. _loginPageURL = _arg1;
  5129. }
  5130. public static function set pathAssetsTycoon(_arg1:String):void{
  5131. _pathAssetsTycoon = _arg1;
  5132. }
  5133. public static function set pathAssets3D(_arg1:String):void{
  5134. _pathAssets3D = _arg1;
  5135. }
  5136. public static function get pathAssetsTycoon():String{
  5137. return (_pathAssetsTycoon);
  5138. }
  5139. public static function get pathItemConfigs():String{
  5140. return (_pathItemConfigs);
  5141. }
  5142.  
  5143. }
  5144. }//package com.binweevils.utilities
  5145. package com.binweevils.utilities.remoting {
  5146. import flash.events.*;
  5147. import com.binweevils.utilities.events.*;
  5148. import flash.net.*;
  5149.  
  5150. public class RemotingEvents {
  5151.  
  5152. protected var m_service:NetConnection;
  5153. protected var m_eventBroadcaster:EventBroadcaster;
  5154. protected var m_netErrorfunc:Function;
  5155. protected var m_serviceName:String;
  5156. protected var m_serviceFailureObj:Object;
  5157.  
  5158. public function RemotingEvents(_arg1:String, _arg2:String, _arg3:Object=null, _arg4:Function=null){
  5159. m_eventBroadcaster = new EventBroadcaster();
  5160. m_serviceName = new String(_arg2);
  5161. m_service = new NetConnection();
  5162. m_netErrorfunc = _arg4;
  5163. m_serviceFailureObj = _arg3;
  5164. m_service.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
  5165. m_service.connect((_arg1 + "amfphp/gateway.php"));
  5166. }
  5167. protected function onFault(_arg1:Object){
  5168. trace(("There was a problem: " + _arg1.description));
  5169. }
  5170. protected function createServiceFunctionName(_arg1:String){
  5171. return (((m_serviceName + ".") + _arg1));
  5172. }
  5173. final public function addListener(_arg1:Object, _arg2:Function, _arg3:String, _arg4:Function):EventListenerObj{
  5174. return (m_eventBroadcaster.addListener(_arg1, _arg2, _arg3, _arg4));
  5175. }
  5176. final public function removeListener(_arg1:Object, _arg2:String){
  5177. m_eventBroadcaster.removeListener(_arg1, _arg2);
  5178. }
  5179. private function netStatusHandler(_arg1:NetStatusEvent):void{
  5180. var _local2:Boolean;
  5181. _local2 = false;
  5182. switch (_arg1.info.code){
  5183. case "NetConnection.Connect.Success":
  5184. trace("RemotingEvents::netStatusHandler connection successful");
  5185. break;
  5186. case "NetConnection.Connect.Failed":
  5187. trace("RemotingEvents::netStatusHandler connection failed");
  5188. _local2 = true;
  5189. break;
  5190. case "NetConnection.Connect.Rejected":
  5191. trace("RemotingEvents::netStatusHandler connection rejected");
  5192. _local2 = true;
  5193. break;
  5194. case "NetConnection.Connect.InvalidApp":
  5195. trace("RemotingEvents::netStatusHandler The application name specified during connect is invalid");
  5196. _local2 = true;
  5197. break;
  5198. case "NetConnection.Call.Failed":
  5199. trace("RemotingEvents::netStatusHandler Error opening URL");
  5200. _local2 = true;
  5201. break;
  5202. default:
  5203. trace(_arg1.info.code);
  5204. };
  5205. if (((((_local2) && (!((m_netErrorfunc == null))))) && (!((m_serviceFailureObj == null))))){
  5206. m_netErrorfunc.apply(m_serviceFailureObj);
  5207. };
  5208. }
  5209. final protected function createResponder(_arg1:Function, _arg2:Object, _arg3:String):Responder{
  5210. var _local4:EventListenerObj;
  5211. var _local5:Function;
  5212. _local4 = m_eventBroadcaster.getEventListenerObject(_arg2, _arg3);
  5213. if (_local4){
  5214. if (_local4.faultFunc == null){
  5215. _local5 = onFault;
  5216. } else {
  5217. _local5 = _local4.faultFunc;
  5218. };
  5219. } else {
  5220. _local5 = onFault;
  5221. };
  5222. return (new Responder(_arg1, _local5));
  5223. }
  5224.  
  5225. }
  5226. }//package com.binweevils.utilities.remoting
  5227. package com.binweevils.utilities.events {
  5228.  
  5229. public class EventBroadcaster {
  5230.  
  5231. private var m_listeners:Array;
  5232.  
  5233. public function EventBroadcaster(){
  5234. m_listeners = new Array();
  5235. }
  5236. private function createListener(_arg1:Object, _arg2:Function, _arg3:String, _arg4=null){
  5237. return (new EventListenerObj(_arg1, _arg2, _arg3, _arg4));
  5238. }
  5239. public function addListener(_arg1:Object, _arg2:Function, _arg3:String, _arg4=null):EventListenerObj{
  5240. var _local5:EventListenerObj;
  5241. removeListener(_arg1, _arg3);
  5242. _local5 = createListener(_arg1, _arg2, _arg3, _arg4);
  5243. m_listeners.push(_local5);
  5244. return (_local5);
  5245. }
  5246. public function removeListener(_arg1:Object, _arg2:String):void{
  5247. var _local3:uint;
  5248. var _local4:int;
  5249. if (m_listeners.length > 0){
  5250. trace(m_listeners.length);
  5251. _local3 = (m_listeners.length - 1);
  5252. _local4 = _local3;
  5253. while (_local4 >= 0) {
  5254. if ((((m_listeners[_local4].eventName == _arg2)) && ((m_listeners[_local4].obj == _arg1)))){
  5255. trace("removing listener");
  5256. m_listeners.splice(_local4, 1);
  5257. };
  5258. _local4--;
  5259. };
  5260. trace(m_listeners.length);
  5261. };
  5262. }
  5263. public function broadcastEvent(_arg1:String, ... _args):void{
  5264. var _local3:uint;
  5265. var _local4:uint;
  5266. _local3 = m_listeners.length;
  5267. _local4 = 0;
  5268. while (_local4 < _local3) {
  5269. if (m_listeners[_local4].eventName == _arg1){
  5270. m_listeners[_local4].func.apply(m_listeners[_local4].obj, _args);
  5271. };
  5272. _local4++;
  5273. };
  5274. }
  5275. public function broadcastFaultEvent(_arg1:String, ... _args):void{
  5276. var _local3:uint;
  5277. var _local4:uint;
  5278. _local3 = m_listeners.length;
  5279. _local4 = 0;
  5280. while (_local4 < _local3) {
  5281. if (m_listeners[_local4].eventName == _arg1){
  5282. m_listeners[_local4].faultFunc.apply(m_listeners[_local4].obj, _args);
  5283. };
  5284. _local4++;
  5285. };
  5286. }
  5287. public function getEventListenerObject(_arg1:Object, _arg2:String){
  5288. var _local3:uint;
  5289. var _local4:uint;
  5290. _local3 = m_listeners.length;
  5291. _local4 = 0;
  5292. while (_local4 < _local3) {
  5293. if ((((m_listeners[_local4].obj == _arg1)) && ((m_listeners[_local4].eventName == _arg2)))){
  5294. return (m_listeners[_local4]);
  5295. };
  5296. _local4++;
  5297. };
  5298. }
  5299.  
  5300. }
  5301. }//package com.binweevils.utilities.events
  5302. package com.binweevils.utilities.events {
  5303.  
  5304. public class EventListenerObj {
  5305.  
  5306. private var m_listenerFaultFunc:Function;
  5307. private var m_listenerFunc:Function;
  5308. private var m_listenerObj:Object;
  5309. private var m_eventName:String;
  5310.  
  5311. public function EventListenerObj(_arg1:Object, _arg2:Function, _arg3:String, _arg4=null){
  5312. m_eventName = new String(_arg3);
  5313. m_listenerFunc = _arg2;
  5314. m_listenerObj = _arg1;
  5315. m_listenerFaultFunc = _arg4;
  5316. }
  5317. public function get func():Function{
  5318. return (m_listenerFunc);
  5319. }
  5320. public function get eventName():String{
  5321. return (m_eventName);
  5322. }
  5323. public function set func(_arg1:Function){
  5324. m_listenerFunc = _arg1;
  5325. }
  5326. public function set faultFunc(_arg1:Function){
  5327. m_listenerFaultFunc = _arg1;
  5328. }
  5329. public function get faultFunc():Function{
  5330. return (m_listenerFaultFunc);
  5331. }
  5332. public function set obj(_arg1:Object){
  5333. m_listenerObj = _arg1;
  5334. }
  5335. public function get obj():Object{
  5336. return (m_listenerObj);
  5337. }
  5338. public function set eventName(_arg1:String){
  5339. m_eventName = _arg1;
  5340. }
  5341.  
  5342. }
  5343. }//package com.binweevils.utilities.events
  5344. package com.binweevils.externalUIs {
  5345.  
  5346. public interface DraggableUI {
  5347.  
  5348. function terminate():void;
  5349.  
  5350. }
  5351. }//package com.binweevils.externalUIs
  5352. package com.binweevils.multiplayerGames.gameScores {
  5353. import com.binweevils.utilities.remoting.*;
  5354. import com.binweevils.utilities.*;
  5355.  
  5356. public class MultiplayerGameScoreService extends RemotingEvents {
  5357.  
  5358. public static var SUBMIT_PAIR_GAME_SCORE = "elo";
  5359. public static var GET_GAME_PAIR_SCORE_HISTORY = "ggpsh";
  5360. public static var GET_LEAGUE_TABLE = "glt";
  5361. public static var WIN = "win";
  5362. public static var SUBMIT_GAME_SCORE_COMMA_DELIM = "sgscd";
  5363. public static var DRAW = "draw";
  5364. public static var GET_GAME_PAIR_SCORE_INFO = "ggpsi";
  5365. public static var GET_USER_GAME_STATS = "gugs";
  5366.  
  5367. public function MultiplayerGameScoreService(_arg1:Object, _arg2:Function){
  5368. if ((((URLhandler.servicesLocation == null)) || ((URLhandler.servicesLocation == "")))){
  5369. URLhandler.servicesLocation = "http://dbuk.binweevils.com/";
  5370. };
  5371. super((URLhandler.servicesLocation + "php/"), "weevilservices.cWeevilMultiplayerGameScores", _arg1, _arg2);
  5372. }
  5373. public function getUserGameStatsResult(_arg1:Object){
  5374. trace("MultiplayerGameScoreService::getUserGameStatsResult");
  5375. m_eventBroadcaster.broadcastEvent(GET_USER_GAME_STATS, _arg1);
  5376. }
  5377. public function submitPairGameScoreResult(_arg1:Object){
  5378. trace("MultiplayerGameScoreService::submitPairGameScoreResult");
  5379. m_eventBroadcaster.broadcastEvent(SUBMIT_PAIR_GAME_SCORE, _arg1);
  5380. }
  5381. public function getUserGameStats(_arg1:Object, _arg2, _arg3){
  5382. m_service.call(getServiceName(GET_USER_GAME_STATS), createResponder(getUserGameStatsResult, _arg1, GET_USER_GAME_STATS), _arg2, _arg3);
  5383. }
  5384. public function getGamePairScoreInformation(_arg1:Object, _arg2:String, _arg3:String, _arg4:String){
  5385. m_service.call(getServiceName(GET_GAME_PAIR_SCORE_INFO), createResponder(getGamePairScoreInformationResult, _arg1, GET_GAME_PAIR_SCORE_INFO), _arg2, _arg3, _arg4);
  5386. }
  5387. public function submitPairGameScore(_arg1:Object, _arg2:String, _arg3:String, _arg4:int, _arg5:String="draw", _arg6:String=null){
  5388. m_service.call(getServiceName(SUBMIT_PAIR_GAME_SCORE), createResponder(submitPairGameScoreResult, _arg1, SUBMIT_PAIR_GAME_SCORE), _arg2, _arg3, _arg4, _arg5, _arg6);
  5389. }
  5390. public function getGamePairScoreHistoryResult(_arg1:Object){
  5391. trace("MultiplayerGameScoreService::getGamePairScoreHistoryResult");
  5392. m_eventBroadcaster.broadcastEvent(GET_GAME_PAIR_SCORE_HISTORY, _arg1);
  5393. }
  5394. public function getGamePairScoreHistory(_arg1:Object, _arg2:String, _arg3:String, _arg4:String){
  5395. m_service.call(getServiceName(GET_GAME_PAIR_SCORE_HISTORY), createResponder(getGamePairScoreHistoryResult, _arg1, GET_GAME_PAIR_SCORE_HISTORY), _arg2, _arg3, _arg4);
  5396. }
  5397. public function submitGameScoreCommaDelimListOfLoosersResult(_arg1:Object){
  5398. trace("MultiplayerGameScoreService::submitGameScoreCommaDelimListOfLoosersResult");
  5399. m_eventBroadcaster.broadcastEvent(SUBMIT_GAME_SCORE_COMMA_DELIM, _arg1);
  5400. }
  5401. public function submitGameScoreCommaDelimListOfLoosers(_arg1:Object, _arg2:int, _arg3:String, ... _args){
  5402. var _local5:String;
  5403. var _local6:int;
  5404. _local5 = new String();
  5405. _local6 = 0;
  5406. while (_local6 < _args.length) {
  5407. if (_local6 != (_args.length - 1)){
  5408. _local5 = (_local5 + (_args[_local6] + ","));
  5409. } else {
  5410. _local5 = (_local5 + _args[_local6]);
  5411. };
  5412. _local6++;
  5413. };
  5414. m_service.call(getServiceName(SUBMIT_GAME_SCORE_COMMA_DELIM), createResponder(submitGameScoreCommaDelimListOfLoosersResult, _arg1, SUBMIT_GAME_SCORE_COMMA_DELIM), _arg3, _local5, _arg2);
  5415. }
  5416. public function getLeagueTable(_arg1:Object, _arg2:String){
  5417. m_service.call(getServiceName(GET_LEAGUE_TABLE), createResponder(getLeagueTableResult, _arg1, GET_LEAGUE_TABLE), _arg2);
  5418. }
  5419. private function getServiceName(_arg1:String):String{
  5420. switch (_arg1){
  5421. case SUBMIT_PAIR_GAME_SCORE:
  5422. return (createServiceFunctionName("submitPairGameScore"));
  5423. case SUBMIT_GAME_SCORE_COMMA_DELIM:
  5424. return (createServiceFunctionName("submitGameScoreCommaDelimListOfLoosers"));
  5425. case GET_USER_GAME_STATS:
  5426. return (createServiceFunctionName("getUserGameStats"));
  5427. case GET_GAME_PAIR_SCORE_INFO:
  5428. return (createServiceFunctionName("getGamePairScoreInformation"));
  5429. case GET_GAME_PAIR_SCORE_HISTORY:
  5430. return (createServiceFunctionName("getGamePairHistory"));
  5431. case GET_LEAGUE_TABLE:
  5432. return (createServiceFunctionName("getLeagueTable"));
  5433. };
  5434. trace("WARNING no service found in MultiplayerGameScoreService::getServiceName()");
  5435. return ("");
  5436. }
  5437. public function getLeagueTableResult(_arg1:Object){
  5438. trace("MultiplayerGameScoreService::getLeagueTableResult");
  5439. m_eventBroadcaster.broadcastEvent(GET_LEAGUE_TABLE, _arg1);
  5440. }
  5441. public function getGamePairScoreInformationResult(_arg1:Object){
  5442. trace("MultiplayerGameScoreService::getGamePairScoreInformationResult");
  5443. m_eventBroadcaster.broadcastEvent(GET_GAME_PAIR_SCORE_INFO, _arg1);
  5444. }
  5445.  
  5446. }
  5447. }//package com.binweevils.multiplayerGames.gameScores
  5448. package com.binweevils.multiplayerGames {
  5449. import flash.display.*;
  5450. import flash.events.*;
  5451. import com.binweevils.*;
  5452. import flash.utils.*;
  5453. import com.binweevils.multiplayerGames.common.*;
  5454. import flash.media.*;
  5455. import flash.text.*;
  5456. import flash.errors.*;
  5457. import fl.transitions.easing.*;
  5458.  
  5459. public class mulch4 extends turnBasedMultiplayerGame {
  5460.  
  5461. private static const GRAVITY:Number = 3;
  5462. public static const WAITING_FOR_OTHER_PLAYER_TO_JOIN:String = "WFOPJ";
  5463.  
  5464. public var slot3:MovieClip;
  5465. public var slot4:MovieClip;
  5466. public var slot1:MovieClip;
  5467. private var m_animating:Boolean;
  5468. private var m_winningSlots:String;
  5469. private var m_userIDPlayer1:String;
  5470. public var btnVS:SimpleButton;
  5471. private var m_staleMateFound:Boolean;
  5472. private var m_currentTurnTargetRow:int;
  5473. private var m_userIDPlayer2:String;
  5474. public var pos_5_0:MovieClip;
  5475. public var pos_5_1:MovieClip;
  5476. public var pos_5_3:MovieClip;
  5477. public var pos_5_4:MovieClip;
  5478. public var pos_5_2:MovieClip;
  5479. public var pos_5_6:MovieClip;
  5480. public var pos_5_5:MovieClip;
  5481. private var m_winner:String;
  5482. private var m_animTimer:Timer;
  5483. public var pos_4_1:MovieClip;
  5484. public var joinGame_mc:MovieClip;
  5485. public var pos_4_3:MovieClip;
  5486. public var gameOver_mc:MovieClip;
  5487. public var pos_4_2:MovieClip;
  5488. public var pos_4_4:MovieClip;
  5489. public var contactingServer_mc:MovieClip;
  5490. public var pos_4_5:MovieClip;
  5491. private var m_origMulchPlacerY:int;
  5492. public var player2_txt:TextField;
  5493. public var pos_4_6:MovieClip;
  5494. private var m_rows:int;
  5495. public var pos_4_0:MovieClip;
  5496. public var player1Mark_mc:MovieClip;
  5497. public var pos_3_0:MovieClip;
  5498. public var pos_3_2:MovieClip;
  5499. public var pos_3_4:MovieClip;
  5500. public var pos_3_6:MovieClip;
  5501. public var pos_3_1:MovieClip;
  5502. public var pos_3_3:MovieClip;
  5503. public var pos_3_5:MovieClip;
  5504. public var mulchPlacer:MovieClip;
  5505. public var pos_2_3:MovieClip;
  5506. public var pos_2_5:MovieClip;
  5507. public var lowerPanel_spr:MovieClip;
  5508. public var pos_2_6:MovieClip;
  5509. public var pos_2_1:MovieClip;
  5510. public var pos_2_4:MovieClip;
  5511. public var pos_2_2:MovieClip;
  5512. public var pos_1_1:MovieClip;
  5513. public var player1_txt:TextField;
  5514. public var pos_1_4:MovieClip;
  5515. public var pos_1_6:MovieClip;
  5516. public var pos_1_5:MovieClip;
  5517. public var pos_1_2:MovieClip;
  5518. public var pos_1_3:MovieClip;
  5519. public var pos_2_0:MovieClip;
  5520. public var staleMate_mc:MovieClip;
  5521. public var pos_1_0:MovieClip;
  5522. private var m_targetY:int;
  5523. public var pos_0_0:MovieClip;
  5524. public var pos_0_1:MovieClip;
  5525. public var pos_0_2:MovieClip;
  5526. public var pos_0_6:MovieClip;
  5527. public var pos_0_4:MovieClip;
  5528. public var pos_0_5:MovieClip;
  5529. public var pos_0_3:MovieClip;
  5530. public var close_btn:MovieClip;
  5531. public var player2Mark_mc:MovieClip;
  5532. public var winner_mc:MovieClip;
  5533. private var m_cols:int;
  5534. private var m_winnerFound:Boolean;
  5535. public var confirmSpectator_mc:MovieClip;
  5536. private var m_currentTurnTargetCol:int;
  5537. private var m_slots:Array;
  5538. public var waitingForPlayer_mc:MovieClip;
  5539. public var slot0:MovieClip;
  5540. public var slot2:MovieClip;
  5541. public var slot5:MovieClip;
  5542. private var m_dirY:int;
  5543. public var slot6:MovieClip;
  5544.  
  5545. public function mulch4(){
  5546. super(1);
  5547. trace("mulch4: ctor");
  5548. addEventListeners();
  5549. m_origMulchPlacerY = mulchPlacer.y;
  5550. m_currentPlayersTurn = new String();
  5551. m_winner = new String();
  5552. m_cols = 7;
  5553. m_rows = 6;
  5554. m_gameTypeID = "mulch4";
  5555. close_btn.buttonMode = true;
  5556. joinGame_mc.btnYes.addEventListener(MouseEvent.MOUSE_UP, onStartGame, false, 0, true);
  5557. joinGame_mc.btnNo.addEventListener(MouseEvent.MOUSE_UP, onCloseGame, false, 0, true);
  5558. confirmSpectator_mc.btnYes.addEventListener(MouseEvent.MOUSE_UP, confirmSpectatorStatus, false, 0, true);
  5559. confirmSpectator_mc.btnNo.addEventListener(MouseEvent.MOUSE_UP, onCloseGame, false, 0, true);
  5560. close_btn.addEventListener(MouseEvent.MOUSE_UP, onCloseBtnClicked, false, 0, true);
  5561. initNewGame();
  5562. m_animTimer = new Timer(33);
  5563. m_animTimer.addEventListener(TimerEvent.TIMER, animateTweenStep, false, 0, true);
  5564. m_winningSlots = new String();
  5565. }
  5566. private function animateTweenStep(_arg1:Event){
  5567. var _local2:int;
  5568. m_dirY = (m_dirY + GRAVITY);
  5569. _local2 = (mulchPlacer.y + m_dirY);
  5570. mulchPlacer.y = (mulchPlacer.y + m_dirY);
  5571. if (_local2 >= m_targetY){
  5572. onMulchTweenAnimDone();
  5573. };
  5574. }
  5575. private function onMulchTweenAnimDone(){
  5576. var _local1:mulchblurp;
  5577. var _local2:SoundChannel;
  5578. var _local3:MovieClip;
  5579. m_animTimer.stop();
  5580. m_animating = false;
  5581. trace("*************TWEEN DONE***********************************");
  5582. _local1 = new mulchblurp();
  5583. _local2 = _local1.play();
  5584. mulchPlacer.visible = false;
  5585. mulchPlacer.y = m_origMulchPlacerY;
  5586. _local3 = MovieClip(getChildByName(((("pos_" + String(m_currentTurnTargetRow)) + "_") + String(m_currentTurnTargetCol))));
  5587. if (m_currentPlayersTurn == m_userIDPlayer1){
  5588. _local3.gotoAndStop("player1");
  5589. } else {
  5590. _local3.gotoAndStop("player2");
  5591. };
  5592. if (((!((m_nextPlayersTurn == null))) && ((m_nextPlayersTurn == m_userID)))){
  5593. m_basicState = TAKING_TURN;
  5594. };
  5595. if (m_winnerFound == true){
  5596. winner_mc.visible = true;
  5597. lowerPanel_spr.visible = true;
  5598. showWinningSlots(m_winningSlots);
  5599. if (m_isSpectator){
  5600. winner_mc.title_mc.gotoAndStop("spectator");
  5601. winner_mc.msg_txt.text = ("winner: " + m_winner);
  5602. } else {
  5603. winner_mc.msg_txt.text = "";
  5604. if (m_winner == m_userID){
  5605. super.submitResult(1);
  5606. winner_mc.title_mc.gotoAndStop("winner");
  5607. m_bin.myWeevilAct(20);
  5608. } else {
  5609. super.submitResult(0);
  5610. winner_mc.title_mc.gotoAndStop("loser");
  5611. };
  5612. m_basicState = GAME_END;
  5613. m_bin.weevilStatManager.adjustHappiness(8);
  5614. };
  5615. return;
  5616. };
  5617. if (m_staleMateFound == true){
  5618. if (m_isSpectator){
  5619. staleMate_mc.msg_txt.text = "Stalemate!";
  5620. } else {
  5621. staleMate_mc.msg_txt.text = "Stalemate! You earned 8 mulch.";
  5622. };
  5623. staleMate_mc.visible = true;
  5624. lowerPanel_spr.visible = true;
  5625. };
  5626. }
  5627. override public function terminate():void{
  5628. var _local1:Object;
  5629. trace("mulch4: terminate");
  5630. _local1 = compileStandardServerPacketVars();
  5631. _local1.command = CMD_REMOVE_PLAYER;
  5632. sendServerMessage(TURN_BASED_COMMAND_TYPE, _local1);
  5633. m_animTimer.stop();
  5634. super.terminate();
  5635. }
  5636. public function onStartGame(_arg1:Event){
  5637. var _local2:Object;
  5638. contactingServer_mc.visible = true;
  5639. joinGame_mc.visible = false;
  5640. _local2 = compileStandardServerPacketVars();
  5641. _local2.command = CMD_JOIN;
  5642. sendServerMessage(TURN_BASED_COMMAND_TYPE, _local2);
  5643. }
  5644. override protected function receivePlayersTurn(_arg1:Object):void{
  5645. trace(((((((("mulch4: got players turn player: " + _arg1.userID) + " currentPlayer:") + _arg1.nextPlayer) + " row: ") + _arg1.row) + " col:") + _arg1.col));
  5646. if (_arg1.success == "true"){
  5647. if (m_animating){
  5648. onMulchTweenAnimDone();
  5649. };
  5650. if (_arg1.staleMate == "true"){
  5651. trace("stalemate found: ");
  5652. m_staleMateFound = true;
  5653. m_bin.gameOver();
  5654. };
  5655. setGameData(_arg1);
  5656. m_currentTurnTargetRow = _arg1.row;
  5657. m_currentTurnTargetCol = _arg1.col;
  5658. if (_arg1.winnerFound == "true"){
  5659. trace(("winner found: " + _arg1.userID));
  5660. m_winner = _arg1.userID;
  5661. m_winnerFound = true;
  5662. m_winningSlots = _arg1.winningSlots;
  5663. m_bin.gameOver();
  5664. };
  5665. if (_arg1.userID == m_userIDPlayer1){
  5666. mulchPlacer.gotoAndStop("player1");
  5667. } else {
  5668. mulchPlacer.gotoAndStop("player2");
  5669. };
  5670. createAndAnimateMulchDrop(_arg1.row, _arg1.col);
  5671. m_currentPlayersTurn = _arg1.userID;
  5672. m_nextPlayersTurn = _arg1.nextPlayer;
  5673. setMarkers();
  5674. } else {
  5675. if (_arg1.userID == m_userID){
  5676. m_basicState = TAKING_TURN;
  5677. };
  5678. };
  5679. }
  5680. private function setMarkers(){
  5681. if (m_nextPlayersTurn == m_userIDPlayer1){
  5682. player1Mark_mc.visible = true;
  5683. player2Mark_mc.visible = false;
  5684. } else {
  5685. if (m_nextPlayersTurn == m_userIDPlayer2){
  5686. player1Mark_mc.visible = false;
  5687. player2Mark_mc.visible = true;
  5688. };
  5689. };
  5690. }
  5691. private function onSlotHitAreaOut(_arg1:Event){
  5692. if (!m_animating){
  5693. mulchPlacer.visible = false;
  5694. };
  5695. }
  5696. public function confirmSpectatorStatus(_arg1:Event){
  5697. confirmSpectator_mc.visible = false;
  5698. }
  5699. private function initNewGame(){
  5700. joinGame_mc.visible = true;
  5701. lowerPanel_spr.visible = false;
  5702. gameOver_mc.visible = false;
  5703. m_animating = false;
  5704. m_staleMateFound = false;
  5705. m_gameStarted = false;
  5706. staleMate_mc.visible = false;
  5707. m_winnerFound = false;
  5708. player1_txt.text = "";
  5709. player2_txt.text = "";
  5710. hideHighlights();
  5711. initSlots();
  5712. m_basicState = WAITING_FOR_LOGIN_RESULT;
  5713. m_currentTurnTargetRow = 1;
  5714. mulchPlacer.visible = false;
  5715. confirmSpectator_mc.visible = false;
  5716. contactingServer_mc.visible = false;
  5717. winner_mc.visible = false;
  5718. waitingForPlayer_mc.visible = false;
  5719. player2Mark_mc.visible = false;
  5720. player1Mark_mc.visible = true;
  5721. }
  5722. private function getTargetRowY(_arg1):int{
  5723. var _local2:MovieClip;
  5724. _local2 = MovieClip(getChildByName(((("pos_" + String(_arg1)) + "_") + "0")));
  5725. trace(("got target clip : " + _local2));
  5726. trace(("for target row y : " + _local2.y));
  5727. return (_local2.y);
  5728. }
  5729. private function onSlotHitAreaOver(_arg1:Event){
  5730. var _local2:MovieClip;
  5731. trace(("over" + _arg1.target.name));
  5732. _local2 = MovieClip(_arg1.target);
  5733. if ((((m_basicState == TAKING_TURN)) && (!(m_winnerFound)))){
  5734. if (m_userID == m_userIDPlayer1){
  5735. mulchPlacer.gotoAndStop("player1");
  5736. } else {
  5737. mulchPlacer.gotoAndStop("player2");
  5738. };
  5739. mulchPlacer.visible = true;
  5740. mulchPlacer.x = _local2.x;
  5741. };
  5742. }
  5743. override public function init(_arg1:SSclient=null, _arg2:Object=null):void{
  5744. super.init(_arg1, _arg2);
  5745. if ((((_arg2.slot == undefined)) || ((_arg2.slot == null)))){
  5746. throw (new IllegalOperationError("mulch4::init mulch4 game initialised without valid slot"));
  5747. };
  5748. m_slot = _arg2.slot;
  5749. m_userID = m_bin.myUserName;
  5750. initNewGame();
  5751. }
  5752. private function onSlotHitAreaPressed(_arg1:Event){
  5753. if (!m_animating){
  5754. if (m_basicState == TAKING_TURN){
  5755. m_basicState = WAITING_FOR_TURN;
  5756. switch (_arg1.target.name){
  5757. case "slot0":
  5758. m_currentTurnTargetCol = 0;
  5759. takeTurn(0);
  5760. break;
  5761. case "slot1":
  5762. m_currentTurnTargetCol = 1;
  5763. takeTurn(1);
  5764. break;
  5765. case "slot2":
  5766. m_currentTurnTargetCol = 2;
  5767. takeTurn(2);
  5768. break;
  5769. case "slot3":
  5770. m_currentTurnTargetCol = 3;
  5771. takeTurn(3);
  5772. break;
  5773. case "slot4":
  5774. m_currentTurnTargetCol = 4;
  5775. takeTurn(4);
  5776. break;
  5777. case "slot5":
  5778. m_currentTurnTargetCol = 5;
  5779. takeTurn(5);
  5780. break;
  5781. case "slot6":
  5782. m_currentTurnTargetCol = 6;
  5783. takeTurn(6);
  5784. break;
  5785. };
  5786. };
  5787. };
  5788. }
  5789. override protected function receiveServerMessage(_arg1:String, _arg2:Object):void{
  5790. trace(("mulch4: got server message" + _arg1));
  5791. doTestHandling(_arg1, _arg2);
  5792. }
  5793. private function initSlots(){
  5794. var _local1:*;
  5795. var _local2:*;
  5796. var _local3:*;
  5797. var _local4:Object;
  5798. var _local5:MovieClip;
  5799. m_slots = new Array();
  5800. _local1 = 0;
  5801. while (_local1 < m_rows) {
  5802. m_slots[_local1] = new Array();
  5803. _local1++;
  5804. };
  5805. _local2 = 0;
  5806. while (_local2 < m_rows) {
  5807. _local3 = 0;
  5808. while (_local3 < m_cols) {
  5809. _local4 = new Object();
  5810. _local4.userID = null;
  5811. _local4.occupied = false;
  5812. m_slots[_local2][_local3] = _local4;
  5813. _local5 = MovieClip(getChildByName(((("pos_" + String(_local2)) + "_") + String(_local3))));
  5814. _local5.gotoAndStop("init");
  5815. _local3++;
  5816. };
  5817. _local2++;
  5818. };
  5819. }
  5820. private function setGameData(_arg1:Object){
  5821. }
  5822. private function hideHighlights(){
  5823. var _local1:*;
  5824. var _local2:*;
  5825. var _local3:MovieClip;
  5826. _local1 = 0;
  5827. while (_local1 < m_rows) {
  5828. _local2 = 0;
  5829. while (_local2 < m_cols) {
  5830. _local3 = MovieClip(getChildByName(((("pos_" + String(_local1)) + "_") + String(_local2))));
  5831. _local3.highlight_mc.visible = false;
  5832. _local2++;
  5833. };
  5834. _local1++;
  5835. };
  5836. }
  5837. private function createAndAnimateMulchDrop(_arg1:int, _arg2:int){
  5838. var _local3:MovieClip;
  5839. var _local4:int;
  5840. mulchPlacer.visible = true;
  5841. _local3 = MovieClip(getChildByName(("slot" + String(_arg2))));
  5842. mulchPlacer.x = _local3.x;
  5843. m_animating = true;
  5844. _local4 = mulchPlacer.y;
  5845. m_targetY = getTargetRowY(_arg1);
  5846. trace(((("animating mulch drop from col:" + String(_arg2)) + "row:") + String(_arg1)));
  5847. m_dirY = 2;
  5848. m_animTimer.start();
  5849. }
  5850. private function initGame(_arg1:Object){
  5851. trace(("**initGame** m_userID=" + m_userID));
  5852. trace(((("dataObj.player1=" + _arg1.player1) + ", dataObj.player2=") + _arg1.player2));
  5853. if ((((_arg1.player1 == m_userID)) || ((_arg1.player2 == m_userID)))){
  5854. m_isPlaying = true;
  5855. m_isSpectator = false;
  5856. m_userIDPlayer1 = _arg1.player1;
  5857. m_userIDPlayer2 = _arg1.player2;
  5858. } else {
  5859. m_isPlaying = false;
  5860. m_isSpectator = true;
  5861. m_userIDPlayer1 = _arg1.player1;
  5862. m_userIDPlayer2 = _arg1.player2;
  5863. };
  5864. trace(("m_isPlaying=" + m_isPlaying));
  5865. trace(("m_isSpectator=" + m_isSpectator));
  5866. m_currentPlayersTurn = _arg1.currentPlayersTurn;
  5867. if (m_isPlaying){
  5868. if (m_userID == m_currentPlayersTurn){
  5869. m_basicState = TAKING_TURN;
  5870. } else {
  5871. m_basicState = WAITING_FOR_TURN;
  5872. };
  5873. } else {
  5874. m_basicState = SPECTATING;
  5875. };
  5876. setMarkers();
  5877. initSlots();
  5878. doStuffBasedOnState();
  5879. }
  5880. private function refreshDisplay(){
  5881. var _local1:*;
  5882. var _local2:*;
  5883. var _local3:MovieClip;
  5884. _local1 = 0;
  5885. while (_local1 < m_rows) {
  5886. _local2 = 0;
  5887. while (_local2 < m_cols) {
  5888. _local3 = MovieClip(getChildByName(((("pos_" + String(_local1)) + "_") + String(_local2))));
  5889. if (m_slots[_local1][_local2].userID == m_userIDPlayer1){
  5890. _local3.gotoAndStop("player1");
  5891. };
  5892. if (m_slots[_local1][_local2].userID == m_userIDPlayer2){
  5893. _local3.gotoAndStop("player2");
  5894. };
  5895. if (((!((m_slots[_local1][_local2].userID == m_userIDPlayer2))) && (!((m_slots[_local1][_local2].userID == m_userIDPlayer1))))){
  5896. _local3.gotoAndStop("init");
  5897. };
  5898. _local2++;
  5899. };
  5900. _local1++;
  5901. };
  5902. }
  5903. override protected function receiveUserLost(_arg1:Object):void{
  5904. trace(("mulch4: got user lost user ID:" + _arg1.userID));
  5905. trace(("m_basicState=" + m_basicState));
  5906. }
  5907. override protected function receiveUserJoin(_arg1:Object):void{
  5908. contactingServer_mc.visible = false;
  5909. trace(((("mulch4: got user join user ID:" + _arg1.userID) + " and game SessionID :") + _arg1.uniqueGameID));
  5910. if (((!(m_gameStarted)) && ((_arg1.gameStart == "true")))){
  5911. m_userIDPlayer1 = _arg1.player1;
  5912. m_userIDPlayer2 = _arg1.player2;
  5913. if ((((m_userIDPlayer1 == m_userID)) || ((m_userIDPlayer2 == m_userID)))){
  5914. m_isPlaying = true;
  5915. m_isSpectator = false;
  5916. } else {
  5917. m_isPlaying = false;
  5918. m_isSpectator = true;
  5919. };
  5920. player1_txt.text = _arg1.player1;
  5921. player2_txt.text = _arg1.player2;
  5922. trace(((("player1:" + m_userIDPlayer1) + " player2:") + m_userIDPlayer2));
  5923. m_uniqueGameSessionID = _arg1.uniqueGameID;
  5924. m_gameStarted = true;
  5925. waitingForPlayer_mc.visible = false;
  5926. if (_arg1.success == "true"){
  5927. if (_arg1.player1 == m_userID){
  5928. m_basicState = TAKING_TURN;
  5929. } else {
  5930. m_basicState = WAITING_FOR_TURN;
  5931. m_bin.assignGamePlayer(2);
  5932. };
  5933. trace("starting as player");
  5934. super.getKey();
  5935. } else {
  5936. trace("starting as spectator");
  5937. confirmSpectator_mc.visible = true;
  5938. m_basicState = SPECTATING;
  5939. dataToArray(_arg1.gameData);
  5940. refreshDisplay();
  5941. };
  5942. };
  5943. trace(("success === " + _arg1.success));
  5944. if ((((_arg1.success == "true")) && (!(m_gameStarted)))){
  5945. m_userIDPlayer1 = _arg1.player1;
  5946. player1_txt.text = m_userIDPlayer1;
  5947. waitingForPlayer_mc.visible = true;
  5948. if (_arg1.player1 == m_userID){
  5949. m_bin.assignGamePlayer(1);
  5950. };
  5951. };
  5952. doStuffBasedOnState();
  5953. }
  5954. private function doStuffBasedOnState(){
  5955. switch (m_basicState){
  5956. case WAITING_FOR_TURN:
  5957. break;
  5958. case TAKING_TURN:
  5959. break;
  5960. case SPECTATING:
  5961. break;
  5962. };
  5963. }
  5964. private function takeTurn(_arg1:int){
  5965. var _local2:Object;
  5966. trace((("sending col" + String(_arg1)) + "to server to take turn"));
  5967. m_basicState = WAITING_FOR_TURN;
  5968. _local2 = compileStandardServerPacketVars();
  5969. _local2.command = CMD_TAKE_TURN;
  5970. _local2.col = String(_arg1);
  5971. sendServerMessage(turnBasedMultiplayerGame.TURN_BASED_COMMAND_TYPE, _local2);
  5972. }
  5973. private function showWinningSlots(_arg1:String){
  5974. var _local2:Array;
  5975. var _local3:*;
  5976. var _local4:*;
  5977. var _local5:MovieClip;
  5978. trace(("showing winnning slots " + _arg1));
  5979. _local2 = _arg1.split(",");
  5980. _local3 = 0;
  5981. while (_local3 < _local2.length) {
  5982. _local4 = _local2[_local3].split(":");
  5983. _local5 = MovieClip(getChildByName(((("pos_" + _local4[1]) + "_") + _local4[0])));
  5984. _local5.highlight_mc.visible = true;
  5985. _local3++;
  5986. };
  5987. }
  5988. private function dataToArray(_arg1:String){
  5989. var _local2:Array;
  5990. var _local3:*;
  5991. var _local4:Array;
  5992. var _local5:String;
  5993. var _local6:Array;
  5994. var _local7:int;
  5995. var _local8:int;
  5996. trace(_arg1);
  5997. _local2 = _arg1.split(",");
  5998. trace("hello");
  5999. _local3 = 0;
  6000. while (_local3 < (_local2.length - 1)) {
  6001. _local4 = _local2[_local3].split(":");
  6002. trace("balls");
  6003. _local5 = _local4[1];
  6004. _local6 = _local4[0].split("_");
  6005. _local7 = int(_local6[1]);
  6006. _local8 = int(_local6[0]);
  6007. trace(((((("gotID: " + _local5) + "gotRow: ") + _local6[0]) + "gotCol") + _local6[1]));
  6008. m_slots[_local8][_local7].userID = _local5;
  6009. _local3++;
  6010. };
  6011. }
  6012. private function doTestHandling(_arg1:String, _arg2:Object){
  6013. switch (_arg1){
  6014. case "login":
  6015. trace(("logged in with sucess= " + _arg2.success));
  6016. break;
  6017. };
  6018. }
  6019. private function getTargetRow(_arg1:int){
  6020. return (m_currentTurnTargetRow);
  6021. }
  6022. private function addEventListeners(){
  6023. slot0.addEventListener(MouseEvent.MOUSE_UP, onSlotHitAreaPressed, false, 0, true);
  6024. slot0.addEventListener(MouseEvent.MOUSE_OVER, onSlotHitAreaOver, false, 0, true);
  6025. slot0.addEventListener(MouseEvent.MOUSE_OUT, onSlotHitAreaOut, false, 0, true);
  6026. slot1.addEventListener(MouseEvent.MOUSE_UP, onSlotHitAreaPressed, false, 0, true);
  6027. slot1.addEventListener(MouseEvent.MOUSE_OVER, onSlotHitAreaOver, false, 0, true);
  6028. slot1.addEventListener(MouseEvent.MOUSE_OUT, onSlotHitAreaOut, false, 0, true);
  6029. slot2.addEventListener(MouseEvent.MOUSE_UP, onSlotHitAreaPressed, false, 0, true);
  6030. slot2.addEventListener(MouseEvent.MOUSE_OVER, onSlotHitAreaOver, false, 0, true);
  6031. slot2.addEventListener(MouseEvent.MOUSE_OUT, onSlotHitAreaOut, false, 0, true);
  6032. slot3.addEventListener(MouseEvent.MOUSE_UP, onSlotHitAreaPressed, false, 0, true);
  6033. slot3.addEventListener(MouseEvent.MOUSE_OVER, onSlotHitAreaOver, false, 0, true);
  6034. slot3.addEventListener(MouseEvent.MOUSE_OUT, onSlotHitAreaOut, false, 0, true);
  6035. slot4.addEventListener(MouseEvent.MOUSE_UP, onSlotHitAreaPressed, false, 0, true);
  6036. slot4.addEventListener(MouseEvent.MOUSE_OVER, onSlotHitAreaOver, false, 0, true);
  6037. slot4.addEventListener(MouseEvent.MOUSE_OUT, onSlotHitAreaOut, false, 0, true);
  6038. slot5.addEventListener(MouseEvent.MOUSE_UP, onSlotHitAreaPressed, false, 0, true);
  6039. slot5.addEventListener(MouseEvent.MOUSE_OVER, onSlotHitAreaOver, false, 0, true);
  6040. slot5.addEventListener(MouseEvent.MOUSE_OUT, onSlotHitAreaOut, false, 0, true);
  6041. slot6.addEventListener(MouseEvent.MOUSE_UP, onSlotHitAreaPressed, false, 0, true);
  6042. slot6.addEventListener(MouseEvent.MOUSE_OVER, onSlotHitAreaOver, false, 0, true);
  6043. slot6.addEventListener(MouseEvent.MOUSE_OUT, onSlotHitAreaOut, false, 0, true);
  6044. slot0.buttonMode = true;
  6045. slot1.buttonMode = true;
  6046. slot2.buttonMode = true;
  6047. slot3.buttonMode = true;
  6048. slot4.buttonMode = true;
  6049. slot5.buttonMode = true;
  6050. slot6.buttonMode = true;
  6051. }
  6052. override protected function receiveGameOver(_arg1:Object):void{
  6053. trace("**mulch4: receiveGameOver**");
  6054. trace(("m_basicState=" + m_basicState));
  6055. m_bin.gameOver();
  6056. gameOver_mc.msg_txt.text = (_arg1.userID + " has left the game.");
  6057. lowerPanel_spr.visible = true;
  6058. gameOver_mc.visible = true;
  6059. super.opponentHasQuit();
  6060. }
  6061. override protected function receiveGameStart(_arg1:Object):void{
  6062. trace("mulch4: got game start");
  6063. initGame(_arg1);
  6064. }
  6065.  
  6066. }
  6067. }//package com.binweevils.multiplayerGames
  6068. package com.binweevils.multiplayerGames.common {
  6069. import flash.display.*;
  6070. import flash.events.*;
  6071. import it.gotoandplay.smartfoxserver.*;
  6072. import com.binweevils.*;
  6073. import com.binweevils.externalUIs.*;
  6074. import com.binweevils.DBaccess.*;
  6075. import flash.utils.*;
  6076. import com.binweevils.multiplayerGames.gameScores.*;
  6077. import flash.errors.*;
  6078.  
  6079. public dynamic class turnBasedMultiplayerGame extends MovieClip implements DraggableUI {
  6080.  
  6081. public static const CMD_TIME_OUT:String = "to";
  6082. public static const CMD_TAKE_TURN:String = "tt";
  6083. public static const SPECTATING:String = "SPEC";
  6084. public static const CMD_REMOVE_PLAYER:String = "rp";
  6085. public static const TAKING_TURN:String = "TTT";
  6086. public static const APPROPRIATE_SFS_EXTENSION = "login";
  6087. public static const CMD_GAME_OVER:String = "go";
  6088. public static const CMD_ADD_PLAYER:String = "ap";
  6089. public static const WAITING_FOR_TURN:String = "TFW";
  6090. public static const GAME_END:String = "EG";
  6091. public static const CMD_JOIN:String = "j";
  6092. public static const CMD_GAME_START:String = "gs";
  6093. public static const WAITING_FOR_LOGIN_RESULT:String = "WFLR";
  6094. protected static const TURN_BASED_COMMAND_TYPE = "tbmt";
  6095.  
  6096. protected static var m_userPasswordArray = [{
  6097. userID:"tester2",
  6098. password:"password"
  6099. }, {
  6100. userID:"renderman",
  6101. password:"password"
  6102. }, {
  6103. userID:"james",
  6104. password:"bond"
  6105. }];
  6106. protected static var m_userpasswordIDX:int = 0;
  6107.  
  6108. private var m_eDispatcher:EventDispatcher;
  6109. protected var m_basicState:String;
  6110. protected var m_isSpectator:Boolean;
  6111. protected var m_timeOutTimer:Timer;
  6112. protected var m_password:String;
  6113. protected var m_SSc:SSclient;
  6114. protected var m_bin:Object;
  6115. protected var m_userID:String;
  6116. protected var m_uniqueGameSessionID:String;
  6117. protected var m_gameStarted:Boolean;
  6118. protected var key:String;
  6119. protected var m_numMoves:int;
  6120. protected var m_gameScoreService:MultiplayerGameScoreService;
  6121. protected var m_sfsUserID:int;
  6122. protected var m_nextPlayersTurn:String;
  6123. protected var m_slot:int;
  6124. protected var m_gameTypeID:String;
  6125. protected var timedOut:Boolean;
  6126. protected var m_isPlaying:Boolean;
  6127. protected var m_gameID:int;
  6128. protected var m_timeout:uint;
  6129. protected var m_currentPlayersTurn:String;
  6130. protected var m_timeoutCount:uint;
  6131. protected var m_testMode:Boolean;
  6132.  
  6133. public function turnBasedMultiplayerGame(_arg1:int, _arg2=false){
  6134. m_testMode = _arg2;
  6135. m_gameID = _arg1;
  6136. m_slot = -1;
  6137. m_eDispatcher = new EventDispatcher();
  6138. m_nextPlayersTurn = new String();
  6139. m_gameStarted = false;
  6140. m_isSpectator = false;
  6141. m_isPlaying = false;
  6142. m_basicState = turnBasedMPGSTATE.GAME_START;
  6143. m_userID = new String();
  6144. m_uniqueGameSessionID = new String("a");
  6145. m_gameTypeID = new String();
  6146. if (_arg2){
  6147. m_userpasswordIDX = 1;
  6148. m_userID = m_userPasswordArray[m_userpasswordIDX].userID;
  6149. m_password = m_userPasswordArray[m_userpasswordIDX].password;
  6150. m_slot = 0;
  6151. };
  6152. m_timeOutTimer = new Timer(45000);
  6153. m_timeOutTimer.addEventListener(TimerEvent.TIMER, onTimeoutTimer, false, 0, true);
  6154. m_SSc = null;
  6155. }
  6156. protected function opponentHasQuit():void{
  6157. trace(("**opponentHasQuit** m_basicState=" + m_basicState));
  6158. if (m_isPlaying){
  6159. if (m_basicState == WAITING_FOR_TURN){
  6160. if (m_numMoves > 5){
  6161. submitResult(1);
  6162. } else {
  6163. submitResult(-1);
  6164. };
  6165. } else {
  6166. submitResult(-1);
  6167. };
  6168. };
  6169. m_basicState = GAME_END;
  6170. }
  6171. private function onExtensionResponse(_arg1:SFSEvent):void{
  6172. var _local2:String;
  6173. var _local3:String;
  6174. trace("**turnBasedMultiplayerGame: onExtensionResponse**");
  6175. trace(((("m_isPlaying=" + m_isPlaying) + " m_basicState=") + m_basicState));
  6176. _local2 = _arg1.params.dataObj.commandType;
  6177. trace(("cmdType=" + _local2));
  6178. if (_local2 == null){
  6179. trace(("evt.params.dataObj[0]=" + _arg1.params.dataObj[0]));
  6180. (_local2 == _arg1.params.dataObj[0]);
  6181. };
  6182. trace(("cmdType=" + _local2));
  6183. _local3 = _arg1.params.dataObj.command;
  6184. trace(("command=" + _local3));
  6185. switch (_local2){
  6186. case TURN_BASED_COMMAND_TYPE:
  6187. switch (_local3){
  6188. case CMD_TAKE_TURN:
  6189. m_numMoves++;
  6190. receivePlayersTurn(_arg1.params.dataObj);
  6191. startTimeOutTimer();
  6192. break;
  6193. case CMD_GAME_OVER:
  6194. receiveGameOver(_arg1.params.dataObj);
  6195. m_timeOutTimer.stop();
  6196. break;
  6197. case CMD_GAME_START:
  6198. receiveGameStart(_arg1.params.dataObj);
  6199. startTimeOutTimer();
  6200. break;
  6201. case CMD_REMOVE_PLAYER:
  6202. receiveUserLost(_arg1.params.dataObj);
  6203. break;
  6204. case CMD_JOIN:
  6205. receiveUserJoin(_arg1.params.dataObj);
  6206. break;
  6207. case "trace":
  6208. trace(_arg1.params.dataObj.trace);
  6209. break;
  6210. default:
  6211. receiveServerMessage(_local2, _arg1.params.dataObj);
  6212. };
  6213. break;
  6214. case "login":
  6215. if (m_testMode){
  6216. if (_arg1.params.dataObj.success == "true"){
  6217. trace("**turnBasedMultiplayerGame: onExtensionResponse** login sucess");
  6218. onLogin();
  6219. } else {
  6220. trace("**turnBasedMultiplayerGame: onExtensionResponse** login failed");
  6221. };
  6222. };
  6223. break;
  6224. default:
  6225. receiveServerMessage(_local2, _arg1.params.dataObj);
  6226. };
  6227. m_eDispatcher.dispatchEvent(_arg1);
  6228. }
  6229. protected function startTimeOutTimer():void{
  6230. if (m_isPlaying){
  6231. m_timeOutTimer.reset();
  6232. m_timeOutTimer.start();
  6233. timedOut = false;
  6234. };
  6235. }
  6236. public function onCloseGame(_arg1:Event=null){
  6237. trace(((("**onCloseGame** m_isPlaying=" + m_isPlaying) + " m_basicState=") + m_basicState));
  6238. if (((m_isPlaying) && ((m_numMoves >= 3)))){
  6239. switch (m_basicState){
  6240. case TAKING_TURN:
  6241. m_bin.weevilStatManager.adjustHappiness(-5);
  6242. m_bin.showAlertBox("Oh no! You have lost 5 happiness points for quitting the game without finishing!");
  6243. break;
  6244. };
  6245. };
  6246. m_bin.hideDialogueBox();
  6247. m_bin.closeGame();
  6248. }
  6249. public function init(_arg1:SSclient=null, _arg2:Object=null):void{
  6250. var _local3:Object;
  6251. key = "0";
  6252. m_numMoves = 0;
  6253. m_isPlaying = false;
  6254. if (m_testMode){
  6255. connectToSmartFox();
  6256. } else {
  6257. trace("turnBasedMultiplayerGame::init");
  6258. _local3 = Bin_extInterface.bin;
  6259. if (_local3 == null){
  6260. throw (new IllegalOperationError("turnBasedMultiplayerGame.init ---game initialised without valid bin"));
  6261. };
  6262. if (_arg1 == null){
  6263. throw (new IllegalOperationError("turnBasedMultiplayerGame.init -- game initialised without vaid sfs client"));
  6264. };
  6265. m_bin = _local3;
  6266. m_SSc = _arg1;
  6267. };
  6268. m_SSc.addEventListener(SFSEvent.onExtensionResponse, onExtensionResponse);
  6269. }
  6270. public function getKey():void{
  6271. var _local1:PHPcall;
  6272. _local1 = new PHPcall("game/start", true);
  6273. _local1.sendAndAwaitResponse(["gameId"], [m_gameID], keyReceived);
  6274. }
  6275. protected function receiveServerMessage(_arg1:String, _arg2:Object):void{
  6276. trace("*******WARNING turnBasedMultiplayerGame.receiveServerMessage() is not overidden by derived class**********************");
  6277. trace(("turnbased multiplayer game: got server message" + _arg1));
  6278. }
  6279. private function connectToSmartFox(){
  6280. }
  6281. public function submitResult(_arg1:int):void{
  6282. var _local2:PHPcall;
  6283. if (m_isPlaying){
  6284. if (key != "0"){
  6285. _local2 = new PHPcall("game/submit-turn", true);
  6286. _local2.sendAndAwaitResponse(["key", "result"], [key, _arg1], mulchAndXpReceived, true);
  6287. } else {
  6288. if (_arg1 != -1){
  6289. m_bin.hideDialogueBox();
  6290. m_bin.showAlertBox("You can't earn any more mulch or experience from this game today. You get 5 plays per day, so come back tomorrow to earn more.");
  6291. };
  6292. };
  6293. };
  6294. }
  6295. public function terminate():void{
  6296. m_timeOutTimer.stop();
  6297. m_SSc.removeEventListener(SFSEvent.onExtensionResponse, onExtensionResponse);
  6298. }
  6299. protected function receivePlayersTurn(_arg1:Object):void{
  6300. throw (new IllegalOperationError("turnBasedMultiplayerGame.receivePlayersTurn() Must be overridden"));
  6301. }
  6302. private function keyReceived(_arg1:Object):void{
  6303. if (_arg1.key != "0"){
  6304. key = _arg1.key;
  6305. };
  6306. }
  6307. private function messageToString(_arg1:Object):String{
  6308. var _local2:String;
  6309. var _local3:String;
  6310. _local2 = new String();
  6311. for (_local3 in _arg1) {
  6312. _local2 = (_local2 + (((_local3 + ":") + _arg1[_local3]) + ","));
  6313. };
  6314. return (_local2);
  6315. }
  6316. protected function onCloseBtnClicked(_arg1:MouseEvent):void{
  6317. if (m_isSpectator){
  6318. onCloseGame(_arg1);
  6319. } else {
  6320. if (m_numMoves >= 3){
  6321. switch (m_basicState){
  6322. case WAITING_FOR_TURN:
  6323. m_bin.showDialogueBox("<font color='#EE0000'>Are you sure you want to quit?</font><br>You will earn mulch & xp even if you lose, but if you quit you earn nothing.", onCloseGame);
  6324. break;
  6325. case TAKING_TURN:
  6326. m_bin.showDialogueBox("<font color='#EE0000'>Are you sure you want to quit?</font><br>You will earn mulch & xp even if you lose, but if you quit you earn nothing (and it will make your weevil unhappy).", onCloseGame);
  6327. break;
  6328. default:
  6329. onCloseGame();
  6330. };
  6331. } else {
  6332. onCloseGame();
  6333. };
  6334. };
  6335. }
  6336. protected function receiveUserLost(_arg1:Object):void{
  6337. throw (new IllegalOperationError("turnBasedMultiplayerGame.receiveUserLost() Must be overridden"));
  6338. }
  6339. private function mulchAndXpReceived(_arg1:Object):void{
  6340. var _local2:int;
  6341. var _local3:int;
  6342. var _local4:int;
  6343. var _local5:int;
  6344. var _local6:String;
  6345. _local2 = _arg1.mulchEarned;
  6346. _local3 = _arg1.mulch;
  6347. _local4 = _arg1.xpEarned;
  6348. _local5 = _arg1.xp;
  6349. if (_local2 > 0){
  6350. _local6 = "";
  6351. if (_local4 > 1){
  6352. _local6 = "s";
  6353. };
  6354. m_bin.hideDialogueBox();
  6355. m_bin.showAlertBox((((((("You have earned " + _local2) + " mulch and ") + _local4) + " experience point") + _local6) + "."));
  6356. m_bin.updateMulch(_local3);
  6357. m_bin.updateXp(_local5);
  6358. };
  6359. }
  6360. protected function receiveUserJoin(_arg1:Object):void{
  6361. throw (new IllegalOperationError("turnBasedMultiplayerGame.receiveUserJoin() Must be overridden"));
  6362. }
  6363. private function onTimeoutTimer(_arg1:TimerEvent):void{
  6364. trace(("onTimeoutTimer: m_basicState=" + m_basicState));
  6365. switch (m_basicState){
  6366. case WAITING_FOR_TURN:
  6367. m_bin.showDialogueBox("Your opponent is taking a long time to take their move. Do you want to quit this game?", quitWithoutPenalty);
  6368. break;
  6369. case TAKING_TURN:
  6370. timedOut = true;
  6371. break;
  6372. };
  6373. }
  6374. protected function compileStandardServerPacketVars():Object{
  6375. var _local1:Object;
  6376. _local1 = new Object();
  6377. _local1.userID = m_userID;
  6378. _local1.uniqueGameSessionID = m_uniqueGameSessionID;
  6379. _local1.gameTypeID = m_gameTypeID;
  6380. _local1.slot = m_slot;
  6381. return (_local1);
  6382. }
  6383. protected function onLogin(){
  6384. }
  6385. protected function quitWithoutPenalty(_arg1:Event=null):void{
  6386. trace("**quitWithoutPenalty**");
  6387. submitResult(-1);
  6388. m_bin.hideDialogueBox();
  6389. m_bin.closeGame();
  6390. }
  6391. protected function receiveGameOver(_arg1:Object):void{
  6392. throw (new IllegalOperationError("turnBasedMultiplayerGame.receiveGameOver() Must be overridden"));
  6393. }
  6394. protected function receiveGameStart(_arg1:Object):void{
  6395. throw (new IllegalOperationError("turnBasedMultiplayerGame.receiveGameStart() Must be overridden"));
  6396. }
  6397. protected function sendServerMessage(_arg1:String, _arg2:Object, _arg3:String="login"){
  6398. var _local4:String;
  6399. var _local5:Array;
  6400. if (_arg2.command != CMD_JOIN){
  6401. _arg2.gameSessionID = m_uniqueGameSessionID;
  6402. };
  6403. _local4 = messageToString(_arg2);
  6404. _local5 = new Array();
  6405. _local5[0] = _local4;
  6406. trace(((("sending message to server: " + _local4) + "message type= ") + _arg1));
  6407. m_SSc.turnBasedGameMessageS(_arg3, _arg1, _local5);
  6408. }
  6409.  
  6410. }
  6411. }//package com.binweevils.multiplayerGames.common
  6412. package com.binweevils.multiplayerGames.common {
  6413.  
  6414. public final class turnBasedMPGSTATE {
  6415.  
  6416. public static const WAITING_FOR_TURN:String = "TFW";
  6417. public static const GAME_END:String = "EG";
  6418. public static const WAITING_FOR_OTHER_PLAYER_TO_JOIN:String = "WFOPJ";
  6419. public static const GAME_START:String = "SG";
  6420. public static const TAKING_TURN:String = "TTT";
  6421. public static const WAITING_FOR_LOGIN_RESULT:String = "WFLR";
  6422. public static const SPECTATING:String = "SPEC";
  6423.  
  6424. }
  6425. }//package com.binweevils.multiplayerGames.common
  6426. package com.binweevils.DBaccess {
  6427. import flash.events.*;
  6428. import flash.net.*;
  6429. import flash.utils.*;
  6430. import com.binweevils.utilities.*;
  6431. import com.binweevils.rssmv.*;
  6432.  
  6433. public class PHPcall {
  6434.  
  6435. private var path:String;
  6436. private var callBack:Function;
  6437. private var APIserver:Boolean;
  6438.  
  6439. public function PHPcall(_arg1:String, _arg2:Boolean=false){
  6440. APIserver = _arg2;
  6441. setPath(_arg1);
  6442. }
  6443. private function responseReceived(_arg1:Event):void{
  6444. var _local2:Object;
  6445. trace(("evt.target.data=" + _arg1.target.data));
  6446. _local2 = _arg1.target.data;
  6447. callBack(_local2);
  6448. }
  6449. public function sendAndAwaitResponse(_arg1:Array, _arg2:Array, _arg3:Function, _arg4:Boolean=false){
  6450. var variables:* = null;
  6451. var i:* = 0;
  6452. var j:* = undefined;
  6453. var request:* = null;
  6454. var loader:* = null;
  6455. var $st:* = 0;
  6456. var $hash:* = null;
  6457. var $varNames:* = _arg1;
  6458. var $varValues:* = _arg2;
  6459. var $callBack:* = _arg3;
  6460. var $secure:Boolean = _arg4;
  6461. trace("**sendAndAwaitResponse**");
  6462. callBack = $callBack;
  6463. variables = new URLVariables();
  6464. if ($secure){
  6465. $st = getTimer();
  6466. $varNames.push("st");
  6467. $varValues.push($st);
  6468. $hash = Rssmv.o_2($varValues);
  6469. $varNames.push("hash");
  6470. $varValues.push($hash);
  6471. };
  6472. i = ($varNames.length - 1);
  6473. while (i >= 0) {
  6474. variables[$varNames[i]] = $varValues[i];
  6475. i = (i - 1);
  6476. };
  6477. for (j in variables) {
  6478. trace(((("variables." + j) + " ---> ") + variables[j]));
  6479. };
  6480. request = new URLRequest();
  6481. request.url = path;
  6482. trace(("request.url=" + request.url));
  6483. request.method = URLRequestMethod.POST;
  6484. request.data = variables;
  6485. loader = new URLLoader();
  6486. loader.dataFormat = URLLoaderDataFormat.VARIABLES;
  6487. loader.addEventListener(Event.COMPLETE, responseReceived);
  6488. try {
  6489. loader.load(request);
  6490. } catch(error:Error) {
  6491. trace("Unable to load URL");
  6492. };
  6493. }
  6494. public function fireAndForget(_arg1:Array, _arg2:Array, _arg3:Boolean=false):void{
  6495. var variables:* = null;
  6496. var i:* = 0;
  6497. var j:* = undefined;
  6498. var request:* = null;
  6499. var loader:* = null;
  6500. var $st:* = 0;
  6501. var $hash:* = null;
  6502. var $varNames:* = _arg1;
  6503. var $varValues:* = _arg2;
  6504. var $secure:Boolean = _arg3;
  6505. trace("**fireAndForget**");
  6506. variables = new URLVariables();
  6507. if ($secure){
  6508. $st = getTimer();
  6509. $varNames.push("st");
  6510. $varValues.push($st);
  6511. $hash = Rssmv.o_2($varValues);
  6512. $varNames.push("hash");
  6513. $varValues.push($hash);
  6514. };
  6515. i = ($varNames.length - 1);
  6516. while (i >= 0) {
  6517. variables[$varNames[i]] = $varValues[i];
  6518. i = (i - 1);
  6519. };
  6520. for (j in variables) {
  6521. trace(((("variables." + j) + " ---> ") + variables[j]));
  6522. };
  6523. request = new URLRequest();
  6524. request.url = path;
  6525. trace(("request.url=" + request.url));
  6526. request.method = URLRequestMethod.POST;
  6527. request.data = variables;
  6528. loader = new URLLoader();
  6529. try {
  6530. loader.load(request);
  6531. } catch(error:Error) {
  6532. trace("Unable to load URL");
  6533. };
  6534. }
  6535. public function setPath(_arg1:String):void{
  6536. if (APIserver){
  6537. path = (((URLhandler.servicesLocation + _arg1) + "?rndVar=") + Math.random());
  6538. } else {
  6539. path = ((((URLhandler.servicesLocation + "php/") + _arg1) + ".php?rndVar=") + Math.random());
  6540. };
  6541. }
  6542. public function awaitResponse(_arg1:Function){
  6543. var variables:* = null;
  6544. var request:* = null;
  6545. var loader:* = null;
  6546. var $callBack:* = _arg1;
  6547. trace("**awaitResponse**");
  6548. callBack = $callBack;
  6549. variables = new URLVariables();
  6550. request = new URLRequest();
  6551. request.url = path;
  6552. trace(("request.url=" + request.url));
  6553. loader = new URLLoader();
  6554. loader.dataFormat = URLLoaderDataFormat.VARIABLES;
  6555. loader.addEventListener(Event.COMPLETE, responseReceived);
  6556. try {
  6557. loader.load(request);
  6558. } catch(error:Error) {
  6559. trace("Unable to load URL");
  6560. };
  6561. }
  6562.  
  6563. }
  6564. }//package com.binweevils.DBaccess
  6565. package com.binweevils {
  6566. import flash.events.*;
  6567. import it.gotoandplay.smartfoxserver.*;
  6568. import com.binweevils.conf.*;
  6569.  
  6570. public class SSclient extends EventDispatcher {
  6571.  
  6572. private var loginKey:String;
  6573. private var sfs:SmartFoxClient;
  6574. private var defaultZone:String;
  6575. private var nestXML:String;
  6576. private var myUserName:String;
  6577. public var crntRoom:String;
  6578.  
  6579. public function SSclient(){
  6580. defaultZone = new String("BinWeevils");
  6581. nestXML = new String("");
  6582. sfs = new SmartFoxClient();
  6583. sfs.debug = true;
  6584. sfs.addEventListener(SFSEvent.onConnection, onConnection);
  6585. sfs.addEventListener(SFSEvent.onConnectionLost, onConnectionLost);
  6586. sfs.addEventListener(SFSEvent.onLogin, onLogin);
  6587. sfs.addEventListener(SFSEvent.onRoomListUpdate, onRoomListUpdate);
  6588. sfs.addEventListener(SFSEvent.onRoomVariablesUpdate, onRoomVariablesUpdate);
  6589. sfs.addEventListener(SFSEvent.onJoinRoom, onJoinRoom);
  6590. sfs.addEventListener(SFSEvent.onJoinRoomError, onJoinRoomError);
  6591. sfs.addEventListener(SFSEvent.onUserEnterRoom, onUserEnterRoom);
  6592. sfs.addEventListener(SFSEvent.onUserLeaveRoom, onUserLeaveRoom);
  6593. sfs.addEventListener(SFSEvent.onPublicMessage, publicMsgReceived);
  6594. sfs.addEventListener(SFSEvent.onExtensionResponse, onExtensionResponse);
  6595. sfs.addEventListener(SFSEvent.onAdminMessage, onAdminMessage);
  6596. sfs.addEventListener(SFSEvent.onModeratorMessage, onModeratorMessage);
  6597. sfs.addEventListener(SFSEvent.onConfigLoadSuccess, onConfigLoadSuccess);
  6598. sfs.addEventListener(SFSEvent.onConfigLoadFailure, onConfigLoadFailureHandler);
  6599. sfs.addEventListener(SFSEvent.onBuddyList, onBuddyList);
  6600. sfs.addEventListener(SFSEvent.onBuddyListUpdate, onBuddyListUpdate);
  6601. sfs.addEventListener(SFSEvent.onBuddyPermissionRequest, onBuddyPermissionRequest);
  6602. sfs.addEventListener(SFSEvent.onBuddyRoom, onBuddyRoom);
  6603. }
  6604. function onRoomListUpdate(_arg1:SFSEvent):void{
  6605. trace("Room list received");
  6606. dispatchEvent(_arg1);
  6607. }
  6608. public function sendDrivenOff():void{
  6609. sfs.sendXtMessage("login", "b", ["drivenOff"], "str");
  6610. }
  6611. private function onUserLeaveRoom(_arg1:SFSEvent):void{
  6612. trace("onUserLeaveRoom");
  6613. dispatchEvent(_arg1);
  6614. }
  6615. function onSecurityError(_arg1:SecurityErrorEvent):void{
  6616. trace(("Security error: " + _arg1.text));
  6617. }
  6618. public function getBuddyRoom(_arg1:Object):void{
  6619. sfs.getBuddyRoom(_arg1);
  6620. }
  6621. public function evictUsersFromMyNest(_arg1:String):void{
  6622. trace("**evictUsersFromMyNest**");
  6623. sfs.sendXtMessage("login", ((MessageProtocol.NEST_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NEST_MODULE_RETURN_TO_NEST), [_arg1], "str");
  6624. }
  6625. public function removeApparel(_arg1:int):void{
  6626. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_REMOVE_APPAREL), [_arg1], "str");
  6627. }
  6628. public function getZoneTime():void{
  6629. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_GET_ZONE_TIME), [], "str");
  6630. }
  6631. public function get_sfs():SmartFoxClient{
  6632. return (sfs);
  6633. }
  6634. public function setUserVars(_arg1:Object):void{
  6635. sfs.setUserVariables(_arg1);
  6636. }
  6637. public function setLoginDetails(_arg1:String, _arg2:String){
  6638. myUserName = _arg1;
  6639. loginKey = _arg2;
  6640. }
  6641. public function sendBusinesses(_arg1:String){
  6642. sfs.sendXtMessage("login", ((MessageProtocol.BUSINESS_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.BUSINESS_MODULE_SET_BUSINESS_STATE), [_arg1], "str");
  6643. }
  6644. public function setNestDoorNPC(_arg1:int, _arg2:int):void{
  6645. sfs.sendXtMessage("login", ((MessageProtocol.NPC_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NPC_MODULE_SET_NPC_NEST_DOOR), [_arg1, _arg2], "str");
  6646. }
  6647. public function weevilReportUser(_arg1:String, _arg2:String, _arg3:String){
  6648. sfs.sendXtMessage("login", ((MessageProtocol.ADMIN_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.ADMIN_MODULE_REPORT), [_arg1, _arg2, _arg3], "str");
  6649. }
  6650. function onConnection(_arg1:SFSEvent):void{
  6651. var _local2:Boolean;
  6652. _local2 = _arg1.params.success;
  6653. if (_local2){
  6654. trace("Connection successful!");
  6655. login();
  6656. } else {
  6657. trace("Connection failed!");
  6658. };
  6659. }
  6660. public function joinRoom(_arg1:String, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:int=0, _arg7:int=0){
  6661. crntRoom = _arg1;
  6662. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_JOIN_ROOM), [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7], "str");
  6663. }
  6664. public function removeUserFromIgnoreList(_arg1:String):void{
  6665. var _local2:*;
  6666. trace("**removeUserFromIgnoreList**");
  6667. _local2 = new Array((("userName:" + _arg1) + ","));
  6668. sfs.sendXtMessage("login", "removeUserFromIgnoreList", _local2, "str");
  6669. }
  6670. function onJoinRoom(_arg1:SFSEvent):void{
  6671. trace(("Successfully joined room: " + _arg1.params.room.getName()));
  6672. trace(("room id = " + _arg1.params.room.getId()));
  6673. dispatchEvent(_arg1);
  6674. }
  6675. public function removeNestInvite(_arg1:String="-1"):void{
  6676. trace("**removeNestInvite**");
  6677. sfs.sendXtMessage("login", ((MessageProtocol.NEST_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NEST_MODULE_REMOVE_NEST_INVITES), [_arg1], "str");
  6678. }
  6679. public function sendPetGotBall(_arg1:int):void{
  6680. sfs.sendXtMessage("login", ((MessageProtocol.PET_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.PET_MODULE_GOT_BALL), [_arg1], "str");
  6681. }
  6682. public function chefQuit():void{
  6683. sfs.sendXtMessage("login", ((MessageProtocol.DINER_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.DINER_MODULE_CHEF_QUIT), [], "str");
  6684. }
  6685. private function onAdminMessage(_arg1:SFSEvent){
  6686. trace(("got admin message: " + _arg1.params.dataObj.message));
  6687. }
  6688. public function guestJoinedNest(_arg1:String, _arg2:int):void{
  6689. trace("**guestJoinedNest**");
  6690. sfs.sendXtMessage("login", ((MessageProtocol.NEST_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NEST_MODULE_GUEST_JOINED_NEST), [_arg1, _arg2], "str");
  6691. }
  6692. public function getRoomByName(_arg1:String):Object{
  6693. return (sfs.getRoomByName(_arg1));
  6694. }
  6695. public function setPetState(_arg1:int, _arg2:String, _arg3:int, _arg4:Boolean):void{
  6696. var _local5:Array;
  6697. var _local6:Object;
  6698. trace("**setPetVars**");
  6699. if (_arg4){
  6700. _local5 = [{
  6701. name:("petState" + _arg1),
  6702. val:_arg2,
  6703. persistent:true
  6704. }];
  6705. sfs.setRoomVariables(_local5, _arg3);
  6706. } else {
  6707. trace("setting user vars");
  6708. _local6 = {petState:_arg2};
  6709. sfs.setUserVariables(_local6);
  6710. };
  6711. }
  6712. public function chefStart():void{
  6713. sfs.sendXtMessage("login", ((MessageProtocol.DINER_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.DINER_MODULE_CHEF_START), [], "str");
  6714. }
  6715. public function loadBuddyList():void{
  6716. sfs.loadBuddyList();
  6717. }
  6718. private function onModeratorMessage(_arg1:SFSEvent){
  6719. trace(("got moderator message:" + _arg1.params.message));
  6720. dispatchEvent(_arg1);
  6721. }
  6722. public function setPetIDs(_arg1:String, _arg2:int):void{
  6723. var _local3:Array;
  6724. trace("**setPetIDs**");
  6725. _local3 = [{
  6726. name:"petIDs",
  6727. val:_arg1,
  6728. persistent:true
  6729. }];
  6730. sfs.setRoomVariables(_local3, _arg2);
  6731. }
  6732. public function sendPetCmd(_arg1:String, _arg2:String, _arg3:int):void{
  6733. sfs.sendXtMessage("login", ((MessageProtocol.PET_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.PET_MODULE_SEND_PET_COMMAND), [_arg1, _arg2, _arg3], "str");
  6734. }
  6735. function onJoinRoomError(_arg1:SFSEvent):void{
  6736. trace(("Problems joining default room. Reason: " + _arg1.params.error));
  6737. }
  6738. public function createNPC(_arg1:int, _arg2:String, _arg3:String){
  6739. sfs.sendXtMessage("login", ((MessageProtocol.NPC_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NPC_MODULE_CREATE_NPC), [_arg1, _arg2, _arg3], "str");
  6740. }
  6741. public function sendExpression(_arg1:int):void{
  6742. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_EXPRESSION), [_arg1], "str");
  6743. }
  6744. public function submitWeevilDetails(_arg1:Object){
  6745. var _local2:*;
  6746. _local2 = new Array();
  6747. _local2.push(weevilToString(_arg1));
  6748. sfs.sendXtMessage("login", "submitUser", _local2, "str");
  6749. }
  6750. public function setBuddyVariables(_arg1:Array):void{
  6751. sfs.setBuddyVariables(_arg1);
  6752. }
  6753. public function setNestDoorPet(_arg1:int, _arg2:int, _arg3:uint=0):void{
  6754. sfs.sendXtMessage("login", ((MessageProtocol.PET_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.PET_MODULE_SET_NEST_DOOR_PET), [_arg1, _arg2, _arg3], "str");
  6755. }
  6756. public function addApparel(_arg1:int, _arg2:String="0"):void{
  6757. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_ADD_APPAREL), [_arg1, _arg2], "str");
  6758. }
  6759. public function checkMsg(_arg1:String, _arg2:String):void{
  6760. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_CHECK_MESSAGE), [_arg1, _arg2], "str");
  6761. }
  6762. public function updatePetSkill(_arg1:int, _arg2:int, _arg3:int, _arg4:Number):void{
  6763. trace("**updatePetSkill**");
  6764. sfs.sendXtMessage("login", "p", ["sk", _arg1, _arg2, _arg3, _arg4], "str");
  6765. }
  6766. public function testIsWeevilUnique(_arg1:Object){
  6767. var _local2:Array;
  6768. trace(("testIsUserUnique: " + _arg1.username));
  6769. _local2 = new Array(weevilToString(_arg1));
  6770. sfs.sendXtMessage("login", "isWeevilUnique", _local2, "str");
  6771. }
  6772. public function joinNestLoc(_arg1:int, _arg2:int, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0):void{
  6773. sfs.sendXtMessage("login", ((MessageProtocol.NEST_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NEST_MODULE_JOIN_NEST_LOCATION), [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6], "str");
  6774. }
  6775. public function getChatState():void{
  6776. sfs.sendXtMessage("login", ((MessageProtocol.CHAT_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.CHAT_MODULE_CHANGE_CHAT_STATE), [], "str");
  6777. }
  6778. private function onBuddyList(_arg1:SFSEvent):void{
  6779. var _local2:String;
  6780. for (_local2 in sfs.myBuddyVars) {
  6781. trace(((_local2 + " >> ") + sfs.myBuddyVars[_local2]));
  6782. };
  6783. dispatchEvent(_arg1);
  6784. }
  6785. private function onRoomVariablesUpdate(_arg1:SFSEvent):void{
  6786. trace("**onRoomVariablesUpdate**");
  6787. }
  6788. public function setPetDef(_arg1:int, _arg2:String, _arg3:int, _arg4:Boolean=true):void{
  6789. var _local5:Array;
  6790. var _local6:Object;
  6791. trace(("**setPetDef: $petDef=" + _arg2));
  6792. if (_arg4){
  6793. _local5 = [{
  6794. name:("petDef" + _arg1),
  6795. val:_arg2,
  6796. persistent:true
  6797. }];
  6798. sfs.setRoomVariables(_local5, _arg3);
  6799. } else {
  6800. trace("setting user vars");
  6801. _local6 = {petDef:_arg2};
  6802. sfs.setUserVariables(_local6);
  6803. };
  6804. }
  6805. public function login(){
  6806. sfs.login(defaultZone, myUserName, loginKey);
  6807. }
  6808. public function sendPetExpression(_arg1:int, _arg2:int, _arg3:uint=0):void{
  6809. sfs.sendXtMessage("login", ((MessageProtocol.PET_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.PET_MODULE_PET_EXPRESSION), [_arg1, _arg2, _arg3], "str");
  6810. }
  6811. private function onBuddyPermissionRequest(_arg1:SFSEvent):void{
  6812. dispatchEvent(_arg1);
  6813. }
  6814. public function getMyUserID():int{
  6815. return (sfs.myUserId);
  6816. }
  6817. public function sendMove(_arg1:Number, _arg2:Number, _arg3:Number):void{
  6818. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_MOVE), [_arg1, _arg2, _arg3], "str");
  6819. }
  6820. public function changeWeevilDef(_arg1:String):void{
  6821. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_CHANGE_WEEVILDEF), [_arg1], "str");
  6822. }
  6823. private function publicMsgReceived(_arg1:SFSEvent):void{
  6824. dispatchEvent(_arg1);
  6825. }
  6826. public function onConfigLoadSuccess(_arg1:SFSEvent):void{
  6827. trace("Config file loaded, now connecting...");
  6828. sfs.connect(sfs.ipAddress, sfs.port);
  6829. }
  6830. public function getRoom(_arg1:int):Object{
  6831. trace(("$id=" + _arg1));
  6832. trace(("sfs.getRoom($id)=" + sfs.getRoom(_arg1)));
  6833. return (sfs.getRoom(_arg1));
  6834. }
  6835. private function onExtensionResponse(_arg1:SFSEvent):void{
  6836. var _local2:String;
  6837. trace("SSClient:onExtensionResponse");
  6838. trace(("evt.params.dataObj.commandType=" + _arg1.params.dataObj.commandType));
  6839. _local2 = _arg1.params.dataObj.commandType;
  6840. trace(("$cmdType=" + _local2));
  6841. if (_local2 == null){
  6842. trace(("evt.params.dataObj[0]=" + _arg1.params.dataObj[0]));
  6843. if (_arg1.params.dataObj[0] == "mv"){
  6844. _local2 = "mv";
  6845. };
  6846. };
  6847. dispatchEvent(_arg1);
  6848. }
  6849. public function sendBuyTicket():void{
  6850. var _local1:*;
  6851. _local1 = new Array("crap:crap,");
  6852. sfs.sendXtMessage("login", "buyTicket", _local1, "str");
  6853. }
  6854. public function getPetSkills(_arg1:int):void{
  6855. trace("**getPetSkills**");
  6856. sfs.sendXtMessage("login", "p", ["gps", _arg1], "str");
  6857. }
  6858. private function onBuddyListUpdate(_arg1:SFSEvent):void{
  6859. dispatchEvent(_arg1);
  6860. }
  6861. public function getRoomList():void{
  6862. sfs.getRoomList();
  6863. }
  6864. public function sendPetAction(_arg1:int, _arg2:int, _arg3:String, _arg4:uint, _arg5:String):void{
  6865. sfs.sendXtMessage("login", ((MessageProtocol.PET_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.PET_MODULE_ACTION), [_arg1, _arg2, _arg3, _arg4, _arg5], "str");
  6866. }
  6867. public function addUserToIgnoreList(_arg1:String):void{
  6868. var _local2:*;
  6869. trace("**addUserToIgnoreList**");
  6870. _local2 = new Array((("userName:" + _arg1) + ","));
  6871. sfs.sendXtMessage("login", "addUserToIgnoreList", _local2, "str");
  6872. }
  6873. public function getLastLog(_arg1:String):void{
  6874. var _local2:*;
  6875. trace("**getLastLog**");
  6876. _local2 = new Array((("userName:" + _arg1) + ","));
  6877. sfs.sendXtMessage("login", "getLastLog", _local2, "str");
  6878. }
  6879. public function setUserVar(_arg1:String, _arg2:String):void{
  6880. var _local3:Object;
  6881. _local3 = new Object();
  6882. _local3[_arg1] = _arg2;
  6883. sfs.setUserVariables(_local3);
  6884. }
  6885. public function turnBasedGameMessageS(_arg1:String, _arg2:String, _arg3:Array){
  6886. sfs.sendXtMessage(_arg1, _arg2, _arg3, "str");
  6887. }
  6888. public function getIgnoreList():void{
  6889. var _local1:*;
  6890. trace("**getIgnoreList**");
  6891. _local1 = new Array("crap:crap,");
  6892. sfs.sendXtMessage("login", "getIgnoreList", _local1, "str");
  6893. }
  6894. public function grabTray(_arg1:int):void{
  6895. sfs.sendXtMessage("login", ((MessageProtocol.DINER_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.DINER_MODULE_GRAB_TRAY), [_arg1], "str");
  6896. }
  6897. public function dispatchLottoDrawEvent():void{
  6898. var _local1:*;
  6899. _local1 = new Event("lottoDraw");
  6900. dispatchEvent(_local1);
  6901. }
  6902. public function addBuddy(_arg1:String):void{
  6903. sfs.addBuddy(_arg1);
  6904. }
  6905. public function petJoinNestLoc(_arg1:int, _arg2:int, _arg3:int, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:uint=0):void{
  6906. sfs.sendXtMessage("login", ((MessageProtocol.PET_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.PET_MODULE_PET_JOIN_NEST_LOC), [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8], "str");
  6907. }
  6908. public function updatePlayerScore(_arg1:int):void{
  6909. sfs.sendXtMessage("login", ((MessageProtocol.DAILYRANKING_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.DAILYRANKING_MODULE_UPDATE_PLAYER_SCORE), [_arg1], "str");
  6910. }
  6911. public function removeBuddy(_arg1:String):void{
  6912. sfs.removeBuddy(_arg1);
  6913. }
  6914. public function sendGetPlazaAvailable(_arg1:String){
  6915. sfs.sendXtMessage("login", ((MessageProtocol.BUSINESS_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.BUSINESS_MODULE_GET_PLAZA_AVAILABILITY), [_arg1], "str");
  6916. }
  6917. public function setNestDoor(_arg1:int):void{
  6918. sfs.sendXtMessage("login", ((MessageProtocol.NEST_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NEST_MODULE_SET_NEST_DOOR), [_arg1], "str");
  6919. }
  6920. public function updatePetStats(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int):void{
  6921. trace("**updatePetStats**");
  6922. sfs.sendXtMessage("login", "p", ["st", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6], "str");
  6923. }
  6924. public function sendNPCExpression(_arg1:int, _arg2:int):void{
  6925. sfs.sendXtMessage("login", ((MessageProtocol.NPC_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NPC_MODULE_SET_NPC_EXPRESSION), [_arg1, _arg2], "str");
  6926. }
  6927. public function getBuddyByName(_arg1:String):Object{
  6928. return (sfs.getBuddyByName(_arg1));
  6929. }
  6930. public function sendPublicMessage(_arg1:String):void{
  6931. sfs.sendPublicMessage(_arg1);
  6932. }
  6933. public function getNewJugglingTrick(_arg1:int, _arg2:int, _arg3:int):void{
  6934. trace("**getNewJugglingTrick**");
  6935. sfs.sendXtMessage("login", "p", ["newJt", _arg1, _arg2, _arg3], "str");
  6936. }
  6937. public function updateJugglingTrick(_arg1:int, _arg2:int, _arg3:Number, _arg4:Number):void{
  6938. trace("**updateJugglingTrick**");
  6939. sfs.sendXtMessage("login", "p", ["jt", _arg1, _arg2, _arg3, _arg4], "str");
  6940. }
  6941. private function onBuddyRoom(_arg1:SFSEvent):void{
  6942. dispatchEvent(_arg1);
  6943. }
  6944. public function sendGetBusinesses(){
  6945. sfs.sendXtMessage("login", ((MessageProtocol.BUSINESS_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.BUSINESS_MODULE_GET_BUSINESS_LIST), [], "str");
  6946. }
  6947. public function removeNPC(_arg1:int){
  6948. sfs.sendXtMessage("login", ((MessageProtocol.NPC_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NPC_MODULE_REMOVE_NPC), [_arg1], "str");
  6949. }
  6950. public function addWeevilExp(_arg1:int):void{
  6951. trace("**updateJugglingTrick**");
  6952. sfs.sendXtMessage("login", "addWeevilExp", [("exp:" + _arg1)], "str");
  6953. }
  6954. function onIOError(_arg1:IOErrorEvent):void{
  6955. trace(("I/O Error: " + _arg1.text));
  6956. }
  6957. public function NPCJoinNestLoc(_arg1:int, _arg2:int, _arg3:int, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0):void{
  6958. sfs.sendXtMessage("login", ((MessageProtocol.NPC_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NPC_MODULE_NPC_JOIN_NEST_LOC), [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7], "str");
  6959. }
  6960. public function dropTray(_arg1:int):void{
  6961. sfs.sendXtMessage("login", ((MessageProtocol.DINER_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.DINER_MODULE_DROP_TRAY), [_arg1], "str");
  6962. }
  6963. function onConfigLoadFailureHandler(_arg1:SFSEvent):void{
  6964. trace(("Failed loading config file: " + _arg1.params.message));
  6965. }
  6966. function onLogin(_arg1:SFSEvent):void{
  6967. var _local2:*;
  6968. _local2 = _arg1.params.dataObj;
  6969. if ((_local2.logged == "true")){
  6970. trace("Successfully logged in");
  6971. trace(("My user info object head colour: " + _local2.user.hc));
  6972. trace(("My user ID sent back is: " + _local2.user.userID));
  6973. trace(("My nest info is: " + _local2.nestXML));
  6974. } else {
  6975. if ((_local2.guest == "true")){
  6976. trace("logged as guest user");
  6977. } else {
  6978. trace("Login failed");
  6979. };
  6980. };
  6981. }
  6982. private function onUserEnterRoom(_arg1:SFSEvent):void{
  6983. trace("onUserEnterRoom");
  6984. dispatchEvent(_arg1);
  6985. }
  6986. public function getPetJugglingSkills(_arg1:int):void{
  6987. trace("**getPetJugglingSkills**");
  6988. sfs.sendXtMessage("login", "p", ["gpjs", _arg1], "str");
  6989. }
  6990. public function sendNPCAction(_arg1:int, _arg2:int, _arg3:String, _arg4:String):void{
  6991. sfs.sendXtMessage("login", ((MessageProtocol.NPC_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NPC_MODULE_NPC_ACTION), [_arg1, _arg2, _arg3, _arg4], "str");
  6992. }
  6993. public function sendRoomEvent(_arg1:String, _arg2:String="-1"):void{
  6994. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_ROOM_EVENT), [_arg1, _arg2], "str");
  6995. }
  6996. public function inviteToNest(_arg1:String):void{
  6997. trace("**inviteToNest**");
  6998. sfs.sendXtMessage("login", ((MessageProtocol.NEST_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NEST_MODULE_INVITE_TO_NEST), [_arg1], "str");
  6999. }
  7000. public function sendAction(_arg1:int, _arg2:int=0, _arg3:String="-1"):void{
  7001. sfs.sendXtMessage("login", ((MessageProtocol.INGAME_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.INGAME_MODULE_ACTION), [_arg1, _arg2, _arg3], "str");
  7002. }
  7003. function onConnectionLost(_arg1:SFSEvent):void{
  7004. trace("Connection lost!");
  7005. dispatchEvent(_arg1);
  7006. }
  7007. public function petGoHome(_arg1:String, _arg2:int, _arg3:String):void{
  7008. sfs.sendXtMessage("login", ((MessageProtocol.PET_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.PET_MODULE_PET_GO_NEST), [_arg1, _arg2, _arg3], "str");
  7009. }
  7010. public function connect(_arg1:String):void{
  7011. defaultZone = _arg1;
  7012. if (!sfs.isConnected){
  7013. sfs.connect(sfs.ipAddress, sfs.port);
  7014. } else {
  7015. trace("You are already connected!");
  7016. };
  7017. }
  7018. public function sendBuddyPermissionResponse(_arg1:Boolean, _arg2:String):void{
  7019. sfs.sendBuddyPermissionResponse(_arg1, _arg2);
  7020. }
  7021. public function updateSpecialMoves(_arg1:String):void{
  7022. trace("**updateSpecialMoves**");
  7023. sfs.sendXtMessage("login", "updateSpecialMoves", [("specialMoves:" + _arg1)], "str");
  7024. }
  7025. public function weevilToString(_arg1:Object):String{
  7026. var _local2:String;
  7027. var _local3:*;
  7028. var _local4:*;
  7029. _local2 = new String("");
  7030. _local3 = new Array("username", "password", "email", "ht", "hc", "bt", "bc", "et", "ec", "at", "ac", "lc", "lids");
  7031. _local4 = 0;
  7032. while (_local4 < _local3.length) {
  7033. if (_arg1[_local3[_local4]] != null){
  7034. _local2 = (_local2 + (((_local3[_local4] + ":") + _arg1[_local3[_local4]]) + ","));
  7035. };
  7036. _local4++;
  7037. };
  7038. return (_local2);
  7039. }
  7040. public function removeGuestFromNest(_arg1:String="-1"):void{
  7041. trace("**removeGuestFromNest**");
  7042. sfs.sendXtMessage("login", ((MessageProtocol.NEST_MODULE_NAME + MessageProtocol.SEPARATOR) + MessageProtocol.NEST_MODULE_REMOVE_GUESTS_FROM_NEST), [_arg1], "str");
  7043. }
  7044. public function getActiveRoom():Object{
  7045. return (sfs.getActiveRoom());
  7046. }
  7047. public function testIsUserUnique(_arg1:String){
  7048. var _local2:Array;
  7049. trace(("testIsUserUnique: " + _arg1));
  7050. _local2 = new Array((("username:" + _arg1) + ",DEf:hooah"));
  7051. trace(_local2[0]);
  7052. sfs.sendXtMessage("login", "isUserUnique", _local2, "str");
  7053. }
  7054. public function getMyPets():void{
  7055. trace("**getMyPets**");
  7056. sfs.sendXtMessage("login", "p", ["getMyPets"], "str");
  7057. }
  7058. public function getSpecialMoves():void{
  7059. var _local1:*;
  7060. trace("**getSpecialMoves**");
  7061. _local1 = new Array("crap:crap,");
  7062. sfs.sendXtMessage("login", "getSpecialMoves", _local1, "str");
  7063. }
  7064.  
  7065. }
  7066. }//package com.binweevils
  7067. package com.binweevils {
  7068.  
  7069. public class Bin_extInterface {
  7070.  
  7071. public static var WEEVILWHEELS_LOCID:int;
  7072. public static var bin:Object;
  7073.  
  7074. }
  7075. }//package com.binweevils
  7076. package com.binweevils.rssmv {
  7077. import flash.display.*;
  7078. import flash.net.*;
  7079.  
  7080. public class Rssmv {
  7081.  
  7082. private static var vars:Array;
  7083. private static var salt:String = "P07aJK8soogA815CxjkTcA==";
  7084. private static var so:SharedObject;
  7085.  
  7086. public function Rssmv(){
  7087. clearVars();
  7088. }
  7089. public static function o_1(_arg1:MovieClip):String{
  7090. var _local2:String;
  7091. var _local3:*;
  7092. so = SharedObject.getLocal("bw-li=sasdasd9283412o3ni423li4jn12l3kn4");
  7093. _local2 = ((so.data.ky)==null) ? "" : so.data.ky;
  7094. _local3 = salt;
  7095. _local3 = (_local3 + _arg1.weevilName_txt.text);
  7096. _local3 = (_local3 + _arg1.password_txt.text);
  7097. _local3 = (_local3 + _local2);
  7098. return (getHashString(_local3));
  7099. }
  7100. private static function arrayToString(_arg1:Array):String{
  7101. var _local2:String;
  7102. var _local3:int;
  7103. _local2 = "";
  7104. _local3 = 0;
  7105. while (_local3 < _arg1.length) {
  7106. _local2 = (_local2 + _arg1[_local3]);
  7107. _local3++;
  7108. };
  7109. return (_local2);
  7110. }
  7111. public static function addVar(_arg1:String):void{
  7112. vars.push(_arg1);
  7113. }
  7114. public static function o_2(_arg1:Array):String{
  7115. var _local2:*;
  7116. _local2 = arrayToString(_arg1);
  7117. return (getHashString((salt + _local2)));
  7118. }
  7119. public static function getHashString(_arg1:String):String{
  7120. var _local2:Ne6;
  7121. if (_arg1 == ""){
  7122. return (_arg1);
  7123. };
  7124. _local2 = new Ne6();
  7125. return (_local2.calculate(_arg1));
  7126. }
  7127. public static function clearVars():void{
  7128. vars = [];
  7129. }
  7130.  
  7131. }
  7132. }//package com.binweevils.rssmv
  7133. package com.binweevils.rssmv {
  7134.  
  7135. public class Ne6 {
  7136.  
  7137. private static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
  7138. return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7));
  7139. }
  7140. private static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
  7141. return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7));
  7142. }
  7143. private static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{
  7144. return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3));
  7145. }
  7146. private static function binl2hex(_arg1:Array):String{
  7147. var _local2:String;
  7148. var _local3:String;
  7149. var _local4:Number;
  7150. _local2 = new String("");
  7151. _local3 = new String("0123456789abcdef");
  7152. _local4 = 0;
  7153. while (_local4 < (_arg1.length * 4)) {
  7154. _local2 = (_local2 + (_local3.charAt(((_arg1[(_local4 >> 2)] >> (((_local4 % 4) * 8) + 4)) & 15)) + _local3.charAt(((_arg1[(_local4 >> 2)] >> ((_local4 % 4) * 8)) & 15))));
  7155. _local4++;
  7156. };
  7157. return (_local2);
  7158. }
  7159. private static function str2binl(_arg1:String):Array{
  7160. var _local2:Array;
  7161. var _local3:Number;
  7162. var _local4:Number;
  7163. _local2 = new Array();
  7164. _local3 = ((1 << 8) - 1);
  7165. _local4 = 0;
  7166. while (_local4 < (_arg1.length * 8)) {
  7167. _local2[(_local4 >> 5)] = (_local2[(_local4 >> 5)] | ((_arg1.charCodeAt((_local4 / 8)) & _local3) << (_local4 % 32)));
  7168. _local4 = (_local4 + 8);
  7169. };
  7170. return (_local2);
  7171. }
  7172. private static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
  7173. return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
  7174. }
  7175. private static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
  7176. return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
  7177. }
  7178. private static function hex_md5(_arg1:String):String{
  7179. return (binl2hex(core_md5(str2binl(_arg1), (_arg1.length * 8))));
  7180. }
  7181. private static function bit_rol(_arg1:Number, _arg2:Number):Number{
  7182. return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
  7183. }
  7184. private static function core_md5(_arg1:Array, _arg2:Number):Array{
  7185. var _local3:Number;
  7186. var _local4:Number;
  7187. var _local5:Number;
  7188. var _local6:Number;
  7189. var _local7:Number;
  7190. var _local8:Number;
  7191. var _local9:Number;
  7192. var _local10:Number;
  7193. var _local11:Number;
  7194. _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32)));
  7195. _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2;
  7196. _local3 = 1732584193;
  7197. _local4 = -271733879;
  7198. _local5 = -1732584194;
  7199. _local6 = 271733878;
  7200. _local7 = 0;
  7201. while (_local7 < _arg1.length) {
  7202. _local8 = _local3;
  7203. _local9 = _local4;
  7204. _local10 = _local5;
  7205. _local11 = _local6;
  7206. _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936);
  7207. _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586);
  7208. _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819);
  7209. _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330);
  7210. _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897);
  7211. _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426);
  7212. _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341);
  7213. _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983);
  7214. _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416);
  7215. _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417);
  7216. _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063);
  7217. _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162);
  7218. _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682);
  7219. _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101);
  7220. _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290);
  7221. _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329);
  7222. _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510);
  7223. _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632);
  7224. _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713);
  7225. _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302);
  7226. _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691);
  7227. _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083);
  7228. _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335);
  7229. _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848);
  7230. _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438);
  7231. _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690);
  7232. _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961);
  7233. _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501);
  7234. _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467);
  7235. _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784);
  7236. _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473);
  7237. _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734);
  7238. _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558);
  7239. _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463);
  7240. _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562);
  7241. _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556);
  7242. _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060);
  7243. _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353);
  7244. _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632);
  7245. _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640);
  7246. _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174);
  7247. _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222);
  7248. _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979);
  7249. _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189);
  7250. _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487);
  7251. _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835);
  7252. _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520);
  7253. _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651);
  7254. _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844);
  7255. _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415);
  7256. _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905);
  7257. _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055);
  7258. _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571);
  7259. _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606);
  7260. _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523);
  7261. _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799);
  7262. _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359);
  7263. _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744);
  7264. _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380);
  7265. _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649);
  7266. _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070);
  7267. _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379);
  7268. _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259);
  7269. _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551);
  7270. _local3 = safe_add(_local3, _local8);
  7271. _local4 = safe_add(_local4, _local9);
  7272. _local5 = safe_add(_local5, _local10);
  7273. _local6 = safe_add(_local6, _local11);
  7274. _local7 = (_local7 + 16);
  7275. };
  7276. return (new Array(_local3, _local4, _local5, _local6));
  7277. }
  7278. private static function safe_add(_arg1:Number, _arg2:Number):Number{
  7279. var _local3:Number;
  7280. var _local4:Number;
  7281. _local3 = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF));
  7282. _local4 = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16));
  7283. return (((_local4 << 16) | (_local3 & 0xFFFF)));
  7284. }
  7285.  
  7286. public function calculate(_arg1:String):String{
  7287. return (hex_md5(_arg1));
  7288. }
  7289.  
  7290. }
  7291. }//package com.binweevils.rssmv
  7292. package com.binweevils.conf {
  7293.  
  7294. public class MessageProtocol {
  7295.  
  7296. public static const NPC_MODULE_NAME:String = "14";
  7297. public static const SQUARE_GAME_NAME:String = "s";
  7298. public static const CHAT_MODULE_NAME:String = "1";
  7299. public static const INGAME_MODULE_MOVE:String = "1";
  7300. public static const TURN_BASED_GAME_MODULE_PLAYER_PLAYED:String = "1";
  7301. public static const INGAME_MODULE_ROOM_EVENT:String = "5";
  7302. public static const BUSINESS_MODULE_DISCOTHEQUE:String = "2";
  7303. public static const EVENT_SPECTATOR_SWITCHED:String = "spectatorSwitched";
  7304. public static const PET_MODULE_ACTION:String = "4";
  7305. public static const BUSINESS_MODULE_RESTAURANT:String = "4";
  7306. public static const NPC_MODULE_REMOVE_NPC:String = "2";
  7307. public static const USER_LOST_END_GAME:String = "l";
  7308. public static const CARD_SEPARATOR:String = "#";
  7309. public static const ADMIN_MODULE_REMOVE_BAN:String = "remove_ban_by_name";
  7310. public static const EVENT_NEW_ROOM:String = "newRoom";
  7311. public static const LOTTERY_MODULE_NAME:String = "8";
  7312. public static const NEST_MODULE_SET_NEST_DOOR:String = "1";
  7313. public static const EVENT_LOGIN_REQUEST:String = "loginRequest";
  7314. public static const EVENT_PUBLIC_MESSAGE:String = "pubMsg";
  7315. public static const BALL_GAME_NAME:String = "b";
  7316. public static const DAILYRANKING_MODULE_UPDATE_PLAYER_SCORE:String = "1";
  7317. public static const NEST_MODULE_GUEST_JOINED_NEST:String = "5";
  7318. public static const BINCARD_MODULE_PLAYER_LEAVE_SLOT:String = "8";
  7319. public static const EVENT_ROOM_LOST:String = "roomLost";
  7320. public static const BUSINESS_MODULE_NAME:String = "12";
  7321. public static const NEST_MODULE_REMOVE_GUESTS_FROM_NEST:String = "4";
  7322. public static const LOGIN_MODULE_NAME:String = "3";
  7323. public static const TURN_BASED_GAME_MODULE_PLAYER_JOINED:String = "2";
  7324. public static const DINER_MODULE_NAME:String = "9";
  7325. public static const STAT_SEPARATOR:String = ",";
  7326. public static const SEPARATOR_LEVEL_1:String = "|";
  7327. public static const SEPARATOR_LEVEL_2:String = ":";
  7328. public static const CRONJOBS_MODULE_NAME = "11";
  7329. public static const NPC_MODULE_SET_NPC_NEST_DOOR:String = "6";
  7330. public static const BINCARD_MODULE_START_ROUND:String = "10";
  7331. public static const BUSINESS_MODULE_SALON:String = "3";
  7332. public static const INGAME_MODULE_EXPRESSION:String = "2";
  7333. public static const ADMIN_MODULE_BAN:String = "ban_by_name";
  7334. public static const CHAT_MODULE_CHANGE_CHAT_STATE:String = "2";
  7335. public static const BINCARD_MODULE_NAME:String = "13";
  7336. public static const NPC_MODULE_CREATE_NPC:String = "1";
  7337. public static const DINER_MODULE_DROP_TRAY:String = "2";
  7338. public static const ATTRIBUTE_SEPARATOR:String = "|";
  7339. public static const SEPARATOR:String = "#";
  7340. public static const BINCARD_MODULE_PLAYER_START_TO_PLAY:String = "5";
  7341. public static const PET_MODULE_PET_EXPRESSION:String = "3";
  7342. public static const ADMIN_MODULE_SILENCE:String = "2";
  7343. public static const EVENT_LOG_OUT:String = "logOut";
  7344. public static const BINCARD_MODULE_PLAYER_RESPONSE:String = "4";
  7345. public static const INGAME_MODULE_NAME:String = "2";
  7346. public static const TURN_BASED_GAME_MODULE_NAME:String = "4";
  7347. public static const BINCARD_MODULE_PLAYER_CHOSE_CARD:String = "7";
  7348. public static const NEST_MODULE_JOIN_NEST_LOCATION:String = "2";
  7349. public static const CHAT_MODULE_CHAT_YOURSELF:String = "1";
  7350. public static const BINCARD_MODULE_RULE_NORMAL:String = "n";
  7351. public static const BUSINESS_MODULE_GET_BUSINESS_LIST:String = "2";
  7352. public static const BINCARD_MODULE_PLAYER_READY_TO_PLAY:String = "3";
  7353. public static const DINER_MODULE_CHEF_START:String = "3";
  7354. public static const NEST_MODULE_NAME:String = "5";
  7355. public static const NEST_MODULE_RETURN_TO_NEST:String = "7";
  7356. public static const PET_MODULE_PET_JOIN_NEST_LOC:String = "1";
  7357. public static const PET_MODULE_GOT_BALL:String = "5";
  7358. public static const ADMIN_MODULE_KICK:String = "kick";
  7359. public static const NPC_MODULE_SET_NPC_EXPRESSION:String = "4";
  7360. public static const FLIP_MULCH_GAME_NAME:String = "f";
  7361. public static const DAILYRANKING_MODULE_NAME:String = "10";
  7362. public static const PET_MODULE_NAME:String = "6";
  7363. public static const INGAME_MODULE_CHANGE_WEEVILDEF:String = "10";
  7364. public static const NPC_MODULE_NPC_ACTION:String = "3";
  7365. public static const EVENT_PRIVATE_MESSAGE:String = "privMsg";
  7366. public static const NORMAL_END_GAME:String = "n";
  7367. public static const NEST_MODULE_REMOVE_NEST_INVITES:String = "6";
  7368. public static const ADMIN_MODULE_REPORT:String = "1";
  7369. public static const DINER_MODULE_CHEF_QUIT:String = "4";
  7370. public static const INGAME_MODULE_JOIN_ROOM:String = "4";
  7371. public static const BINCARD_MODULE_PLAYER2:String = "p2";
  7372. public static const BINCARD_MODULE_SHOW_DECK:String = "14";
  7373. public static const ADMIN_MODULE_WARN:String = "warn";
  7374. public static const ADMIN_MODULE_NAME:String = "7";
  7375. public static const BINCARD_MODULE_DRAW:String = "d";
  7376. public static const USER_QUIT_END_GAME:String = "q";
  7377. public static const BINCARD_MODULE_PLAYER1:String = "p1";
  7378. public static const DINER_MODULE_GRAB_TRAY:String = "1";
  7379. public static const EVENT_USER_EXIT:String = "userExit";
  7380. public static const BINCARD_MODULE_STAT1:String = "1";
  7381. public static const EVENT_USER_LOST:String = "userLost";
  7382. public static const BINCARD_MODULE_STAT3:String = "3";
  7383. public static const BINCARD_MODULE_STAT4:String = "4";
  7384. public static const EVENT_USER_JOIN:String = "userJoin";
  7385. public static const BINCARD_MODULE_STAT2:String = "2";
  7386. public static const BINCARD_MODULE_END_ROUND:String = "11";
  7387. public static const BINCARD_MODULE_END_GAME:String = "12";
  7388. public static const INGAME_MODULE_CHECK_MESSAGE:String = "9";
  7389. public static const BUSINESS_MODULE_GET_PLAZA_AVAILABILITY:String = "3";
  7390. public static const BINCARD_MODULE_PLAYER_QUIT_GAME:String = "6";
  7391. public static const INGAME_MODULE_ADD_APPAREL:String = "7";
  7392. public static const BINCARD_MODULE_GAME_OVER:String = "13";
  7393. public static const BINCARD_MODULE_START_GAME:String = "9";
  7394. public static const LOTTERY_MODULE_BROADCAST_DRAW:String = "1";
  7395. public static const BINCARD_MODULE_PLAYER_JOIN_SLOT:String = "2";
  7396. public static const INGAME_MODULE_ACTION:String = "3";
  7397. public static const BUSINESS_MODULE_SET_BUSINESS_STATE:String = "1";
  7398. public static const MULCH4_GAME_NAME:String = "m";
  7399. public static const INGAME_MODULE_GET_ZONE_TIME:String = "6";
  7400. public static const TURN_BASED_GAME_MODULE_PLAYER_LEFT:String = "3";
  7401. public static const NPC_MODULE_NPC_JOIN_NEST_LOC:String = "5";
  7402. public static const EVENT_FILE_UPLOAD:String = "fileUpload";
  7403. public static const PET_MODULE_SET_NEST_DOOR_PET:String = "2";
  7404. public static const PET_MODULE_SEND_PET_COMMAND:String = "7";
  7405. public static const INGAME_MODULE_REMOVE_APPAREL:String = "8";
  7406. public static const BINCARD_MODULE_RULE_INVERT:String = "i";
  7407. public static const NEST_MODULE_INVITE_TO_NEST:String = "3";
  7408. public static const BINCARD_MODULE_PLAYER_REFUSED_TO_PLAY:String = "1";
  7409. public static const BUSINESS_MODULE_PHOTOSTUDIO:String = "7";
  7410. public static const PET_MODULE_PET_GO_NEST:String = "6";
  7411.  
  7412. public static function getCommmandRest(_arg1:String):String{
  7413. var _local2:String;
  7414. _local2 = getCommmandName(_arg1);
  7415. return (_arg1.substring((_local2.length + MessageProtocol.SEPARATOR.length), _arg1.length));
  7416. }
  7417. public static function getCommmandName(_arg1:String):String{
  7418. var _local2:Array;
  7419. _local2 = _arg1.split(SEPARATOR);
  7420. return (_local2[0]);
  7421. }
  7422.  
  7423. }
  7424. }//package com.binweevils.conf
  7425. package {
  7426. import flash.display.*;
  7427.  
  7428. public dynamic class Button_overSkin extends MovieClip {
  7429.  
  7430. }
  7431. }//package
  7432. package mulch4_08_07_11_fla {
  7433. import flash.display.*;
  7434.  
  7435. public dynamic class confirmSpectatorStatus_mc_18 extends MovieClip {
  7436.  
  7437. public var btnYes:SimpleButton;
  7438. public var btnNo:SimpleButton;
  7439.  
  7440. }
  7441. }//package mulch4_08_07_11_fla
  7442. package mulch4_08_07_11_fla {
  7443. import flash.display.*;
  7444.  
  7445. public dynamic class winnerHeader_23 extends MovieClip {
  7446.  
  7447. public function winnerHeader_23(){
  7448. addFrameScript(0, frame1, 1, frame2, 2, frame3);
  7449. }
  7450. function frame3(){
  7451. stop();
  7452. }
  7453. function frame1(){
  7454. stop();
  7455. }
  7456. function frame2(){
  7457. stop();
  7458. }
  7459.  
  7460. }
  7461. }//package mulch4_08_07_11_fla
  7462. package mulch4_08_07_11_fla {
  7463. import flash.display.*;
  7464. import flash.text.*;
  7465.  
  7466. public dynamic class winner_mc_22 extends MovieClip {
  7467.  
  7468. public var msg_txt:TextField;
  7469. public var title_mc:MovieClip;
  7470.  
  7471. }
  7472. }//package mulch4_08_07_11_fla
  7473. package mulch4_08_07_11_fla {
  7474. import flash.display.*;
  7475. import flash.text.*;
  7476.  
  7477. public dynamic class gameOver_mc_24 extends MovieClip {
  7478.  
  7479. public var msg_txt:TextField;
  7480.  
  7481. }
  7482. }//package mulch4_08_07_11_fla
  7483. package mulch4_08_07_11_fla {
  7484. import flash.display.*;
  7485. import flash.text.*;
  7486.  
  7487. public dynamic class staleMate_mc_25 extends MovieClip {
  7488.  
  7489. public var msg_txt:TextField;
  7490.  
  7491. }
  7492. }//package mulch4_08_07_11_fla
  7493. package mulch4_08_07_11_fla {
  7494. import flash.display.*;
  7495.  
  7496. public dynamic class confirmJoin_mc_26 extends MovieClip {
  7497.  
  7498. public var btnYes:SimpleButton;
  7499. public var btnNo:SimpleButton;
  7500.  
  7501. }
  7502. }//package mulch4_08_07_11_fla
  7503. package mulch4_08_07_11_fla {
  7504. import flash.display.*;
  7505.  
  7506. public dynamic class mulchPiece2_9 extends MovieClip {
  7507.  
  7508. public function mulchPiece2_9(){
  7509. addFrameScript(0, frame1, 1, frame2);
  7510. }
  7511. function frame1(){
  7512. stop();
  7513. }
  7514. function frame2(){
  7515. stop();
  7516. }
  7517.  
  7518. }
  7519. }//package mulch4_08_07_11_fla
  7520. package mulch4_08_07_11_fla {
  7521. import flash.display.*;
  7522.  
  7523. public dynamic class mulch_6 extends MovieClip {
  7524.  
  7525. public var highlight_mc:MovieClip;
  7526.  
  7527. public function mulch_6(){
  7528. addFrameScript(0, frame1, 1, frame2, 2, frame3);
  7529. }
  7530. function frame3(){
  7531. stop();
  7532. }
  7533. function frame1(){
  7534. stop();
  7535. }
  7536. function frame2(){
  7537. stop();
  7538. }
  7539.  
  7540. }
  7541. }//package mulch4_08_07_11_fla
  7542. package mulch4_08_07_11_fla {
  7543. import flash.display.*;
  7544.  
  7545. public dynamic class waitingForOtherPlayer_12 extends MovieClip {
  7546.  
  7547. public function waitingForOtherPlayer_12(){
  7548. addFrameScript(28, frame29);
  7549. }
  7550. function frame29(){
  7551. gotoAndPlay(0);
  7552. }
  7553.  
  7554. }
  7555. }//package mulch4_08_07_11_fla
  7556. package mulch4_08_07_11_fla {
  7557. import flash.display.*;
  7558.  
  7559. public dynamic class pleaseWait_27 extends MovieClip {
  7560.  
  7561. public function pleaseWait_27(){
  7562. addFrameScript(7, frame8);
  7563. }
  7564. function frame8(){
  7565. gotoAndPlay(0);
  7566. }
  7567.  
  7568. }
  7569. }//package mulch4_08_07_11_fla
Add Comment
Please, Sign In to add comment