SlideShare a Scribd company logo
1 of 34
Intro to Flex Typography
Matt Guest
360|Flex San Jose
March 8, 2010
About me

Matt Guest
Lead Flex developer for Nxtbook Media, Lancaster PA


  •   Programming and working in the web for around 12 years

  •   Flash developer since Flash 3

  •   Flex developer since Flex 2
What we will be covering

New text features built into the Flash 10 player
Flash Text Engine (FTE)
Text Layout Framework (TLF)
What we won’t be covering

Eastern, bidi, TCY text
This is an introduction to FTE and FTL. There is always
more to learn
Text in previous Flash players
 Previous versions of Flash used TextField to render text
   Still available in Flash 10 player and used by MX
   controls
   Very limited use of Font data
   Fairly primitive text formatting capabilities
   Changing the alpha or rotation of text required
   embedded fonts
 Difficult to meet designers’ needs, especially in Flex
Text in Flash player 10
 Vasty improved OpenType font support for embedded
 and device fonts
Text in Flash player 10
 Vasty improved OpenType font support for embedded
 and device fonts
 Real Kerning
Kerning
 Flash 9, TextBox   Flash 10, FTE
Text in Flash player 10
 Vasty improved OpenType font support for embedded
 and device fonts
 Real Kerning
 Improved antialiasing and pixel snapping with CFF
Compact Font Format
Fonts are converted to CFF when embedded in a swf
using the embedAsCFF option

        @font-face {
        	 src:url("/fonts/Baskerville.otf");
        	 fontFamily: BaskervilleCFF;
        	 advancedAntiAliasing: true;
        	 embedAsCFF: true;
        }


     [Embed(source="/fonts/Baskerville.otf",
            fontFamily="FranklinGothicStdBook",
            mimeType="application/x-font",
            embedAsCFF="true")]
Text in Flash player 10
 Vasty improved OpenType font support for embedded
 and device fonts
 Real Kerning
 Improved antialiasing and pixel snapping with CFF
 Baseline snapping
Baselines
 Ideographic top                             Ascent

Ideographic center
                                             Roman

Ideographic bottom
                                             Descent



Dominant baseline
baseline to use as the “y=0” of the text.

Alignment baseline
baseline to snap the dominant baseline to.
Text in Flash player 10
 Vasty improved OpenType font support for embedded
 and device fonts
 Real Kerning
 Improved antialiasing and pixel snapping with CFF
 Baseline snapping
 Digit case and width
Digit case and width

Old Style, Proportional   Lining, Tabular
   1234567890             1234567890
   4958372639             4958372639
   9384750128             9384750128
   0987654321             0987654321
Text in Flash player 10
 Vasty improved OpenType font support for embedded
 and device fonts
 Real Kerning
 Improved antialiasing and pixel snapping with CFF
 Baseline snapping
 Digit case and width
 Ligatures
Ligatures




Æ æ fr
Text in Flash player 10
 Vasty improved OpenType font support for embedded
 and device fonts
 Real Kerning
 Improved antialiasing and pixel snapping with CFF
 Baseline snapping
 Digit case and width
 Ligatures
Great!
So, how do we use it?


     FTE                   TLF
Flash Text Engine   Text Layout Framework
Flash Text Engine (FTE)
 Built into Flash player 10
 Provides low level text layout and rendering
 Meant to be extended with higher level frameworks, like
 the Text Layout Framework
 Provides low-level access to text metrics used to
 position character glyphs
 Spark Label component is based on FTE
 All classes located in the flash.text.engine package
FTE - Important classes
                                  ContentElement
                                 Defines the content to be displayed.
                                Text, Graphic, or a Group containing a

FontDescription
                                       mix of ContentElements.
                                                                                TextBlock
  Defines font to be used.             TextElement                        Factory class that creates TextLine
                                                                          objects of a given width using its
Family, weight, posture, etc.               Defines text.                     assigned ContentElement.




                                  GraphicElement
ElementFormat                         Defines a DisplayObject.                     TextLine
  Defines the text format.                                                The DisplayObject containing the
   Color, Font Size, etc.                                                         rendered text.
                                    GroupElement
                                     Defines a collection of Text,
                                      Graphic and other Group
                                             elements.
FTE - Usage
                   ElementFormat
  TextElement

 GraphicElement    FontDescription
  GroupElement                            Stage
    TextElement

  GraphicElement                          Sprite
   GroupElement
                      createTextLine()   TextLine
                      createTextLine()   TextLine
  TextBlock           createTextLine()   TextLine
Flash Text Engine (FTE)


                Demo
      Using the Flash Text Engine
Text Layout Framework (TLF)

High level framework for rendering structured,
formatted text
Open source, 100% Actionscript 3
Spark RichText and RichEditableText components
based on TLF
All classes located in the flashx.textlayout package
Text Layout Format

