Flash Player has a new text engine

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 :^)

ebensorkin'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'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'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

ebensorkin's picture

That sounds like very good news indeed!

Thanks Thomas!

Si_Daniels'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's picture

Fantastic Miguel. Thanks for the update.

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'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's picture

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

Nick Shinn's picture

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

ebensorkin's picture

Nick, that is a utterly great point.

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.'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'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'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's picture

ok thanks.

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's picture

Thanks, Miguel. That sounds hopeful.

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'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'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.'s picture

Thanks!

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'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'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'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'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'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's picture

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

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

hrant's picture

Does it still support pixelfonts, especially grayscale ones?

hhp

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'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's picture

Great!

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

hhp

Miguel Sousa's picture

I think DefineFont4 only supports OpenType and TrueType fonts.

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'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'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'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'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'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.

Rob O. Font'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!

Syndicate content Syndicate content