home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / mx / core / EmbeddedFontRegistry.as < prev    next >
Encoding:
Text File  |  2010-06-23  |  5.9 KB  |  204 lines

  1. package mx.core
  2. {
  3.    import flash.text.FontStyle;
  4.    import flash.utils.Dictionary;
  5.    
  6.    use namespace mx_internal;
  7.    
  8.    public class EmbeddedFontRegistry implements IEmbeddedFontRegistry
  9.    {
  10.       private static var instance:IEmbeddedFontRegistry;
  11.       
  12.       mx_internal static const VERSION:String = "3.5.0.12683";
  13.       
  14.       private static var fonts:Object = {};
  15.       
  16.       public function EmbeddedFontRegistry()
  17.       {
  18.          super();
  19.       }
  20.       
  21.       public static function registerFonts(param1:Object, param2:IFlexModuleFactory) : void
  22.       {
  23.          var _loc4_:Object = null;
  24.          var _loc5_:Object = null;
  25.          var _loc6_:String = null;
  26.          var _loc7_:Boolean = false;
  27.          var _loc8_:Boolean = false;
  28.          var _loc3_:IEmbeddedFontRegistry = IEmbeddedFontRegistry(Singleton.getInstance("mx.core::IEmbeddedFontRegistry"));
  29.          for(_loc4_ in param1)
  30.          {
  31.             _loc5_ = param1[_loc4_];
  32.             for(_loc6_ in _loc5_)
  33.             {
  34.                if(_loc5_[_loc6_] != false)
  35.                {
  36.                   if(_loc6_ == "regular")
  37.                   {
  38.                      _loc7_ = false;
  39.                      _loc8_ = false;
  40.                   }
  41.                   else if(_loc6_ == "boldItalic")
  42.                   {
  43.                      _loc7_ = true;
  44.                      _loc8_ = true;
  45.                   }
  46.                   else if(_loc6_ == "bold")
  47.                   {
  48.                      _loc7_ = true;
  49.                      _loc8_ = false;
  50.                   }
  51.                   else if(_loc6_ == "italic")
  52.                   {
  53.                      _loc7_ = false;
  54.                      _loc8_ = true;
  55.                   }
  56.                   _loc3_.registerFont(new EmbeddedFont(String(_loc4_),_loc7_,_loc8_),param2);
  57.                }
  58.             }
  59.          }
  60.       }
  61.       
  62.       public static function getInstance() : IEmbeddedFontRegistry
  63.       {
  64.          if(!instance)
  65.          {
  66.             instance = new EmbeddedFontRegistry();
  67.          }
  68.          return instance;
  69.       }
  70.       
  71.       public static function getFontStyle(param1:Boolean, param2:Boolean) : String
  72.       {
  73.          var _loc3_:String = FontStyle.REGULAR;
  74.          if(param1 && param2)
  75.          {
  76.             _loc3_ = FontStyle.BOLD_ITALIC;
  77.          }
  78.          else if(param1)
  79.          {
  80.             _loc3_ = FontStyle.BOLD;
  81.          }
  82.          else if(param2)
  83.          {
  84.             _loc3_ = FontStyle.ITALIC;
  85.          }
  86.          return _loc3_;
  87.       }
  88.       
  89.       private static function createFontKey(param1:EmbeddedFont) : String
  90.       {
  91.          return param1.fontName + param1.fontStyle;
  92.       }
  93.       
  94.       private static function createEmbeddedFont(param1:String) : EmbeddedFont
  95.       {
  96.          var _loc2_:String = null;
  97.          var _loc3_:Boolean = false;
  98.          var _loc4_:Boolean = false;
  99.          var _loc5_:int = endsWith(param1,FontStyle.REGULAR);
  100.          if(_loc5_ > 0)
  101.          {
  102.             _loc2_ = param1.substring(0,_loc5_);
  103.             return new EmbeddedFont(_loc2_,false,false);
  104.          }
  105.          _loc5_ = endsWith(param1,FontStyle.BOLD);
  106.          if(_loc5_ > 0)
  107.          {
  108.             _loc2_ = param1.substring(0,_loc5_);
  109.             return new EmbeddedFont(_loc2_,true,false);
  110.          }
  111.          _loc5_ = endsWith(param1,FontStyle.BOLD_ITALIC);
  112.          if(_loc5_ > 0)
  113.          {
  114.             _loc2_ = param1.substring(0,_loc5_);
  115.             return new EmbeddedFont(_loc2_,true,true);
  116.          }
  117.          _loc5_ = endsWith(param1,FontStyle.ITALIC);
  118.          if(_loc5_ > 0)
  119.          {
  120.             _loc2_ = param1.substring(0,_loc5_);
  121.             return new EmbeddedFont(_loc2_,false,true);
  122.          }
  123.          return new EmbeddedFont("",false,false);
  124.       }
  125.       
  126.       private static function endsWith(param1:String, param2:String) : int
  127.       {
  128.          var _loc3_:int = int(param1.lastIndexOf(param2));
  129.          if(_loc3_ > 0 && _loc3_ + param2.length == param1.length)
  130.          {
  131.             return _loc3_;
  132.          }
  133.          return -1;
  134.       }
  135.       
  136.       public function getAssociatedModuleFactory(param1:EmbeddedFont, param2:IFlexModuleFactory) : IFlexModuleFactory
  137.       {
  138.          var _loc4_:int = 0;
  139.          var _loc5_:Object = null;
  140.          var _loc3_:Dictionary = fonts[createFontKey(param1)];
  141.          if(_loc3_)
  142.          {
  143.             _loc4_ = int(_loc3_[param2]);
  144.             if(_loc4_)
  145.             {
  146.                return param2;
  147.             }
  148.             var _loc6_:int = 0;
  149.             var _loc7_:* = _loc3_;
  150.             for(_loc5_ in _loc7_)
  151.             {
  152.                return _loc5_ as IFlexModuleFactory;
  153.             }
  154.          }
  155.          return null;
  156.       }
  157.       
  158.       public function deregisterFont(param1:EmbeddedFont, param2:IFlexModuleFactory) : void
  159.       {
  160.          var _loc5_:int = 0;
  161.          var _loc6_:Object = null;
  162.          var _loc3_:String = createFontKey(param1);
  163.          var _loc4_:Dictionary = fonts[_loc3_];
  164.          if(_loc4_ != null)
  165.          {
  166.             delete _loc4_[param2];
  167.             _loc5_ = 0;
  168.             for(_loc6_ in _loc4_)
  169.             {
  170.                _loc5_++;
  171.             }
  172.             if(_loc5_ == 0)
  173.             {
  174.                delete fonts[_loc3_];
  175.             }
  176.          }
  177.       }
  178.       
  179.       public function getFonts() : Array
  180.       {
  181.          var _loc2_:String = null;
  182.          var _loc1_:Array = [];
  183.          for(_loc2_ in fonts)
  184.          {
  185.             _loc1_.push(createEmbeddedFont(_loc2_));
  186.          }
  187.          return _loc1_;
  188.       }
  189.       
  190.       public function registerFont(param1:EmbeddedFont, param2:IFlexModuleFactory) : void
  191.       {
  192.          var _loc3_:String = createFontKey(param1);
  193.          var _loc4_:Dictionary = fonts[_loc3_];
  194.          if(!_loc4_)
  195.          {
  196.             _loc4_ = new Dictionary(true);
  197.             fonts[_loc3_] = _loc4_;
  198.          }
  199.          _loc4_[param2] = 1;
  200.       }
  201.    }
  202. }
  203.  
  204.