home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Puzzle / filler.swf / scripts / mx / styles / StyleProtoChain.as < prev   
Encoding:
Text File  |  2008-09-02  |  5.4 KB  |  154 lines

  1. package mx.styles
  2. {
  3.    import flash.display.DisplayObject;
  4.    import mx.core.UIComponent;
  5.    import mx.core.UITextField;
  6.    import mx.core.mx_internal;
  7.    
  8.    use namespace mx_internal;
  9.    
  10.    public class StyleProtoChain
  11.    {
  12.       
  13.       mx_internal static const VERSION:String = "2.0.1.0";
  14.        
  15.       
  16.       public function StyleProtoChain()
  17.       {
  18.          super();
  19.       }
  20.       
  21.       public static function initProtoChainForUIComponentStyleName(param1:IStyleClient) : void
  22.       {
  23.          var _loc2_:IStyleClient = null;
  24.          var _loc3_:Object = null;
  25.          var _loc4_:Object = null;
  26.          var _loc5_:Array = null;
  27.          var _loc6_:int = 0;
  28.          var _loc7_:int = 0;
  29.          var _loc8_:CSSStyleDeclaration = null;
  30.          _loc2_ = IStyleClient(param1.styleName);
  31.          _loc3_ = _loc2_.nonInheritingStyles;
  32.          if(!_loc3_ || _loc3_ == UIComponent.mx_internal::STYLE_UNINITIALIZED)
  33.          {
  34.             _loc3_ = StyleManager.mx_internal::stylesRoot;
  35.             if(_loc3_.effects)
  36.             {
  37.                param1.registerEffects(_loc3_.effects);
  38.             }
  39.          }
  40.          if(!(_loc4_ = _loc2_.inheritingStyles) || _loc4_ == UIComponent.mx_internal::STYLE_UNINITIALIZED)
  41.          {
  42.             _loc4_ = StyleManager.mx_internal::stylesRoot;
  43.          }
  44.          _loc6_ = int((_loc5_ = param1.getClassStyleDeclarations()).length);
  45.          _loc7_ = 0;
  46.          while(_loc7_ < _loc6_)
  47.          {
  48.             _loc4_ = (_loc8_ = _loc5_[_loc7_]).mx_internal::addStyleToProtoChain(_loc4_,DisplayObject(param1));
  49.             _loc4_ = addProperties(_loc4_,_loc2_,true);
  50.             _loc3_ = _loc8_.mx_internal::addStyleToProtoChain(_loc3_,DisplayObject(param1));
  51.             _loc3_ = addProperties(_loc3_,_loc2_,false);
  52.             if(_loc8_.mx_internal::effects)
  53.             {
  54.                param1.registerEffects(_loc8_.mx_internal::effects);
  55.             }
  56.             _loc7_++;
  57.          }
  58.          param1.inheritingStyles = !!param1.styleDeclaration ? param1.styleDeclaration.mx_internal::addStyleToProtoChain(_loc4_,DisplayObject(param1)) : _loc4_;
  59.          param1.nonInheritingStyles = !!param1.styleDeclaration ? param1.styleDeclaration.mx_internal::addStyleToProtoChain(_loc3_,DisplayObject(param1)) : _loc3_;
  60.       }
  61.       
  62.       private static function addProperties(param1:Object, param2:IStyleClient, param3:Boolean) : Object
  63.       {
  64.          var _loc4_:Array = null;
  65.          var _loc5_:int = 0;
  66.          var _loc6_:int = 0;
  67.          var _loc7_:Object = null;
  68.          var _loc8_:CSSStyleDeclaration = null;
  69.          var _loc9_:CSSStyleDeclaration = null;
  70.          _loc5_ = int((_loc4_ = param2.getClassStyleDeclarations()).length);
  71.          _loc6_ = 0;
  72.          while(_loc6_ < _loc5_)
  73.          {
  74.             param1 = (_loc8_ = _loc4_[_loc6_]).mx_internal::addStyleToProtoChain(param1,DisplayObject(param2));
  75.             if(_loc8_.mx_internal::effects)
  76.             {
  77.                param2.registerEffects(_loc8_.mx_internal::effects);
  78.             }
  79.             _loc6_++;
  80.          }
  81.          if(_loc7_ = param2.styleName)
  82.          {
  83.             if(typeof _loc7_ == "object")
  84.             {
  85.                if(_loc7_ is CSSStyleDeclaration)
  86.                {
  87.                   _loc9_ = CSSStyleDeclaration(_loc7_);
  88.                }
  89.                else
  90.                {
  91.                   param1 = addProperties(param1,IStyleClient(_loc7_),param3);
  92.                }
  93.             }
  94.             else
  95.             {
  96.                _loc9_ = StyleManager.getStyleDeclaration("." + _loc7_);
  97.             }
  98.             if(_loc9_)
  99.             {
  100.                param1 = _loc9_.mx_internal::addStyleToProtoChain(param1,DisplayObject(param2));
  101.                if(_loc9_.mx_internal::effects)
  102.                {
  103.                   param2.registerEffects(_loc9_.mx_internal::effects);
  104.                }
  105.             }
  106.          }
  107.          if(param2.styleDeclaration)
  108.          {
  109.             param1 = param2.styleDeclaration.mx_internal::addStyleToProtoChain(param1,DisplayObject(param2));
  110.          }
  111.          return param1;
  112.       }
  113.       
  114.       public static function initTextField(param1:UITextField) : void
  115.       {
  116.          var _loc2_:Object = null;
  117.          var _loc3_:CSSStyleDeclaration = null;
  118.          var _loc4_:Object = null;
  119.          var _loc5_:Object = null;
  120.          _loc2_ = param1.styleName;
  121.          if(_loc2_)
  122.          {
  123.             if(typeof _loc2_ == "object")
  124.             {
  125.                if(!(_loc2_ is CSSStyleDeclaration))
  126.                {
  127.                   param1.inheritingStyles = IStyleClient(_loc2_).inheritingStyles;
  128.                   param1.nonInheritingStyles = IStyleClient(_loc2_).nonInheritingStyles;
  129.                   return;
  130.                }
  131.                _loc3_ = CSSStyleDeclaration(_loc2_);
  132.             }
  133.             else
  134.             {
  135.                _loc3_ = StyleManager.getStyleDeclaration("." + _loc2_);
  136.             }
  137.          }
  138.          _loc4_ = IStyleClient(param1.parent).inheritingStyles;
  139.          _loc5_ = StyleManager.mx_internal::stylesRoot;
  140.          if(!_loc4_)
  141.          {
  142.             _loc4_ = StyleManager.mx_internal::stylesRoot;
  143.          }
  144.          if(_loc3_)
  145.          {
  146.             _loc4_ = _loc3_.mx_internal::addStyleToProtoChain(_loc4_,param1);
  147.             _loc5_ = _loc3_.mx_internal::addStyleToProtoChain(_loc5_,param1);
  148.          }
  149.          param1.inheritingStyles = _loc4_;
  150.          param1.nonInheritingStyles = _loc5_;
  151.       }
  152.    }
  153. }
  154.