Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package be.diligentia.whiteboard.view
- {
- import be.diligentia.whiteboard.model.FontsProxy;
- import components.TitlebarCustomComponent;
- import flash.display.Loader;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.TimerEvent;
- import flash.net.URLRequest;
- import flash.text.Font;
- import flash.text.FontStyle;
- import flash.text.engine.CFFHinting;
- import flash.text.engine.FontLookup;
- import flash.text.engine.RenderingMode;
- import flash.utils.Timer;
- import flashx.textLayout.container.ContainerController;
- import flashx.textLayout.elements.FlowElement;
- import flashx.textLayout.elements.ParagraphElement;
- import flashx.textLayout.elements.SpanElement;
- import flashx.textLayout.elements.TextFlow;
- import flashx.textLayout.formats.TextAlign;
- import flashx.textLayout.formats.TextLayoutFormat;
- import flashx.textLayout.formats.VerticalAlign;
- import mx.core.SpriteAsset;
- import mx.styles.CSSStyleDeclaration;
- import org.puremvc.as3.interfaces.IMediator;
- import org.puremvc.as3.interfaces.INotification;
- import org.puremvc.as3.patterns.mediator.Mediator;
- import spark.core.SpriteVisualElement;
- public class TitleBarMediator extends Mediator implements IMediator
- {
- public static const NAME:String = "TitleBarMediator";
- public static const SET_TITLE:String = "SET_TITLE";
- private var _fonts:Array;
- private var _title:String;
- private var titleContainer:SpriteVisualElement;
- public function TitleBarMediator(viewComponent:Object=null)
- {
- super(NAME, viewComponent);
- }
- public function get titleBar():TitlebarCustomComponent{
- return viewComponent as TitlebarCustomComponent;
- }
- override public function onRegister():void{
- if(titleBar.txtTitle){
- titleBar.removeElement(titleBar.txtTitle);
- titleBar.txtTitle = null;
- }
- }
- override public function listNotificationInterests():Array
- {
- return [
- SET_TITLE,
- FontsProxy.LOADED
- ];
- }
- override public function handleNotification(notification:INotification):void
- {
- var name:String = notification.getName();
- var body:Object = notification.getBody();
- switch(name)
- {
- case SET_TITLE:
- setTitle(""+body);
- break;
- case FontsProxy.LOADED:
- _fonts = body as Array;
- var i:int;
- var l:int = _fonts.length;
- for(i;i<l;i++){
- trace(i, _fonts[i].fontName);
- /*
- 0 Americana Std Bold
- 1 Banco Std
- */
- }
- l = Font.enumerateFonts(false).length;
- i=0;
- for(i;i<l;i++){
- trace(i, Font.enumerateFonts(false)[i].fontName);
- /*
- 0 Frutiger LT Std 55 Roman
- 1 Myriad Pro
- 2 Americana Std Bold
- 3 Banco Std
- */
- }
- setTitle(_title);
- break;
- }
- }
- private function setTitle(value:String):void{
- _title = value;
- if(_fonts){
- var flow:TextFlow = new TextFlow();
- var span:SpanElement = new SpanElement();
- var p:ParagraphElement = new ParagraphElement();
- titleContainer = new SpriteVisualElement();
- span.text = value;
- p.addChild(span);
- span.fontFamily = _fonts[1].fontName;
- p.fontFamily = _fonts[1].fontName;
- flow.fontFamily = _fonts[1].fontName;
- span.fontLookup = FontLookup.EMBEDDED_CFF;
- span.renderingMode = RenderingMode.CFF;
- p.fontLookup = FontLookup.EMBEDDED_CFF;
- p.renderingMode = RenderingMode.CFF;
- flow.fontLookup = FontLookup.EMBEDDED_CFF;
- flow.renderingMode = RenderingMode.CFF;
- flow.addChild(p);
- flow.textAlign = TextAlign.CENTER;
- flow.verticalAlign = VerticalAlign.MIDDLE;
- var cc:ContainerController = new ContainerController(titleContainer, titleBar.width,titleBar.height);
- flow.flowComposer.addController(cc);
- flow.flowComposer.updateAllControllers();
- titleBar.addElement(titleContainer);
- flow.flowComposer.updateAllControllers();
- trace(flow.fontFamily); // Banco Std
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement