Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package be.diligentia.whiteboard.view
  2. {  
  3.     import be.diligentia.whiteboard.model.FontsProxy;
  4.    
  5.     import components.TitlebarCustomComponent;
  6.    
  7.     import flash.display.Loader;
  8.     import flash.display.Sprite;
  9.     import flash.events.Event;
  10.     import flash.events.TimerEvent;
  11.     import flash.net.URLRequest;
  12.     import flash.text.Font;
  13.     import flash.text.FontStyle;
  14.     import flash.text.engine.CFFHinting;
  15.     import flash.text.engine.FontLookup;
  16.     import flash.text.engine.RenderingMode;
  17.     import flash.utils.Timer;
  18.    
  19.     import flashx.textLayout.container.ContainerController;
  20.     import flashx.textLayout.elements.FlowElement;
  21.     import flashx.textLayout.elements.ParagraphElement;
  22.     import flashx.textLayout.elements.SpanElement;
  23.     import flashx.textLayout.elements.TextFlow;
  24.     import flashx.textLayout.formats.TextAlign;
  25.     import flashx.textLayout.formats.TextLayoutFormat;
  26.     import flashx.textLayout.formats.VerticalAlign;
  27.    
  28.     import mx.core.SpriteAsset;
  29.     import mx.styles.CSSStyleDeclaration;
  30.    
  31.     import org.puremvc.as3.interfaces.IMediator;
  32.     import org.puremvc.as3.interfaces.INotification;
  33.     import org.puremvc.as3.patterns.mediator.Mediator;
  34.    
  35.     import spark.core.SpriteVisualElement;
  36.    
  37.     public class TitleBarMediator extends Mediator implements IMediator
  38.     {
  39.         public static const NAME:String = "TitleBarMediator";
  40.         public static const SET_TITLE:String = "SET_TITLE";
  41.        
  42.         private var _fonts:Array;
  43.         private var _title:String;
  44.        
  45.         private var titleContainer:SpriteVisualElement;
  46.        
  47.         public function TitleBarMediator(viewComponent:Object=null)
  48.         {
  49.             super(NAME, viewComponent);
  50.         }
  51.         public function get titleBar():TitlebarCustomComponent{
  52.             return viewComponent as TitlebarCustomComponent;
  53.         }
  54.         override public function onRegister():void{
  55.             if(titleBar.txtTitle){
  56.                 titleBar.removeElement(titleBar.txtTitle);
  57.                 titleBar.txtTitle = null;
  58.             }
  59.         }
  60.         override public function listNotificationInterests():Array
  61.         {
  62.             return [
  63.                 SET_TITLE,
  64.                 FontsProxy.LOADED
  65.             ];
  66.         }
  67.         override public function handleNotification(notification:INotification):void
  68.         {
  69.             var name:String = notification.getName();
  70.             var body:Object = notification.getBody();
  71.            
  72.             switch(name)
  73.             {
  74.                 case SET_TITLE:
  75.                     setTitle(""+body);
  76.                     break;
  77.                 case FontsProxy.LOADED:
  78.                     _fonts = body as Array;
  79.                    
  80.                     var i:int;
  81.                     var l:int = _fonts.length;
  82.                     for(i;i<l;i++){
  83.                         trace(i, _fonts[i].fontName);
  84.                         /*
  85.                         0 Americana Std Bold
  86.                         1 Banco Std
  87.                         */
  88.                     }
  89.                     l = Font.enumerateFonts(false).length;
  90.                     i=0;
  91.                     for(i;i<l;i++){
  92.                         trace(i, Font.enumerateFonts(false)[i].fontName);
  93.                         /*
  94.                         0 Frutiger LT Std 55 Roman
  95.                         1 Myriad Pro
  96.                         2 Americana Std Bold
  97.                         3 Banco Std
  98.                         */
  99.                     }
  100.                    
  101.                     setTitle(_title);
  102.                     break;
  103.             }
  104.         }
  105.         private function setTitle(value:String):void{
  106.             _title = value;
  107.            
  108.             if(_fonts){
  109.                 var flow:TextFlow = new TextFlow();
  110.                 var span:SpanElement = new SpanElement();
  111.                 var p:ParagraphElement = new ParagraphElement();
  112.                 titleContainer = new SpriteVisualElement();
  113.                
  114.                 span.text = value;
  115.                 p.addChild(span);
  116.                
  117.                 span.fontFamily = _fonts[1].fontName;
  118.                 p.fontFamily = _fonts[1].fontName;
  119.                 flow.fontFamily = _fonts[1].fontName;
  120.                
  121.                 span.fontLookup = FontLookup.EMBEDDED_CFF;
  122.                 span.renderingMode = RenderingMode.CFF;
  123.                
  124.                 p.fontLookup = FontLookup.EMBEDDED_CFF;
  125.                 p.renderingMode = RenderingMode.CFF;
  126.                
  127.                 flow.fontLookup = FontLookup.EMBEDDED_CFF;
  128.                 flow.renderingMode = RenderingMode.CFF;
  129.                
  130.                 flow.addChild(p);
  131.                 flow.textAlign = TextAlign.CENTER;
  132.                 flow.verticalAlign = VerticalAlign.MIDDLE;
  133.                
  134.                 var cc:ContainerController = new ContainerController(titleContainer, titleBar.width,titleBar.height);
  135.                 flow.flowComposer.addController(cc);
  136.                 flow.flowComposer.updateAllControllers();
  137.                 titleBar.addElement(titleContainer);
  138.                 flow.flowComposer.updateAllControllers();
  139.                
  140.                 trace(flow.fontFamily); // Banco Std
  141.             }
  142.         }
  143.     }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement