Flash Player has a new text engine

Miguel Sousa
14.May.2008 11.22pm
Miguel Sousa's picture

The Beta version of Adobe Flash Player 10 was just released on Adobe Labs. Among the many enhancements, there is a new Text Engine which comes along with an extensive library of ActionScript 3.0 Text Layout Components. Here’s the blurb from the release notes.

New Text Engine
A new, highly flexible text layout engine, co-existing with TextField, enables innovation in creating new text controls by providing low-level access to text layout and interactivity APIs to create component-level text objects. The new text engine expands creative freedom by treating device fonts as first class citizens that can be anti-aliased, rotated, and styled and have filters applied as if they were embedded. The new text engine also offers right-to-left and vertical text layout, plus support for typographic elements like ligatures.

Text Layout Components
An extensible library of ActionScript 3.0 text components, coming in future to Adobe Labs, provides advanced, easy-to-integrate layout functionality that enables typographic creative expression. Layout and style text with tables, inline images, and column flow through components that are compatible with both Flash and Flex, all while getting the benefits of the new text engine. Rich text components allow designers and developers to flow text and complex scripts, such as Arabic, Hebrew, and Thai, across multiple columns like a newspaper, around tables and inline images, from right-to-left, left-to-right, bi-directionally, or vertically. Selection, editing, and wrapping of text are handled as would be expected for the different layouts.

Anti-Aliasing Engine (Saffron 3.1)
An update to the Saffron anti-aliasing text engine increases performance and quality of anti-aliased text, particularly for Asian character rendering. Support for stroke fonts reduces memory requirements.

That’s right, support for Complex Scripts and OpenType features is coming to the Flash platform. These are great news!

Take a look at the video. It features Hypatia Sans Pro :^)



Eben Sorkin
15.May.2008 12.11am
Eben Sorkin's picture

Thanks Miguel! This sounds quite terrific!

So this engine clearly supports LIGA. But of course I must ask: What about CALT?


Miguel Sousa
15.May.2008 2.03am
Miguel Sousa's picture

I think support for Contextual alternates (calt) is there as well, along with a few other features (e.g. Discretionary ligatures, otherwise we wouldn’t see Hypatia’s ’st’ ligature or the cap ligatures). But I need to ask around to get the full list. And surely Thomas will soon blog about it, providing a lot more details.


Thomas Phinney
15.May.2008 7.03am
Thomas Phinney's picture

Yes, I have a handy chart I made defining exactly what’s there for OT features, but it will be a day or two before I post it.

Cheers,

T


Eben Sorkin
15.May.2008 8.08am
Eben Sorkin's picture

That sounds like very good news indeed!

Thanks Thomas!


sii
15.May.2008 8.09am
sii's picture

What’s the format for the stroke based fonts? Is it a public format or proprietary? As Saffron is owned by Monotype, is it the iType stroke based font format?


Joe Pemberton
19.May.2008 9.40am
Joe Pemberton's picture

Fantastic Miguel. Thanks for the update.


sii
19.May.2008 10.28am
sii's picture

Mark Simonson
19.May.2008 1.14pm
Mark Simonson's picture

Great! I’ve been wishing for OT support in Flash ever since I started making OT fonts. It’s been really frustrating having to tell customers using Flash that they can’t have any of the type goodies. Is OT support coming for Fireworks? That would be nice, too.


Miguel Sousa
23.May.2008 6.17pm
Miguel Sousa's picture

The API documentation for Astro (Flash Player 10’s codename) has been recently made available. I had a look at the classes included in the flash.text.engine package, and there’s some interesting stuff there,

DigitCase (DEFAULT, LINING, OLD_STYLE)
DigitWidth (DEFAULT, PROPORTIONAL, TABULAR)
Kerning (AUTO, OFF, ON)
LigatureLevel (COMMON, EXOTIC, MINIMUM, NONE, UNCOMMON)
TypographicCase (CAPS, CAPS_AND_SMALL_CAPS, DEFAULT, LOWERCASE, SMALL_CAPS, TITLE, UPPERCASE)

Some properties are easy to map to specific OpenType features, but not all. I also suspect that there’s more OT support than these items make believe, since FP10 has complex script support after all. Some supported features are likely on by default under the hood.

The examples provided in the classes ElementFormat, TextBlock and TextLine are quite interesting as well.


Ricardo Cordoba
23.May.2008 8.07pm
Ricardo Cordoba's picture

Yes! This is good news indeed! Thanks, Miguel!


Nick Shinn
23.May.2008 10.31pm
Nick Shinn's picture

Does this enable online type testers to have the functionality of the FontLab preview window?
If so, wow.


Eben Sorkin
23.May.2008 11.02pm
Eben Sorkin's picture

Nick, that is a utterly great point.


Miguel Sousa
24.May.2008 2.17am
Miguel Sousa's picture

> Does this enable online type testers to have the functionality of the FontLab preview window?

Yes, I believe so. However, I don’t think the API will allow you the level of granularity to turn on/off every single feature, like the FontLab Preview does. Remember, the API is supposed to give you access to the functionalities of the text engine, not to the functionalities of the font itself. You get to the font’s functionalities indirectly through the text engine.

For those who can’t wait to start developing content for FP10 Beta, Lee Brimelow has put together a videocast that explains it all very well: Flash Player 10 Beta: Getting Started - This tutorial shows you how to get started with creating content for Flash Player 10

And if you want to see something happening right on your browser, install the Beta from the labs, go to the Demos page, and click on the “New Text Engine” button. There you’ll be able to interact with the 2-column text layout, and download the source code, like so,


k.l.
24.May.2008 3.23am
k.l.'s picture

LigatureLevel (COMMON, EXOTIC, MINIMUM, NONE, UNCOMMON)

Nick, you may need to redesign fonts’ feature logic to create exciting “exotic”, “minimum”, “uncommon” ligature behavior.  :D
Unfortunately, the API documentation doesn’t say which features are actually linked to which options.

Best wishes,
Karsten


tezzutezzu
24.May.2008 3.55am
tezzutezzu's picture

Hello Miguel,
When will we be able to compile with these new features in Flash CS3 IDE? Is Adobe planning to make available a downloadable upgrade?

thanks


Miguel Sousa
24.May.2008 10.39am
Miguel Sousa's picture

> When will we be able to compile with these new features in Flash CS3 IDE? Is Adobe planning to make available a downloadable upgrade?

I don’t know.


tezzutezzu
25.May.2008 5.15pm
tezzutezzu's picture

ok thanks.


Miguel Sousa
27.May.2008 10.49am
Miguel Sousa's picture

> Is OT support coming for Fireworks? That would be nice, too.

I don’t know, but the Adobe Fireworks Beta was just posted on Adobe Labs and it claims to support the Adobe Type Engine (ATE). Here’s the blurb from that page,

Adobe type engine
Produce superior type designs with the enhanced typesetting capabilities of Adobe Type Engine, familiar to users of Photoshop and Illustrator and now available in Fireworks. Import or copy and paste double-byte characters from Adobe Illustrator or Photoshop without loss of fidelity. Float text inside a path for high impact text logos.

and some more from the Release Notes page,

Adobe Text Engine — Many new enhancements have been integrated; such as retaining the fidelity of your Photoshop or Illustrator designs with text. Support for Ligatures and font style. Flowing text inside a closed path has been implemented.


Mark Simonson
27.May.2008 11.53am
Mark Simonson's picture

Thanks, Miguel. That sounds hopeful.


Mark Simonson
29.May.2008 9.32pm
Mark Simonson's picture

Or, maybe not. I just downloaded the Fireworks CS4 Beta. The text tools appear virtually identical to those in the previous version. No obvious way to enable contextual alternates or any other OT feature. Maybe is only works when you paste something in from Illustrator or whatever... Hmm. Paste a text block in from Illustrator, and suddenly the contextual alternates are working, even when I change to a different font. Make a new text block, and it’s back to pre-OT text handling. Kind of lame, but better than no support at all, I guess.


Thomas Phinney
5.Jun.2008 11.05am
Thomas Phinney's picture

Yes, the Fireworks feature is solely for text brought in from Illustrator. You can, however, edit that text to your heart’s content (including changing font, size, etc.), so one can imagine making what is essentially a style sheet of pasted Illustrator text blocks for use in Fireworks, implementing different features.

Note that the ligature support is off in the public beta. It wasn’t working quite right, so they turned it off rather than let you enjoy a nasty bug. One might reasonably guess it will be back in the final version, though of course I can make no promises.

Cheers,

T


Thomas Phinney
5.Jun.2008 11.07am
Thomas Phinney's picture

Also, I finally got up my blog post on Flash Player, which covers language support as well as typographic OpenType functionality (the latter towards the bottom of the post).

http://blogs.adobe.com/typblography/2008/06/flash_player_10.html#more


k.l.
5.Jun.2008 11.17am
k.l.'s picture

Thanks!


Mark Simonson
5.Jun.2008 11.22am
Mark Simonson's picture

Is it possible that any of those missing features (Stylistic Sets, Swashes, Fractions, etc.) will make it in before release?


DonMoir
5.Jun.2008 2.10pm
DonMoir's picture

I don’t see a way to make text.engine text selectable. Miguel, have you checked this ? This would be important in doing page layout and possibly an editor using text.engine. I have spent little time on text.engine so far, so I am not sure if using it for an editor is even practical.


Thomas Phinney
6.Jun.2008 10.03am
Thomas Phinney's picture

Mark: Not likely, but feel free to use the feature reqest form to let the Flash Player team know what you want. http://www.adobe.com/cfusion/mmform/index.cfm?name=wishform

Regards,

T


Miguel Sousa
6.Jun.2008 10.34am
Miguel Sousa's picture

> I don’t see a way to make text.engine text selectable. Miguel, have you checked this ?

No, I haven’t. The flash.text.engine classes on the Flash Player 10 Beta are essentially low-level classes. Think of them as the building blocks. If so inclined, you can build a text editor on top of them, but I agree it’s not a trivial task. You might want to wait for FP10’s final release, which will likely have a more comprehensive framework.


DonMoir
9.Jun.2008 7.33am
DonMoir's picture

Thanks Miguel... I see that in the adobe labs demo for the text engine, ( http://labs.adobe.com/technologies/flashplayer10/demos/index.html ) the text is selectable and I assume this is provided by the programmer, but there is no ibeam cursor. Hopefully they will provide the tools or whatever to do this in an ’efficient’ way. In flash 9, I already front end the textfield to fix a couple problems as can be seen here: http://sms.pangolin.com/vflash/Venus.html. Note that the text.engine sample provided by adobe is XML and does not contain complete source.


Miguel Sousa
22.Oct.2008 2.04pm
Miguel Sousa's picture

Peter deHaan has been posting some Flex Examples on his blog. Check out how to,
Embed fonts in Flex Gumbo
Set the typographic case
Set the ligature level


Miguel Sousa
23.Oct.2008 10.14am
Miguel Sousa's picture

In terms of OpenType feature tags, the ligature levels correspond to,

minimum = rlig
common = liga, clig
uncommon = dlig
exotic = hlig


hrant
23.Oct.2008 12.19pm
hrant's picture

Does it still support pixelfonts, especially grayscale ones?

hhp


Miguel Sousa
21.Nov.2008 5.46pm
Miguel Sousa's picture

The promised Text Layout Framework has been released today on Adobe Labs at,
http://labs.adobe.com/technologies/textlayout/

The diagram below shows the relationship between the Text Engine and the Framework and Components released today.


Miguel Sousa
21.Nov.2008 5.50pm
Miguel Sousa's picture

> Does it still support pixelfonts, especially grayscale ones?

If by “support” you mean that the fonts are displayed the same way as before, I think it does, but I haven’t tried.


hrant
21.Nov.2008 6.12pm
hrant's picture

Great!

Is there a meaning of “support” where the answer is “No”? :-/

hhp


Miguel Sousa
12.Dec.2008 11.04am
Miguel Sousa's picture

I think DefineFont4 only supports OpenType and TrueType fonts.


Miguel Sousa
12.Dec.2008 11.06am
Miguel Sousa's picture

The Max session entitled “Using the Component Library for Flash Player” by Robin Briggs has just been made available on Adobe TV at http://tv.adobe.com/#vi+f15383v1000


Thomas Phinney
12.Dec.2008 9.53pm
Thomas Phinney's picture

TLF only works with DefineFont 4.

DefineFont 4 only uses CFF outlines internally, but TrueType fonts can be converted as part of authoring the SWF or AIR app.

More on this and the rendering of such fonts in my final Adobe blog post here:
http://blogs.adobe.com/typblography/2008/12/tlf_rasterization.html

Cheers,

T


hrant
12.Dec.2008 10.45pm
hrant's picture

Wow, you’re leaving Adobe?! That’s a bummer. Who will fill
your shoes there? And most of all: what are you moving on to?

hhp


Thomas Phinney
13.Dec.2008 10.36pm
Thomas Phinney's picture

The answer to both questions is “I don’t know.” Although I have been working with my (former) colleagues to hand off my more pressing tasks.

T


Miguel Sousa
17.Feb.2009 4.53pm
Miguel Sousa's picture

Here’s a great article by Mihai Corlan on Using the Text Layout Framework in Flex 3.2 and AIR 1.5.


jessica winslet
8.Apr.2009 5.16am
jessica winslet's picture

This is really a good article, and I have to say that FP10 looks and sounds fantastic. I’m really looking forward to the new (inevitable) Flash/Flex updates so I can get stuck into the FP10 features. The new text jeux de casino related stuff, 3D API, local file loading/saving, and hardware accelerated bitmap rendering are going to make a huge difference to Flash based websites.


dberlow
8.Apr.2009 6.01am
dberlow's picture

”...use the feature request form to let the Flash Player team know what you want.”

Just one; I want Flash to do everything InDesign does. They’ve already agreed, so I can only wait. :)

Congratulations Adobe, for moving.

Cheers!