History.as

  1. /**
  2.  * Gestión de todos los enlaces.
  3.  * Recuerda los enlacea que han sido picados.
  4.  *
  5.  * ProInf.net, 2008
  6.  * GNU General Public License: http://creativecommons.org/licenses/GPL/2.0/deed.es
  7.  *
  8.  */
  9. class History {
  10.  
  11. //////////////////////////////////////////////////
  12. // Propiedades de la clase
  13.  
  14. private static var history:History = null;
  15.  
  16. //////////////////////////////////////////////////
  17. // Propiedades del objeto
  18.  
  19. private var list:Array = null;
  20.  
  21.  
  22. //////////////////////////////////////////////////
  23. // Constructor
  24.  
  25. private function History () {
  26. list = new Array();
  27. }
  28.  
  29. public static function getInstance():History {
  30. if (history == null) {
  31. history = new History();
  32. }
  33. return history;
  34. }
  35.  
  36. //////////////////////////////////////////////////
  37. // Getters
  38.  
  39.  
  40. //////////////////////////////////////////////////
  41. // Setters
  42.  
  43.  
  44. //////////////////////////////////////////////////
  45. // Métodos públicos
  46.  
  47. public function add (bookmark:String):Boolean {
  48. if (bookmark == undefined || bookmark == null) {
  49. return false;
  50. }
  51. else if (!contains(bookmark)) {
  52. list.push(bookmark);
  53. return true;
  54. }
  55. else {
  56. return false;
  57. }
  58. }
  59. public function contains (bookmark:String):Boolean {
  60. return indexOf(bookmark) > -1;
  61. }
  62. public function remove(bookmark:String):Boolean {
  63. var index = indexOf(bookmark);
  64. if (index > -1) {
  65. list.splice(index,1);
  66. }
  67. return index > -1;
  68. }
  69.  
  70.  
  71. //////////////////////////////////////////////////
  72. // Métodos internos
  73.  
  74. // http://www.actionscript.org/forums/showthread.php3?t=115705
  75. private function indexOf(bookmark:String):Number {
  76. var index = list.length;
  77. while (list[--index] !== bookmark && index>-1) {
  78. }
  79. return index;
  80. }
  81.  
  82. }

Proinf.net