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

  1. package mx.core
  2. {
  3.    import flash.text.TextField;
  4.    import flash.text.TextFormat;
  5.    import flash.text.TextLineMetrics;
  6.    import mx.managers.ISystemManager;
  7.    
  8.    use namespace mx_internal;
  9.    
  10.    public class UITextFormat extends TextFormat
  11.    {
  12.       private static var _embeddedFontRegistry:IEmbeddedFontRegistry;
  13.       
  14.       private static var _textFieldFactory:ITextFieldFactory;
  15.       
  16.       mx_internal static const VERSION:String = "3.5.0.12683";
  17.       
  18.       private var systemManager:ISystemManager;
  19.       
  20.       public var sharpness:Number;
  21.       
  22.       public var gridFitType:String;
  23.       
  24.       public var antiAliasType:String;
  25.       
  26.       public var thickness:Number;
  27.       
  28.       private var cachedEmbeddedFont:EmbeddedFont = null;
  29.       
  30.       private var _moduleFactory:IFlexModuleFactory;
  31.       
  32.       public function UITextFormat(param1:ISystemManager, param2:String = null, param3:Object = null, param4:Object = null, param5:Object = null, param6:Object = null, param7:Object = null, param8:String = null, param9:String = null, param10:String = null, param11:Object = null, param12:Object = null, param13:Object = null, param14:Object = null)
  33.       {
  34.          this.systemManager = param1;
  35.          super(param2,param3,param4,param5,param6,param7,param8,param9,param10,param11,param12,param13,param14);
  36.       }
  37.       
  38.       private static function get embeddedFontRegistry() : IEmbeddedFontRegistry
  39.       {
  40.          if(!_embeddedFontRegistry)
  41.          {
  42.             _embeddedFontRegistry = IEmbeddedFontRegistry(Singleton.getInstance("mx.core::IEmbeddedFontRegistry"));
  43.          }
  44.          return _embeddedFontRegistry;
  45.       }
  46.       
  47.       private static function get textFieldFactory() : ITextFieldFactory
  48.       {
  49.          if(!_textFieldFactory)
  50.          {
  51.             _textFieldFactory = ITextFieldFactory(Singleton.getInstance("mx.core::ITextFieldFactory"));
  52.          }
  53.          return _textFieldFactory;
  54.       }
  55.       
  56.       public function set moduleFactory(param1:IFlexModuleFactory) : void
  57.       {
  58.          _moduleFactory = param1;
  59.       }
  60.       
  61.       mx_internal function copyFrom(param1:TextFormat) : void
  62.       {
  63.          font = param1.font;
  64.          size = param1.size;
  65.          color = param1.color;
  66.          bold = param1.bold;
  67.          italic = param1.italic;
  68.          underline = param1.underline;
  69.          url = param1.url;
  70.          target = param1.target;
  71.          align = param1.align;
  72.          leftMargin = param1.leftMargin;
  73.          rightMargin = param1.rightMargin;
  74.          indent = param1.indent;
  75.          leading = param1.leading;
  76.          letterSpacing = param1.letterSpacing;
  77.          blockIndent = param1.blockIndent;
  78.          bullet = param1.bullet;
  79.          display = param1.display;
  80.          indent = param1.indent;
  81.          kerning = param1.kerning;
  82.          tabStops = param1.tabStops;
  83.       }
  84.       
  85.       private function getEmbeddedFont(param1:String, param2:Boolean, param3:Boolean) : EmbeddedFont
  86.       {
  87.          if(cachedEmbeddedFont)
  88.          {
  89.             if(cachedEmbeddedFont.fontName == param1 && cachedEmbeddedFont.fontStyle == EmbeddedFontRegistry.getFontStyle(param2,param3))
  90.             {
  91.                return cachedEmbeddedFont;
  92.             }
  93.          }
  94.          cachedEmbeddedFont = new EmbeddedFont(param1,param2,param3);
  95.          return cachedEmbeddedFont;
  96.       }
  97.       
  98.       public function measureText(param1:String, param2:Boolean = true) : TextLineMetrics
  99.       {
  100.          return measure(param1,false,param2);
  101.       }
  102.       
  103.       private function measure(param1:String, param2:Boolean, param3:Boolean) : TextLineMetrics
  104.       {
  105.          if(!param1)
  106.          {
  107.             param1 = "";
  108.          }
  109.          var _loc4_:* = false;
  110.          var _loc5_:IFlexModuleFactory = embeddedFontRegistry.getAssociatedModuleFactory(getEmbeddedFont(font,bold,italic),moduleFactory);
  111.          _loc4_ = _loc5_ != null;
  112.          if(_loc5_ == null)
  113.          {
  114.             _loc5_ = systemManager;
  115.          }
  116.          var _loc6_:TextField = null;
  117.          _loc6_ = TextField(textFieldFactory.createTextField(_loc5_));
  118.          if(param2)
  119.          {
  120.             _loc6_.htmlText = "";
  121.          }
  122.          else
  123.          {
  124.             _loc6_.text = "";
  125.          }
  126.          _loc6_.defaultTextFormat = this;
  127.          if(font)
  128.          {
  129.             _loc6_.embedFonts = _loc4_ || systemManager != null && Boolean(systemManager.isFontFaceEmbedded(this));
  130.          }
  131.          else
  132.          {
  133.             _loc6_.embedFonts = false;
  134.          }
  135.          _loc6_.antiAliasType = antiAliasType;
  136.          _loc6_.gridFitType = gridFitType;
  137.          _loc6_.sharpness = sharpness;
  138.          _loc6_.thickness = thickness;
  139.          if(param2)
  140.          {
  141.             _loc6_.htmlText = param1;
  142.          }
  143.          else
  144.          {
  145.             _loc6_.text = param1;
  146.          }
  147.          var _loc7_:TextLineMetrics = _loc6_.getLineMetrics(0);
  148.          if(indent != null)
  149.          {
  150.             _loc7_.width += indent;
  151.          }
  152.          if(param3)
  153.          {
  154.             _loc7_.width = Math.ceil(_loc7_.width);
  155.             _loc7_.height = Math.ceil(_loc7_.height);
  156.          }
  157.          return _loc7_;
  158.       }
  159.       
  160.       public function measureHTMLText(param1:String, param2:Boolean = true) : TextLineMetrics
  161.       {
  162.          return measure(param1,true,param2);
  163.       }
  164.       
  165.       public function get moduleFactory() : IFlexModuleFactory
  166.       {
  167.          return _moduleFactory;
  168.       }
  169.    }
  170. }
  171.  
  172.