PageRenderTime 51ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/zombie-stick-level-editor-workspace/jxldebug/src/Debug.as

https://github.com/JesterXL/ZombieStick
ActionScript | 935 lines | 838 code | 77 blank | 20 comment | 90 complexity | 4df3ed34feb9974c638dbb38ac026960 MD5 | raw file
  1. package
  2. {
  3. import com.jxl.debug.Colors;
  4. import com.jxl.debug.DebugMaxItemRenderer;
  5. import com.jxl.debug.Message;
  6. import com.jxl.debug.MessageType;
  7. import flash.display.Sprite;
  8. import flash.events.Event;
  9. import flash.events.MouseEvent;
  10. import flash.events.TimerEvent;
  11. import flash.filters.DropShadowFilter;
  12. import flash.net.SharedObject;
  13. import flash.system.System;
  14. import flash.utils.Dictionary;
  15. import flash.utils.Timer;
  16. import mx.collections.ArrayCollection;
  17. import mx.core.ClassFactory;
  18. import mx.core.UIComponent;
  19. import mx.events.CloseEvent;
  20. import mx.events.CollectionEvent;
  21. import mx.events.ItemClickEvent;
  22. import mx.managers.PopUpManager;
  23. import spark.components.Button;
  24. import spark.components.CheckBox;
  25. import spark.components.List;
  26. import spark.components.TabBar;
  27. public class Debug extends UIComponent
  28. {
  29. public static const USER_ALL:String = "All";
  30. public static var DEBUG_DISABLED:Boolean = false;
  31. public static const USER_DEVELOPER_B:String = "DeveloperB";
  32. private static var NAMES:Dictionary;
  33. private static const ALLOWED_USERS:Array = [USER_DEVELOPER_B, USER_ALL];
  34. private static var inst:Debug;
  35. private static var backlog:ArrayCollection = new ArrayCollection();
  36. private static var constrctured:Boolean = classConstruct();
  37. private static const MARGIN:Number = 4;
  38. private static const HEADER_TEXT:String = "---------------------";
  39. private var copyButton:Button;
  40. private var scrollCheckBox:CheckBox;
  41. private var list:List;
  42. private var background:Sprite;
  43. private var closeButton:Button;
  44. private var tabs:TabBar;
  45. private var messages:ArrayCollection;
  46. private var autoScrollDirty:Boolean = false;
  47. private var clearButton:Button;
  48. private var dragging:Boolean = false;
  49. private var scrollTimer:Timer;
  50. private var _autoScroll:Boolean = true;
  51. public function Debug() : void
  52. {
  53. super();
  54. init();
  55. }
  56. private function init():void
  57. {
  58. inst = this;
  59. setStyle("color", 3355443);
  60. // TODO/FIXME
  61. /*
  62. var debugging:Boolean = true;
  63. if (debugging)
  64. {
  65. DEBUG_DISABLED = false;
  66. }
  67. else
  68. {
  69. DEBUG_DISABLED = true;
  70. }
  71. if (DEBUG_DISABLED)
  72. {
  73. return;
  74. }
  75. */
  76. addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
  77. addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
  78. var bLog:* = backlog.source.concat();
  79. bLog.sortOn("date", Array.NUMERIC);
  80. messages = new ArrayCollection(bLog);
  81. messages.addEventListener(CollectionEvent.COLLECTION_CHANGE, onMessagesChanged);
  82. backlog.removeAll();
  83. backlog = null;
  84. }
  85. public function fatal(o:*, user:String = "All") : void
  86. {
  87. if (DEBUG_DISABLED)
  88. {
  89. return;
  90. }
  91. if (ALLOWED_USERS.indexOf(user) < 0)
  92. {
  93. return;
  94. }
  95. trace(o);
  96. messages.addItem(new Message(MessageType.FATAL, o, user));
  97. }
  98. public function warn(o:*, user:String = "All") : void
  99. {
  100. if (DEBUG_DISABLED)
  101. {
  102. return;
  103. }
  104. if (ALLOWED_USERS.indexOf(user) < 0)
  105. {
  106. return;
  107. }
  108. trace(o);
  109. messages.addItem(new Message(MessageType.WARN, o, user));
  110. }
  111. public function error(o:*, user:String = "All") : void
  112. {
  113. if (DEBUG_DISABLED)
  114. {
  115. return;
  116. }
  117. if (ALLOWED_USERS.indexOf(user) < 0)
  118. {
  119. return;
  120. }
  121. trace(o);
  122. messages.addItem(new Message(MessageType.ERROR, o, user));
  123. }
  124. private function onMouseMove(event:MouseEvent) : void
  125. {
  126. event.updateAfterEvent();
  127. }
  128. private function onItemClick(event:ItemClickEvent) : void
  129. {
  130. switch(event.item)
  131. {
  132. case NAMES[MessageType.LOG]:
  133. {
  134. filterMessages(MessageType.LOG);
  135. list.setStyle("borderColor", Colors.LOG);
  136. break;
  137. }
  138. case NAMES[MessageType.DEBUG]:
  139. {
  140. filterMessages(MessageType.DEBUG);
  141. list.setStyle("borderColor", Colors.DEBUG);
  142. break;
  143. }
  144. case NAMES[MessageType.INFO]:
  145. {
  146. filterMessages(MessageType.INFO);
  147. list.setStyle("borderColor", Colors.INFO);
  148. break;
  149. }
  150. case NAMES[MessageType.WARN]:
  151. {
  152. filterMessages(MessageType.WARN);
  153. list.setStyle("borderColor", Colors.WARN);
  154. break;
  155. }
  156. case NAMES[MessageType.ERROR]:
  157. {
  158. filterMessages(MessageType.ERROR);
  159. list.setStyle("borderColor", Colors.ERROR);
  160. break;
  161. }
  162. case NAMES[MessageType.FATAL]:
  163. {
  164. filterMessages(MessageType.FATAL);
  165. list.setStyle("borderColor", Colors.FATAL);
  166. break;
  167. }
  168. default:
  169. {
  170. break;
  171. }
  172. }
  173. }
  174. override protected function createChildren() : void
  175. {
  176. super.createChildren();
  177. background = new Sprite();
  178. addChild(background);
  179. background.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
  180. background.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
  181. background.buttonMode = true;
  182. tabs = new TabBar();
  183. tabs.includeInLayout = false;
  184. addChild(tabs);
  185. tabs.dataProvider = new ArrayCollection([NAMES[MessageType.LOG], NAMES[MessageType.DEBUG], NAMES[MessageType.INFO], NAMES[MessageType.WARN], NAMES[MessageType.ERROR], NAMES[MessageType.FATAL]]);
  186. tabs.addEventListener(ItemClickEvent.ITEM_CLICK, onItemClick);
  187. tabs.height = 22;
  188. tabs.setStyle("tabWidth", 70);
  189. list = new List();
  190. list.includeInLayout = false;
  191. addChild(list);
  192. list.dataProvider = messages;
  193. //list.variableRowHeight = true;
  194. //list.wordWrap = true;
  195. list.labelField = "content";
  196. list.allowMultipleSelection = true;
  197. list.itemRenderer = new ClassFactory(DebugMaxItemRenderer);
  198. list.setStyle("borderStyle", "solid");
  199. list.setStyle("borderThickness", 4);
  200. clearButton = new Button();
  201. clearButton.includeInLayout = false;
  202. addChild(clearButton);
  203. clearButton.addEventListener(MouseEvent.CLICK, onClear);
  204. clearButton.height = 22;
  205. clearButton.label = "Clear";
  206. copyButton = new Button();
  207. copyButton.includeInLayout = false;
  208. addChild(copyButton);
  209. copyButton.addEventListener(MouseEvent.CLICK, onCopy);
  210. copyButton.height = 22;
  211. copyButton.width = 120;
  212. copyButton.label = "Copy to Clipboard";
  213. scrollCheckBox = new CheckBox();
  214. scrollCheckBox.includeInLayout = false;
  215. addChild(scrollCheckBox);
  216. scrollCheckBox.label = "auto-scroll";
  217. scrollCheckBox.selected = autoScroll;
  218. scrollCheckBox.addEventListener(Event.CHANGE, onToggleAutoScroll);
  219. scrollCheckBox.setActualSize(100, 22);
  220. scrollCheckBox.styleName = "checkBoxStyle";
  221. closeButton = new Button();
  222. closeButton.includeInLayout = false;
  223. addChild(closeButton);
  224. closeButton.addEventListener(MouseEvent.CLICK, onClose);
  225. closeButton.setActualSize(16, 16);
  226. var filter:* = new DropShadowFilter(3, 45, 3355443, 0.7, 4, 4, 1, 1, false, false, false);
  227. filters = [filter];
  228. callLater(scrollIt);
  229. }
  230. private function onTick(event:TimerEvent) : void
  231. {
  232. scrollIt();
  233. if (_autoScroll == false)
  234. {
  235. destroyScrollTimer();
  236. }
  237. if (list == null)
  238. {
  239. destroyScrollTimer();
  240. }
  241. // TODO: totally lost that blogpost on what the new property name is...
  242. if (list.scroller.viewport.verticalScrollPosition == maxVerticalScrollPosition)
  243. {
  244. destroyScrollTimer();
  245. }
  246. }
  247. private function destroyScrollTimer() : void
  248. {
  249. if (scrollTimer)
  250. {
  251. scrollTimer.stop();
  252. scrollTimer.removeEventListener(TimerEvent.TIMER, onTick);
  253. scrollTimer = null;
  254. }
  255. }
  256. private function onAddedToStage(event:Event) : void
  257. {
  258. var so:SharedObject;
  259. var event:* = event;
  260. stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
  261. try
  262. {
  263. so = SharedObject.getLocal("DebugMax_position");
  264. if (so != null)
  265. {
  266. if (so.data.pos != null)
  267. {
  268. if (so.data.pos.x != undefined && so.data.pos.y != undefined)
  269. {
  270. move(so.data.pos.x, so.data.pos.y);
  271. }
  272. }
  273. }
  274. }
  275. catch (err:Error)
  276. {
  277. }
  278. }
  279. public function info(o:*, user:String = "All") : void
  280. {
  281. if (DEBUG_DISABLED)
  282. {
  283. return;
  284. }
  285. if (ALLOWED_USERS.indexOf(user) < 0)
  286. {
  287. return;
  288. }
  289. trace(o);
  290. messages.addItem(new Message(MessageType.INFO, o, user));
  291. }
  292. public function fatalHeader(user:String = "All") : void
  293. {
  294. if (DEBUG_DISABLED)
  295. {
  296. return;
  297. }
  298. if (ALLOWED_USERS.indexOf(user) < 0)
  299. {
  300. return;
  301. }
  302. trace(HEADER_TEXT);
  303. messages.addItem(new Message(MessageType.FATAL, HEADER_TEXT, user));
  304. }
  305. public function errorHeader(user:String = "All") : void
  306. {
  307. if (DEBUG_DISABLED)
  308. {
  309. return;
  310. }
  311. if (ALLOWED_USERS.indexOf(user) < 0)
  312. {
  313. return;
  314. }
  315. trace(HEADER_TEXT);
  316. messages.addItem(new Message(MessageType.ERROR, HEADER_TEXT, user));
  317. }
  318. public function set autoScroll(scroll:Boolean) : void
  319. {
  320. _autoScroll = scroll;
  321. autoScrollDirty = true;
  322. invalidateProperties();
  323. }
  324. public function warnHeader(user:String = "All") : void
  325. {
  326. if (DEBUG_DISABLED)
  327. {
  328. return;
  329. }
  330. if (ALLOWED_USERS.indexOf(user) < 0)
  331. {
  332. return;
  333. }
  334. trace(HEADER_TEXT);
  335. messages.addItem(new Message(MessageType.WARN, HEADER_TEXT, user));
  336. }
  337. private function onClear(event:MouseEvent) : void
  338. {
  339. messages.removeAll();
  340. }
  341. public function debugHeader(user:String = "All") : void
  342. {
  343. if (DEBUG_DISABLED)
  344. {
  345. return;
  346. }
  347. if (ALLOWED_USERS.indexOf(user) < 0)
  348. {
  349. return;
  350. }
  351. trace(HEADER_TEXT);
  352. messages.addItem(new Message(MessageType.DEBUG, HEADER_TEXT, user));
  353. }
  354. private function onMouseUp(event:MouseEvent) : void
  355. {
  356. if (dragging)
  357. {
  358. dragging = false;
  359. removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
  360. stopDrag();
  361. event.updateAfterEvent();
  362. var so:SharedObject = SharedObject.getLocal("DebugMax_position");
  363. so.data.pos = {x:x, y:y};
  364. var result:String = so.flush();
  365. }
  366. }
  367. public function log(o:*, user:String = "All") : void
  368. {
  369. if (DEBUG_DISABLED)
  370. {
  371. return;
  372. }
  373. if (ALLOWED_USERS.indexOf(user) < 0)
  374. {
  375. return;
  376. }
  377. trace(o);
  378. messages.addItem(new Message(MessageType.LOG, o, user));
  379. }
  380. private function onMouseDown(event:MouseEvent) : void
  381. {
  382. if (dragging == false)
  383. {
  384. dragging = true;
  385. this.startDrag();
  386. this.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
  387. }
  388. }
  389. override protected function commitProperties() : void
  390. {
  391. super.commitProperties();
  392. if (autoScrollDirty)
  393. {
  394. autoScrollDirty = false;
  395. scrollCheckBox.selected = _autoScroll;
  396. }
  397. }
  398. private function onToggleAutoScroll(event:Event) : void
  399. {
  400. _autoScroll = scrollCheckBox.selected;
  401. }
  402. public function debug(o:*, user:String = "All") : void
  403. {
  404. if (DEBUG_DISABLED)
  405. {
  406. return;
  407. }
  408. if (ALLOWED_USERS.indexOf(user) < 0)
  409. {
  410. return;
  411. }
  412. trace(o);
  413. messages.addItem(new Message(MessageType.DEBUG, o, user));
  414. }
  415. private function scrollIt() : void
  416. {
  417. if (_autoScroll)
  418. {
  419. if (list)
  420. {
  421. list.scroller.viewport.verticalScrollPosition = maxVerticalScrollPosition;
  422. }
  423. }
  424. }
  425. private function get maxVerticalScrollPosition():int
  426. {
  427. return list.scroller.viewport.contentHeight - list.scroller.viewport.height;
  428. }
  429. private function onClose(event:MouseEvent) : void
  430. {
  431. var messages:Array;
  432. inst = null;
  433. if (messages)
  434. {
  435. messages = messages.source.concat();
  436. backlog = new ArrayCollection(messages);
  437. messages.removeAll();
  438. messages = null;
  439. }
  440. PopUpManager.removePopUp(this);
  441. dispatchEvent(new CloseEvent(CloseEvent.CLOSE));
  442. }
  443. public function infoHeader(user:String = "All") : void
  444. {
  445. if (DEBUG_DISABLED)
  446. {
  447. return;
  448. }
  449. if (ALLOWED_USERS.indexOf(user) < 0)
  450. {
  451. return;
  452. }
  453. trace(HEADER_TEXT);
  454. messages.addItem(new Message(MessageType.INFO, HEADER_TEXT, user));
  455. }
  456. public function get autoScroll() : Boolean
  457. {
  458. return _autoScroll;
  459. }
  460. override protected function measure() : void
  461. {
  462. measuredMinWidth = 120;
  463. measuredMinHeight = 120;
  464. measuredWidth = 540;
  465. measuredHeight = 400;
  466. }
  467. private function filterMessages(type:uint) : void
  468. {
  469. var type:uint = type;
  470. switch(type)
  471. {
  472. case MessageType.LOG:
  473. {
  474. messages.filterFunction = null;
  475. break;
  476. }
  477. case MessageType.DEBUG:
  478. {
  479. messages.filterFunction = function (message:Message) : Boolean
  480. {
  481. if (message.type >= MessageType.DEBUG)
  482. {
  483. return true;
  484. }
  485. return false;
  486. };
  487. break;
  488. }
  489. case MessageType.INFO:
  490. {
  491. messages.filterFunction = function (message:Message) : Boolean
  492. {
  493. if (message.type >= MessageType.INFO)
  494. {
  495. return true;
  496. }
  497. return false;
  498. };
  499. break;
  500. }
  501. case MessageType.WARN:
  502. {
  503. messages.filterFunction = function (message:Message) : Boolean
  504. {
  505. if (message.type >= MessageType.WARN)
  506. {
  507. return true;
  508. }
  509. return false;
  510. };
  511. break;
  512. }
  513. case MessageType.ERROR:
  514. {
  515. messages.filterFunction = function (message:Message) : Boolean
  516. {
  517. if (message.type >= MessageType.ERROR)
  518. {
  519. return true;
  520. }
  521. return false;
  522. };
  523. break;
  524. }
  525. case MessageType.FATAL:
  526. {
  527. messages.filterFunction = function (message:Message) : Boolean
  528. {
  529. if (message.type >= MessageType.FATAL)
  530. {
  531. return true;
  532. }
  533. return false;
  534. };
  535. break;
  536. }
  537. }
  538. messages.refresh();
  539. }
  540. private function onMessagesChanged(event:CollectionEvent) : void
  541. {
  542. scrollIt();
  543. destroyScrollTimer();
  544. if (scrollTimer == null)
  545. {
  546. scrollTimer = new Timer(500);
  547. scrollTimer.addEventListener(TimerEvent.TIMER, onTick, false, 0, true);
  548. scrollTimer.start();
  549. }
  550. }
  551. public function logHeader(user:String = "All") : void
  552. {
  553. if (DEBUG_DISABLED)
  554. {
  555. return;
  556. }
  557. if (ALLOWED_USERS.indexOf(user) < 0)
  558. {
  559. return;
  560. }
  561. trace(HEADER_TEXT);
  562. messages.addItem(new Message(MessageType.LOG, HEADER_TEXT, user));
  563. }
  564. private function onRemovedFromStage(event:Event) : void
  565. {
  566. stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
  567. }
  568. private function onCopy(event:MouseEvent) : void
  569. {
  570. var message:Message;
  571. var str:String;
  572. var len:int = messages.length;
  573. for(var index:int = 0; index < len; index++)
  574. {
  575. message = messages[index] as Message;
  576. str = str + (NAMES[message.type] + " " + message.content + "\n");
  577. }
  578. try
  579. {
  580. System.setClipboard(str);
  581. }
  582. catch (err:Error)
  583. {
  584. Debug.error(Debug, "onCopy, Failed to to copy to clipboard.");
  585. Debug.error(Debug, err.toString());
  586. }
  587. }
  588. override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void
  589. {
  590. super.updateDisplayList(unscaledWidth, unscaledHeight);
  591. background.graphics.clear();
  592. background.graphics.beginFill(3355443, 0.8);
  593. background.graphics.drawRoundRect(0, 0, width, height, 6, 6);
  594. background.graphics.endFill();
  595. closeButton.move(width - (closeButton.width + MARGIN), 2);
  596. tabs.move(MARGIN, MARGIN);
  597. tabs.setActualSize(width - MARGIN * 2, tabs.height);
  598. scrollCheckBox.move(width - (scrollCheckBox.width + MARGIN), height - (scrollCheckBox.height + MARGIN));
  599. clearButton.move(MARGIN, height - (clearButton.height + MARGIN));
  600. clearButton.setActualSize(width - scrollCheckBox.width - copyButton.width - MARGIN * 5, clearButton.height);
  601. copyButton.move(clearButton.x + clearButton.width + MARGIN, clearButton.y);
  602. list.move(tabs.x, tabs.y + tabs.height);
  603. list.setActualSize(width - MARGIN * 2, height - clearButton.height - MARGIN * 2 - list.y);
  604. }
  605. public static function debugHeader(user:String = "All") : void
  606. {
  607. if (DEBUG_DISABLED)
  608. {
  609. return;
  610. }
  611. if (ALLOWED_USERS.indexOf(user) < 0)
  612. {
  613. return;
  614. }
  615. trace(HEADER_TEXT);
  616. if (inst)
  617. {
  618. inst.debugHeader(user);
  619. }
  620. else
  621. {
  622. backlog.addItem(new Message(MessageType.DEBUG, HEADER_TEXT, user));
  623. }
  624. }
  625. public static function log(o:*, user:String = "All") : void
  626. {
  627. if (DEBUG_DISABLED)
  628. {
  629. return;
  630. }
  631. if (ALLOWED_USERS.indexOf(user) < 0)
  632. {
  633. return;
  634. }
  635. trace("Log:::" + o);
  636. if (inst)
  637. {
  638. inst.log(o, user);
  639. }
  640. else
  641. {
  642. backlog.addItem(new Message(MessageType.LOG, o, user));
  643. }
  644. }
  645. public static function warn(o:*, user:String = "All") : void
  646. {
  647. if (DEBUG_DISABLED)
  648. {
  649. return;
  650. }
  651. if (ALLOWED_USERS.indexOf(user) < 0)
  652. {
  653. return;
  654. }
  655. trace("Warn:::" + o);
  656. if (inst)
  657. {
  658. inst.warn(o, user);
  659. }
  660. else
  661. {
  662. backlog.addItem(new Message(MessageType.WARN, o, user));
  663. }
  664. }
  665. public static function fatalHeader(user:String = "All") : void
  666. {
  667. if (DEBUG_DISABLED)
  668. {
  669. return;
  670. }
  671. if (ALLOWED_USERS.indexOf(user) < 0)
  672. {
  673. return;
  674. }
  675. trace(HEADER_TEXT);
  676. if (inst)
  677. {
  678. inst.fatalHeader(user);
  679. }
  680. else
  681. {
  682. backlog.addItem(new Message(MessageType.FATAL, HEADER_TEXT, user));
  683. }
  684. }
  685. public static function fatal(o:*, user:String = "All") : void
  686. {
  687. if (DEBUG_DISABLED)
  688. {
  689. return;
  690. }
  691. if (ALLOWED_USERS.indexOf(user) < 0)
  692. {
  693. return;
  694. }
  695. trace("Fatal:::" + o);
  696. if (inst)
  697. {
  698. inst.fatal(o, user);
  699. }
  700. else
  701. {
  702. backlog.addItem(new Message(MessageType.FATAL, o, user));
  703. }
  704. }
  705. private static function classConstruct() : Boolean
  706. {
  707. NAMES = new Dictionary();
  708. NAMES[MessageType.LOG] = "Log";
  709. NAMES[MessageType.DEBUG] = "Debug";
  710. NAMES[MessageType.INFO] = "Info";
  711. NAMES[MessageType.WARN] = "Warn";
  712. NAMES[MessageType.ERROR] = "Error";
  713. NAMES[MessageType.FATAL] = "Fatal";
  714. return true;
  715. }
  716. public static function error(o:*, user:String = "All") : void
  717. {
  718. if (DEBUG_DISABLED)
  719. {
  720. return;
  721. }
  722. if (ALLOWED_USERS.indexOf(user) < 0)
  723. {
  724. return;
  725. }
  726. trace("Error:::" + o);
  727. if (inst)
  728. {
  729. inst.error(o, user);
  730. }
  731. else
  732. {
  733. backlog.addItem(new Message(MessageType.ERROR, o, user));
  734. }
  735. }
  736. public static function debug(o:*, user:String = "All") : void
  737. {
  738. if (DEBUG_DISABLED)
  739. {
  740. return;
  741. }
  742. if (ALLOWED_USERS.indexOf(user) < 0)
  743. {
  744. return;
  745. }
  746. trace("Debug:::" + o);
  747. if (inst)
  748. {
  749. inst.debug(o, user);
  750. }
  751. else
  752. {
  753. backlog.addItem(new Message(MessageType.DEBUG, o, user));
  754. }
  755. }
  756. public static function infoHeader(user:String = "All") : void
  757. {
  758. if (DEBUG_DISABLED)
  759. {
  760. return;
  761. }
  762. if (ALLOWED_USERS.indexOf(user) < 0)
  763. {
  764. return;
  765. }
  766. trace(HEADER_TEXT);
  767. if (inst)
  768. {
  769. inst.infoHeader(user);
  770. }
  771. else
  772. {
  773. backlog.addItem(new Message(MessageType.INFO, HEADER_TEXT, user));
  774. }
  775. }
  776. public static function info(o:*, user:String = "All") : void
  777. {
  778. if (DEBUG_DISABLED)
  779. {
  780. return;
  781. }
  782. if (ALLOWED_USERS.indexOf(user) < 0)
  783. {
  784. return;
  785. }
  786. trace("Info:::" + o);
  787. if (inst)
  788. {
  789. inst.info(o, user);
  790. }
  791. else
  792. {
  793. backlog.addItem(new Message(MessageType.INFO, o, user));
  794. }
  795. }
  796. public static function warnHeader(user:String = "All") : void
  797. {
  798. if (DEBUG_DISABLED)
  799. {
  800. return;
  801. }
  802. if (ALLOWED_USERS.indexOf(user) < 0)
  803. {
  804. return;
  805. }
  806. trace(HEADER_TEXT);
  807. if (inst)
  808. {
  809. inst.warnHeader(user);
  810. }
  811. else
  812. {
  813. backlog.addItem(new Message(MessageType.WARN, HEADER_TEXT, user));
  814. }
  815. }
  816. public static function errorHeader(user:String = "All") : void
  817. {
  818. if (DEBUG_DISABLED)
  819. {
  820. return;
  821. }
  822. if (ALLOWED_USERS.indexOf(user) < 0)
  823. {
  824. return;
  825. }
  826. trace(HEADER_TEXT);
  827. if (inst)
  828. {
  829. inst.errorHeader(user);
  830. }
  831. else
  832. {
  833. backlog.addItem(new Message(MessageType.ERROR, HEADER_TEXT, user));
  834. }
  835. }
  836. public static function logHeader(user:String = "All") : void
  837. {
  838. if (DEBUG_DISABLED)
  839. {
  840. return;
  841. }
  842. if (ALLOWED_USERS.indexOf(user) < 0)
  843. {
  844. return;
  845. }
  846. trace(HEADER_TEXT);
  847. if (inst)
  848. {
  849. inst.logHeader(user);
  850. }
  851. else
  852. {
  853. backlog.addItem(new Message(MessageType.LOG, HEADER_TEXT, user));
  854. }
  855. }
  856. }
  857. }