home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2011 May / ME_2011_05.iso / Galileo-Video-Tutorial / system / player.swf / scripts / controller / SharedObjectController.as < prev    next >
Encoding:
Text File  |  2010-11-30  |  10.5 KB  |  305 lines

  1. package controller
  2. {
  3.    import flash.events.Event;
  4.    import flash.events.EventDispatcher;
  5.    import flash.net.SharedObject;
  6.    
  7.    public class SharedObjectController extends EventDispatcher
  8.    {
  9.       private static var _isbn:String;
  10.       
  11.       private static var allowInstantiation:Boolean;
  12.       
  13.       private static var queue:Array;
  14.       
  15.       private static var INIT:String = "oninit";
  16.       
  17.       public static var SMOOTHING:String = "smoothing";
  18.       
  19.       public static var SAVEATCLOSECHANGE:String = "saveatclosechange";
  20.       
  21.       public static var INTROCOMPLETE:String = "introcomplete";
  22.       
  23.       private static var instance:SharedObjectController = null;
  24.       
  25.       private static var _smoothing:Boolean = false;
  26.       
  27.       private static var _introComplete:Boolean = false;
  28.       
  29.       public static var FIRSTTIME_HIGHLIGHT:* = "firsttimehighlight";
  30.       
  31.       public function SharedObjectController()
  32.       {
  33.          super();
  34.          if(!allowInstantiation)
  35.          {
  36.             throw new Error("Error: Instantiation failed: Use SingletonDemo.getInstance() instead of new.");
  37.          }
  38.       }
  39.       
  40.       public static function getInstance(param1:String = null) : SharedObjectController
  41.       {
  42.          if(instance == null)
  43.          {
  44.             trace("ISBN :" + param1);
  45.             _isbn = param1;
  46.             queue = new Array();
  47.             allowInstantiation = true;
  48.             instance = new SharedObjectController();
  49.             allowInstantiation = false;
  50.          }
  51.          return instance;
  52.       }
  53.       
  54.       public function set firstTime(param1:Boolean) : void
  55.       {
  56.          if(param1)
  57.          {
  58.             dispatchEvent(new Event(FIRSTTIME_HIGHLIGHT));
  59.          }
  60.          var _loc2_:SharedObject = SharedObject.getLocal(_isbn + "_global");
  61.          _loc2_.data.firsttime = param1;
  62.          _loc2_.flush();
  63.       }
  64.       
  65.       public function get firstTime() : Boolean
  66.       {
  67.          var _loc1_:SharedObject = SharedObject.getLocal(_isbn + "_global");
  68.          if(_loc1_.data.firsttime != null && _loc1_.data.firsttime != undefined)
  69.          {
  70.             return Boolean(_loc1_.data.firsttime);
  71.          }
  72.          return false;
  73.       }
  74.       
  75.       public function set saveAtClose(param1:Boolean) : void
  76.       {
  77.          dispatchEvent(new Event(SAVEATCLOSECHANGE));
  78.          var _loc2_:SharedObject = SharedObject.getLocal(_isbn + "_global");
  79.          _loc2_.data.saveatclose = param1;
  80.          _loc2_.flush();
  81.       }
  82.       
  83.       public function get saveAtClose() : Boolean
  84.       {
  85.          var _loc1_:SharedObject = SharedObject.getLocal(_isbn + "_global");
  86.          return Boolean(_loc1_.data.saveatclose);
  87.       }
  88.       
  89.       public function set smoothVideos(param1:Boolean) : void
  90.       {
  91.          var _loc2_:SharedObject = SharedObject.getLocal(_isbn + "_global");
  92.          _loc2_.data.smoothVideos = param1;
  93.          _smoothing = param1;
  94.          _loc2_.flush();
  95.          dispatchEvent(new Event(SMOOTHING));
  96.       }
  97.       
  98.       public function get smoothVideos() : Boolean
  99.       {
  100.          var _loc1_:SharedObject = SharedObject.getLocal(_isbn + "_global");
  101.          if(_loc1_.data.smoothVideos == undefined || _loc1_.data.smoothVideos == null)
  102.          {
  103.             this.smoothVideos = true;
  104.             _smoothing = true;
  105.          }
  106.          else
  107.          {
  108.             _smoothing = _loc1_.data.smoothVideos;
  109.          }
  110.          return Boolean(_loc1_.data.smoothVideos);
  111.       }
  112.       
  113.       public function setHistoryBegin(param1:Number, param2:Number) : void
  114.       {
  115.          var _loc3_:SharedObject = SharedObject.getLocal(_isbn + "_histroy");
  116.          if(_loc3_.data["h" + param1 + "_" + param2] == null || _loc3_.data["h" + param1 + "_" + param2] == undefined)
  117.          {
  118.             _loc3_.data["h" + param1 + "_" + param2] = "begin|" + param1 + "|" + param2;
  119.             _loc3_.flush();
  120.             return;
  121.          }
  122.          if(_loc3_.data["h" + param1 + "_" + param2].split("|")[2] != null && _loc3_.data["h" + param1 + "_" + param2].split("|")[0] != "done")
  123.          {
  124.             _loc3_.data["h" + param1 + "_" + param2] = "begin|" + param1 + "|" + param2 + "|begin";
  125.             _loc3_.flush();
  126.          }
  127.       }
  128.       
  129.       public function setHistoryDone(param1:Number, param2:Number) : void
  130.       {
  131.          var _loc3_:SharedObject = SharedObject.getLocal(_isbn + "_histroy");
  132.          _loc3_.data["h" + param1 + "_" + param2] = "done|" + param1 + "|" + param2;
  133.          _loc3_.flush();
  134.       }
  135.       
  136.       public function getHistory() : Array
  137.       {
  138.          var _loc3_:String = null;
  139.          var _loc1_:SharedObject = SharedObject.getLocal(_isbn + "_histroy");
  140.          var _loc2_:Array = new Array();
  141.          for(_loc3_ in _loc1_.data)
  142.          {
  143.             _loc2_.push([_loc1_.data[_loc3_].split("|")[1],_loc1_.data[_loc3_].split("|")[2],_loc1_.data[_loc3_].split("|")[0]]);
  144.          }
  145.          return _loc2_;
  146.       }
  147.       
  148.       public function killHistory() : void
  149.       {
  150.          var _loc1_:SharedObject = SharedObject.getLocal(_isbn + "_histroy");
  151.          _loc1_.clear();
  152.          _loc1_.flush();
  153.       }
  154.       
  155.       public function setLastVideoPosition(param1:Number, param2:Number, param3:Number) : void
  156.       {
  157.          var _loc4_:SharedObject = SharedObject.getLocal(_isbn + "_global");
  158.          _loc4_.data.lastvideoid = param1;
  159.          _loc4_.data.lastvideosubid = param2;
  160.          _loc4_.data.lastvideotimecode = param3;
  161.          _loc4_.flush();
  162.       }
  163.       
  164.       public function getLastVideoPosition() : Array
  165.       {
  166.          var _loc1_:SharedObject = SharedObject.getLocal(_isbn + "_global");
  167.          return [_loc1_.data.lastvideoid,_loc1_.data.lastvideosubid,_loc1_.data.lastvideotimecode];
  168.       }
  169.       
  170.       public function setBookmark(param1:Number, param2:Number, param3:Number, param4:String, param5:String) : void
  171.       {
  172.          trace("set " + param1 + "_" + param2);
  173.          var _loc6_:Number = this.getBookmarks(param1,param2).length;
  174.          var _loc7_:SharedObject = SharedObject.getLocal(_isbn + "_" + param1 + "_" + param2);
  175.          var _loc8_:Date = new Date();
  176.          var _loc9_:Number = Number(_loc8_.getTime());
  177.          _loc7_.data["title" + _loc6_] = String(param4);
  178.          _loc7_.data["notice" + _loc6_] = String(param5);
  179.          _loc7_.data["timecode" + _loc6_] = String(param3);
  180.          _loc7_.data["uid" + _loc6_] = _loc9_;
  181.          _loc7_.flush();
  182.          var _loc10_:int = 0;
  183.          while(_loc10_ < queue.length)
  184.          {
  185.             if(param1 == queue[_loc10_].id && param2 == queue[_loc10_].subid)
  186.             {
  187.                queue[_loc10_].content.push([String(param3),String(param4),String(param5),_loc9_]);
  188.             }
  189.             _loc10_++;
  190.          }
  191.       }
  192.       
  193.       public function deleteBookmark(param1:Number, param2:Number, param3:Number) : void
  194.       {
  195.          var _loc7_:int = 0;
  196.          var _loc8_:int = 0;
  197.          var _loc4_:SharedObject = SharedObject.getLocal(_isbn + "_" + param1 + "_" + param2);
  198.          var _loc5_:Array = this.getBookmarks(param1,param2);
  199.          _loc4_.clear();
  200.          _loc4_.flush();
  201.          var _loc6_:int = 0;
  202.          _loc7_ = 0;
  203.          while(_loc7_ < _loc5_.length)
  204.          {
  205.             if(_loc5_[_loc7_][3] != param3)
  206.             {
  207.                trace("title" + _loc6_ + " | " + _loc5_[_loc7_][1]);
  208.                _loc4_.data["notice" + _loc6_] = _loc5_[_loc7_][2];
  209.                _loc4_.data["timecode" + _loc6_] = _loc5_[_loc7_][0];
  210.                _loc4_.data["uid" + _loc6_] = _loc5_[_loc7_][3];
  211.                _loc4_.data["title" + _loc6_] = _loc5_[_loc7_][1];
  212.                _loc6_++;
  213.             }
  214.             _loc7_++;
  215.          }
  216.          _loc7_ = 0;
  217.          while(_loc7_ < queue.length)
  218.          {
  219.             if(param1 == queue[_loc7_].id && param2 == queue[_loc7_].subid)
  220.             {
  221.                _loc8_ = 0;
  222.                while(_loc8_ < queue[_loc7_].content.length)
  223.                {
  224.                   if(queue[_loc7_].content[_loc8_][3] == param3)
  225.                   {
  226.                      queue[_loc7_].content.splice(_loc8_,1);
  227.                   }
  228.                   _loc8_++;
  229.                }
  230.             }
  231.             _loc7_++;
  232.          }
  233.          _loc4_.flush();
  234.       }
  235.       
  236.       public function getBookmarks(param1:Number, param2:Number) : Array
  237.       {
  238.          var _loc10_:String = null;
  239.          var _loc11_:int = 0;
  240.          var _loc3_:int = 0;
  241.          while(_loc3_ < queue.length)
  242.          {
  243.             if(param1 == queue[_loc3_].id && param2 == queue[_loc3_].subid)
  244.             {
  245.                return queue[_loc3_].content;
  246.             }
  247.             _loc3_++;
  248.          }
  249.          var _loc4_:SharedObject = SharedObject.getLocal(_isbn + "_" + param1 + "_" + param2);
  250.          var _loc5_:Array = new Array();
  251.          var _loc6_:Array = new Array();
  252.          var _loc7_:Array = new Array();
  253.          var _loc8_:Array = new Array();
  254.          var _loc9_:int = 0;
  255.          for(_loc10_ in _loc4_.data)
  256.          {
  257.             _loc9_++;
  258.          }
  259.          _loc11_ = 0;
  260.          while(_loc11_ < _loc9_ / 4)
  261.          {
  262.             _loc6_.push(_loc4_.data["notice" + _loc11_]);
  263.             _loc5_.push(_loc4_.data["timecode" + _loc11_]);
  264.             _loc7_.push(_loc4_.data["uid" + _loc11_]);
  265.             _loc8_.push(_loc4_.data["title" + _loc11_]);
  266.             _loc11_++;
  267.          }
  268.          var _loc12_:Array = new Array();
  269.          var _loc13_:int = 0;
  270.          while(_loc13_ < _loc5_.length)
  271.          {
  272.             if(_loc5_[_loc13_] != null && _loc8_[_loc13_] != null && _loc7_[_loc13_] != null && _loc6_[_loc13_] != null)
  273.             {
  274.                _loc12_.push([Number(_loc5_[_loc13_]),_loc8_[_loc13_],_loc6_[_loc13_],Number(_loc7_[_loc13_])]);
  275.                trace(_loc5_[_loc13_] + "," + _loc8_[_loc13_] + "," + _loc6_[_loc13_] + "," + _loc7_[_loc13_]);
  276.             }
  277.             _loc13_++;
  278.          }
  279.          queue.push({
  280.             "id":param1,
  281.             "subid":param2,
  282.             "content":_loc12_
  283.          });
  284.          return _loc12_;
  285.       }
  286.       
  287.       public function get smoothing() : Boolean
  288.       {
  289.          return _smoothing;
  290.       }
  291.       
  292.       public function set onIntro(param1:Boolean) : void
  293.       {
  294.          _introComplete = param1;
  295.          dispatchEvent(new Event(INTROCOMPLETE));
  296.       }
  297.       
  298.       public function get onIntro() : Boolean
  299.       {
  300.          return _introComplete;
  301.       }
  302.    }
  303. }
  304.  
  305.