Hierarchical data model for storing structured text
Can be defined in MXML or imported from other
formats
Importers provided for XML, FXG, HTML and Plain text
Can be used directly within a RichText or
RichEditableText component to display and edit.
Text Layout Format

 ‣TextFlow                       ‣SpanElement
   base element for TLF text.      defines a run of text for styling.



 ‣DivElement                     ‣InlineGraphicElement
   groups paragraphs for style     display object (image, Sprite,
   inheritance.                    UIComponet, etc)



 ‣ParagraphElement               ‣LinkElement
   groups elements together        display object (image, Sprite,
   into a single block.

                                 ‣TCYElement
                                   Represents Tate-Chu-Yoko
                                   text run.
Text Layout Format


                   Demo
Using a TextFlow with the RichText component
Multicolumn TextFlows
  TextFlows support multicolumn text, which RichText
  and RichEditable components can display
  It’s as simple as setting the columnCount or
  columnWidth property



                     Demo
Multicolumn TextFlow with the RichText component
Breaking out of the box
 Sometimes a RichText component won’t do and you
 need more control over the containers that text is
 flowing over
 FlowComposer
   Uses ContainerController objects to fill Sprites with
   TextLines, allowing you much more control over how
   the text is displayed
Flow composer
TextFlow


IFlowComposer                                           Stage

                                                        Sprite
    IContainerController
     (Takes a Sprite & fills it with TextLines)   TextLine    TextLine


                                                        Sprite
    IContainerController
     (Takes a Sprite & fills it with TextLines)
                                                 TextLine    TextLine
Flow composer
                  Demo
Using FlowCompser to display multi-column text


            text     text     text
           column   column   column



            text     text     text
           column   column   column
Interacting with TextFlows

 Interaction Managers
   SelectionManager
   EditManager


 RichText component does not support Interaction
 managers
 RichEditableText uses its own managers, depending on
 the setting of its selectable and editable properties.
Interacting with TextFlows


                   Demo
 Using Interaction Managers with a TextFlow
Thanks for attending!
More Information
  Adobe TLF Blog
  http://blogs.adobe.com/tlf
  TLF Text Editor Demo
  http://labs.adobe.com/technologies/textlayout/demos
  Official OpenSource Adobe TLF Site
  http://opensource.adobe.com/wiki/display/tlf



               Matt Guest
mattguest.com mattguest@gmail.com                @mguest

More Related Content

Similar to Intro To Flex Typography 360|Flex

Visual Experience 360 Flex
Visual Experience 360 FlexVisual Experience 360 Flex
Visual Experience 360 FlexJuan Sanchez
 
Development of forms editors based on Ecore metamodels
Development of forms editors based on Ecore metamodelsDevelopment of forms editors based on Ecore metamodels
Development of forms editors based on Ecore metamodelsMario Cervera
 
Visual Studio .NET2010
Visual Studio .NET2010Visual Studio .NET2010
Visual Studio .NET2010Satish Verma
 
WPF 4 Series: Getting Started
WPF 4 Series: Getting StartedWPF 4 Series: Getting Started
WPF 4 Series: Getting StartedGhasem Karimi
 
Wpf4 july2010
 Wpf4 july2010 Wpf4 july2010
Wpf4 july2010tedhu
 
RapidMiner: Word Vector Tool And Rapid Miner
RapidMiner:   Word Vector Tool And Rapid MinerRapidMiner:   Word Vector Tool And Rapid Miner
RapidMiner: Word Vector Tool And Rapid MinerRapidmining Content
 
RapidMiner: Word Vector Tool And Rapid Miner
RapidMiner:  Word Vector Tool And Rapid MinerRapidMiner:  Word Vector Tool And Rapid Miner
RapidMiner: Word Vector Tool And Rapid MinerDataminingTools Inc
 
Flex 4 Deep Dive
Flex 4 Deep DiveFlex 4 Deep Dive
Flex 4 Deep DiveEffective
 
Flex 4 Deep Dive
Flex 4 Deep DiveFlex 4 Deep Dive
Flex 4 Deep DiveEffectiveUI
 
Bootcamp - Web Development Session 2
Bootcamp - Web Development Session 2Bootcamp - Web Development Session 2
Bootcamp - Web Development Session 2GDSCUniversitasMatan
 
Formatting text with CSS
Formatting text with CSSFormatting text with CSS
Formatting text with CSSNicole Ryan
 
Visual Studio 2010 and .NET 4.0 Overview
Visual Studio 2010 and .NET 4.0 OverviewVisual Studio 2010 and .NET 4.0 Overview
Visual Studio 2010 and .NET 4.0 Overviewbwullems
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPFDoncho Minkov
 
REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5Rob Windsor
 
.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep JoshiSpiffy
 
Groovy component
Groovy componentGroovy component
Groovy componentSindhu VL
 
Experience and Content Fragment
Experience and Content FragmentExperience and Content Fragment
Experience and Content FragmentHeena Madan
 

Similar to Intro To Flex Typography 360|Flex (20)

Visual Experience 360 Flex
Visual Experience 360 FlexVisual Experience 360 Flex
Visual Experience 360 Flex
 
Development of forms editors based on Ecore metamodels
Development of forms editors based on Ecore metamodelsDevelopment of forms editors based on Ecore metamodels
Development of forms editors based on Ecore metamodels
 
What's New in Silverlight 5
What's New in Silverlight 5What's New in Silverlight 5
What's New in Silverlight 5
 
WEB DEVELOPMENT
WEB DEVELOPMENTWEB DEVELOPMENT
WEB DEVELOPMENT
 
Visual Studio .NET2010
Visual Studio .NET2010Visual Studio .NET2010
Visual Studio .NET2010
 
Flex for php developers
Flex for php developersFlex for php developers
Flex for php developers
 
WPF 4 Series: Getting Started
WPF 4 Series: Getting StartedWPF 4 Series: Getting Started
WPF 4 Series: Getting Started
 
Wpf4 july2010
 Wpf4 july2010 Wpf4 july2010
Wpf4 july2010
 
RapidMiner: Word Vector Tool And Rapid Miner
RapidMiner:   Word Vector Tool And Rapid MinerRapidMiner:   Word Vector Tool And Rapid Miner
RapidMiner: Word Vector Tool And Rapid Miner
 
RapidMiner: Word Vector Tool And Rapid Miner
RapidMiner:  Word Vector Tool And Rapid MinerRapidMiner:  Word Vector Tool And Rapid Miner
RapidMiner: Word Vector Tool And Rapid Miner
 
Flex 4 Deep Dive
Flex 4 Deep DiveFlex 4 Deep Dive
Flex 4 Deep Dive
 
Flex 4 Deep Dive
Flex 4 Deep DiveFlex 4 Deep Dive
Flex 4 Deep Dive
 
Bootcamp - Web Development Session 2
Bootcamp - Web Development Session 2Bootcamp - Web Development Session 2
Bootcamp - Web Development Session 2
 
Formatting text with CSS
Formatting text with CSSFormatting text with CSS
Formatting text with CSS
 
Visual Studio 2010 and .NET 4.0 Overview
Visual Studio 2010 and .NET 4.0 OverviewVisual Studio 2010 and .NET 4.0 Overview
Visual Studio 2010 and .NET 4.0 Overview
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPF
 
REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5REST, JSON and RSS with WCF 3.5
REST, JSON and RSS with WCF 3.5
 
.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi
 
Groovy component
Groovy componentGroovy component
Groovy component
 
Experience and Content Fragment
Experience and Content FragmentExperience and Content Fragment
Experience and Content Fragment
 

Recently uploaded

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Intro To Flex Typography 360|Flex

  • 1. Intro to Flex Typography Matt Guest 360|Flex San Jose March 8, 2010
  • 2. About me Matt Guest Lead Flex developer for Nxtbook Media, Lancaster PA • Programming and working in the web for around 12 years • Flash developer since Flash 3 • Flex developer since Flex 2
  • 3. What we will be covering New text features built into the Flash 10 player Flash Text Engine (FTE) Text Layout Framework (TLF)
  • 4. What we won’t be covering Eastern, bidi, TCY text This is an introduction to FTE and FTL. There is always more to learn
  • 5. Text in previous Flash players Previous versions of Flash used TextField to render text Still available in Flash 10 player and used by MX controls Very limited use of Font data Fairly primitive text formatting capabilities Changing the alpha or rotation of text required embedded fonts Difficult to meet designers’ needs, especially in Flex
  • 6. Text in Flash player 10 Vasty improved OpenType font support for embedded and device fonts
  • 7. Text in Flash player 10 Vasty improved OpenType font support for embedded and device fonts Real Kerning
  • 8. Kerning Flash 9, TextBox Flash 10, FTE
  • 9. Text in Flash player 10 Vasty improved OpenType font support for embedded and device fonts Real Kerning Improved antialiasing and pixel snapping with CFF
  • 10. Compact Font Format Fonts are converted to CFF when embedded in a swf using the embedAsCFF option @font-face { src:url("/fonts/Baskerville.otf"); fontFamily: BaskervilleCFF; advancedAntiAliasing: true; embedAsCFF: true; } [Embed(source="/fonts/Baskerville.otf", fontFamily="FranklinGothicStdBook", mimeType="application/x-font", embedAsCFF="true")]
  • 11. Text in Flash player 10 Vasty improved OpenType font support for embedded and device fonts Real Kerning Improved antialiasing and pixel snapping with CFF Baseline snapping
  • 12. Baselines Ideographic top Ascent Ideographic center Roman Ideographic bottom Descent Dominant baseline baseline to use as the “y=0” of the text. Alignment baseline baseline to snap the dominant baseline to.
  • 13. Text in Flash player 10 Vasty improved OpenType font support for embedded and device fonts Real Kerning Improved antialiasing and pixel snapping with CFF Baseline snapping Digit case and width
  • 14. Digit case and width Old Style, Proportional Lining, Tabular 1234567890 1234567890 4958372639 4958372639 9384750128 9384750128 0987654321 0987654321
  • 15. Text in Flash player 10 Vasty improved OpenType font support for embedded and device fonts Real Kerning Improved antialiasing and pixel snapping with CFF Baseline snapping Digit case and width Ligatures
  • 17. Text in Flash player 10 Vasty improved OpenType font support for embedded and device fonts Real Kerning Improved antialiasing and pixel snapping with CFF Baseline snapping Digit case and width Ligatures
  • 18. Great! So, how do we use it? FTE TLF Flash Text Engine Text Layout Framework
  • 19. Flash Text Engine (FTE) Built into Flash player 10 Provides low level text layout and rendering Meant to be extended with higher level frameworks, like the Text Layout Framework Provides low-level access to text metrics used to position character glyphs Spark Label component is based on FTE All classes located in the flash.text.engine package
  • 20. FTE - Important classes ContentElement Defines the content to be displayed. Text, Graphic, or a Group containing a FontDescription mix of ContentElements. TextBlock Defines font to be used. TextElement Factory class that creates TextLine objects of a given width using its Family, weight, posture, etc. Defines text. assigned ContentElement. GraphicElement ElementFormat Defines a DisplayObject. TextLine Defines the text format. The DisplayObject containing the Color, Font Size, etc. rendered text. GroupElement Defines a collection of Text, Graphic and other Group elements.
  • 21. FTE - Usage ElementFormat TextElement GraphicElement FontDescription GroupElement Stage TextElement GraphicElement Sprite GroupElement createTextLine() TextLine createTextLine() TextLine TextBlock createTextLine() TextLine
  • 22. Flash Text Engine (FTE) Demo Using the Flash Text Engine
  • 23. Text Layout Framework (TLF) High level framework for rendering structured, formatted text Open source, 100% Actionscript 3 Spark RichText and RichEditableText components based on TLF All classes located in the flashx.textlayout package
  • 24. Text Layout Format Hierarchical data model for storing structured text Can be defined in MXML or imported from other formats Importers provided for XML, FXG, HTML and Plain text Can be used directly within a RichText or RichEditableText component to display and edit.
  • 25. Text Layout Format ‣TextFlow ‣SpanElement base element for TLF text. defines a run of text for styling. ‣DivElement ‣InlineGraphicElement groups paragraphs for style display object (image, Sprite, inheritance. UIComponet, etc) ‣ParagraphElement ‣LinkElement groups elements together display object (image, Sprite, into a single block. ‣TCYElement Represents Tate-Chu-Yoko text run.
  • 26. Text Layout Format Demo Using a TextFlow with the RichText component
  • 27. Multicolumn TextFlows TextFlows support multicolumn text, which RichText and RichEditable components can display It’s as simple as setting the columnCount or columnWidth property Demo Multicolumn TextFlow with the RichText component
  • 28. Breaking out of the box Sometimes a RichText component won’t do and you need more control over the containers that text is flowing over FlowComposer Uses ContainerController objects to fill Sprites with TextLines, allowing you much more control over how the text is displayed
  • 29. Flow composer TextFlow IFlowComposer Stage Sprite IContainerController (Takes a Sprite & fills it with TextLines) TextLine TextLine Sprite IContainerController (Takes a Sprite & fills it with TextLines) TextLine TextLine
  • 30. Flow composer Demo Using FlowCompser to display multi-column text text text text column column column text text text column column column
  • 31. Interacting with TextFlows Interaction Managers SelectionManager EditManager RichText component does not support Interaction managers RichEditableText uses its own managers, depending on the setting of its selectable and editable properties.
  • 32. Interacting with TextFlows Demo Using Interaction Managers with a TextFlow
  • 34. More Information Adobe TLF Blog http://blogs.adobe.com/tlf TLF Text Editor Demo http://labs.adobe.com/technologies/textlayout/demos Official OpenSource Adobe TLF Site http://opensource.adobe.com/wiki/display/tlf Matt Guest mattguest.com mattguest@gmail.com @mguest