Personal tools

Enhanced Text API

From OpenLaszlo

Contents

Text API Enhancements


Justification for API Addition

Flash 10 supports a new Text Layout Framework with advanced typography features.

  • Bidirectional text: Includes vertical text and over 30 writing systems including Arabic, Hebrew, Chinese, Japanese, Korean, Thai, Lao, the major writing systems of India, Tate-Chu-Yoko (horizontal within vertical text) and more.
  • Formatting: Text with inline graphics (images, SWFs, or any DisplayObject) and multiple columns of text with text flow and text selection through these columns. Additionally support for vertical text, Tate-Chu-Yoko (horizontal within vertical text) and justifier (Eastern European).
  • Print-quality typography for the web: Allows for kerning, ligatures, typographic case, digit case, digit width, and discretionary hyphens.
  • Mouse and Keyboard user gestures - standard keyboard and mouse functionality for copy, paste, undo and cut.
  • Text metrics: Includes measurements and offsets of fonts

In DHTML, HTML 5 and CSS3 also provide advanced typography features.

This page will discuss which features are desirable, which can be implemented in a cross platform way, and if any incompatible changes to the API will be needed.

Flash Text Layout Engine / Framework

The new Flash text API is composed of a lower level Text Engine API (which is built into the player), and a higher level Text Layout Framework API (which is implemented as a Javascript library).

TLF1.jpg

Documentation is at http://opensource.adobe.com/wiki/display/tlf/Text+Layout+Framework

API reference at http://livedocs.adobe.com/flex/gumbo/langref/

(not sure if this is old or new, they renamed the text components to "Spark") http://opensource.adobe.com/wiki/display/flexsdk/Spark+Text+Primitives

API Changes

TBD

API Specification

TBD

Justification for API Change

When you describe the problem that your API change addreses, please be sure to provide answers to the following questions.

  • Does this API change have any effect on existing code?
  • Explain how compatibility will be maintained (for the deprecation state)?
  • Justify why we should proceed with this change.