home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2012 April / ME_04_2012.iso / Video-Tutorial / iPhoto / media / player.swf / scripts / mx / utils / XMLNotifier.as < prev   
Encoding:
Text File  |  2011-11-11  |  3.3 KB  |  121 lines

  1. package mx.utils
  2. {
  3.    import flash.utils.Dictionary;
  4.    import mx.core.mx_internal;
  5.    
  6.    use namespace mx_internal;
  7.    
  8.    public class XMLNotifier
  9.    {
  10.       private static var instance:XMLNotifier;
  11.       
  12.       mx_internal static const VERSION:String = "4.5.0.20967";
  13.       
  14.       public function XMLNotifier(param1:XMLNotifierSingleton)
  15.       {
  16.          super();
  17.       }
  18.       
  19.       public static function getInstance() : XMLNotifier
  20.       {
  21.          if(!instance)
  22.          {
  23.             instance = new XMLNotifier(new XMLNotifierSingleton());
  24.          }
  25.          return instance;
  26.       }
  27.       
  28.       mx_internal static function initializeXMLForNotification() : Function
  29.       {
  30.          var notificationFunction:Function = function(param1:Object, param2:String, param3:Object, param4:Object, param5:Object):void
  31.          {
  32.             var _loc8_:Object = null;
  33.             var _loc7_:Dictionary = arguments.callee.watched;
  34.             if(_loc7_ != null)
  35.             {
  36.                for(_loc8_ in _loc7_)
  37.                {
  38.                   IXMLNotifiable(_loc8_).xmlNotification(param1,param2,param3,param4,param5);
  39.                }
  40.             }
  41.          };
  42.          return notificationFunction;
  43.       }
  44.       
  45.       public function watchXML(param1:Object, param2:IXMLNotifiable, param3:String = null) : void
  46.       {
  47.          var _loc4_:Object = null;
  48.          var _loc5_:XML = null;
  49.          var _loc6_:Object = null;
  50.          var _loc7_:Dictionary = null;
  51.          if(param1 is XMLList && param1.length() > 1)
  52.          {
  53.             for each(_loc4_ in param1)
  54.             {
  55.                this.watchXML(_loc4_,param2,param3);
  56.             }
  57.          }
  58.          else
  59.          {
  60.             _loc5_ = XML(param1);
  61.             _loc6_ = _loc5_.notification();
  62.             if(!(_loc6_ is Function))
  63.             {
  64.                _loc6_ = mx_internal::initializeXMLForNotification();
  65.                _loc5_.setNotification(_loc6_ as Function);
  66.                if(Boolean(param3) && _loc6_["uid"] == null)
  67.                {
  68.                   _loc6_["uid"] = param3;
  69.                }
  70.             }
  71.             if(_loc6_["watched"] == undefined)
  72.             {
  73.                _loc6_["watched"] = _loc7_ = new Dictionary(true);
  74.             }
  75.             else
  76.             {
  77.                _loc7_ = _loc6_["watched"];
  78.             }
  79.             _loc7_[param2] = true;
  80.          }
  81.       }
  82.       
  83.       public function unwatchXML(param1:Object, param2:IXMLNotifiable) : void
  84.       {
  85.          var _loc3_:Object = null;
  86.          var _loc4_:XML = null;
  87.          var _loc5_:Object = null;
  88.          var _loc6_:Dictionary = null;
  89.          if(param1 is XMLList && param1.length() > 1)
  90.          {
  91.             for each(_loc3_ in param1)
  92.             {
  93.                this.unwatchXML(_loc3_,param2);
  94.             }
  95.          }
  96.          else
  97.          {
  98.             _loc4_ = XML(param1);
  99.             _loc5_ = _loc4_.notification();
  100.             if(!(_loc5_ is Function))
  101.             {
  102.                return;
  103.             }
  104.             if(_loc5_["watched"] != undefined)
  105.             {
  106.                _loc6_ = _loc5_["watched"];
  107.                delete _loc6_[param2];
  108.             }
  109.          }
  110.       }
  111.    }
  112. }
  113.  
  114. class XMLNotifierSingleton
  115. {
  116.    public function XMLNotifierSingleton()
  117.    {
  118.       super();
  119.    }
  120. }
  121.