Flash / Flex / ActionScript/TextField

Материал из Web эксперт
Перейти к: навигация, поиск

Automatically selecting a fallback font

   <source lang="java">

package {

 import flash.display.*;
 import flash.text.*;
 public class Main extends Sprite {
   public function Main() {
     var format:TextFormat = new TextFormat(  );
     format.font = getFont(["ZapfChancery", "Verdana", "Arial", "_sans"]);
     var t:TextField = new TextField(  );
     t.text = "ActionScript is fun!";
     t.autoSize = TextFieldAutoSize.LEFT;
     t.setTextFormat(format)
     addChild(t);
   }
   public function getFont (fontList: Array):String {
     var availableFonts:Array = Font.enumerateFonts(true);
     for (var i:int = 0; i < fontList.length; i++) {
       for (var j:int = 0; j < availableFonts.length; j++) {
         if (fontList[i] == Font(availableFonts[j]).fontName) {
           return fontList[i];
         }
       }
     }
     return null;
   }
 }

}

       </source>
   
  


Class-level font embedding

   <source lang="java">

package {

 import flash.display.*;
 import flash.text.*;
 import mx.core.FontAsset;
 
 public class HelloWorld extends Sprite {
   Verdana;
   public function HelloWorld (  ) {
     var t:TextField = new TextField(  );
     t.embedFonts = true;
     t.htmlText = "Hello world";
     addChild(t);
   }
 }

} [Embed(source="c:/windows/fonts/verdana.ttf", fontFamily="Verdana")] class Verdana extends FontAsset { }

       </source>
   
  


Creates a TextField object and then tells Flash Player to render it with embedded fonts using the FlashType renderer:

   <source lang="java">

package{

 import flash.display.Sprite;
   import flash.text.*;  
 public class Main extends Sprite{
   public function Main(){
       var t:TextField = new TextField(  );
       t.embedFonts = true;
       t.antiAliasType = AntiAliasType.ADVANCED;
   }
 }

}

       </source>
   
  


Determining Glyph Availability

   <source lang="java">

package{

 import flash.display.Sprite;
 import flash.text.*;
 
 public class Main extends Sprite{
   public function Main(){
       var fontName:String = "Verdana";
       var font:Font;
       var fonts:Array = Font.enumerateFonts(true);
       for (var i:int = 0; i < fonts.length; i++) {
         if (fonts[i].fontName == fontName) {
           font = fonts[i];
           break;
         }
       }
       trace(font.hasGlyphs("Hello world"));  // Displays: true
   //    trace(font.hasGlyphs()); // Displays: false
   }
 }

}

       </source>
   
  


Embedded-Text Rendering

   <source lang="java">

package{

 import flash.display.Sprite;
 import flash.text.*;  
 public class Main extends Sprite{
   public function Main(){
       var t:TextField = new TextField(  );
       
       t.embedFonts = true;
       t.antiAliasType = AntiAliasType.NORMAL;
       
       addChild(t);
   }
 }

}

       </source>
   
  


Embedding fonts centrally

   <source lang="java">

package {

 import flash.display.*;
 import flash.text.*;
 public class Main extends Sprite {
   public function Main (  ) {
     var t:TextField = new TextField(  );
     t.embedFonts = true;
     t.htmlText = "Hello world";
     addChild(t);
   }
 }

} class FontEmbedder {

   [Embed(source="c:/windows/fonts/verdana.ttf",fontFamily="Verdana")]
   private var verdana:Class;

}

       </source>
   
  


FlashType versus Flash Player"s standard vector-renderer

   <source lang="java">

package {

 import flash.display.*;
 import flash.text.*;
 public class FlashTypeDemo extends Sprite {
   [Embed(source="c:/windows/fonts/verdana.ttf",fontFamily="Verdana")]
   private var verdana:Class;
   public function FlashTypeDemo (  ) {
     var t:TextField = new TextField(  );
     t.width = 200;
     t.embedFonts = true;
     t.htmlText = "" + "abcdefghijklmnopqrstuvwxyz";
     t.antiAliasType = AntiAliasType.ADVANCED;
     addChild(t);
     var t2:TextField = new TextField(  );
     t2.width = 200;
     t2.embedFonts = true;
     t2.htmlText = "" + "abcdefghijklmnopqrstuvwxyz";
     t2.antiAliasType = AntiAliasType.NORMAL;
     addChild(t2);
     t2.x = 180;
   }
 }

}

       </source>
   
  


Hello World, in Verdana

   <source lang="java">

package {

 import flash.display.*;
 import flash.text.*;
 public class Main extends Sprite {
   [Embed(source="c:/windows/fonts/verdana.ttf",
          fontFamily="Verdana")]
   private var verdana:Class;
   public function Main (  ) {
     var t:TextField = new TextField(  );
     t.embedFonts = true;
     t.htmlText = "Hello world";
     addChild(t);
   }
 }

}

       </source>
   
  


Listing all device fonts

   <source lang="java">

package{

 import flash.display.Sprite;
 import flash.text.*;  
 public class Main extends Sprite{
   public function Main(){
       var fonts:Array = Font.enumerateFonts(true);
       fonts.sortOn("fontName", Array.CASEINSENSITIVE);
       for (var i:int = 0; i < fonts.length; i++) {
         if (fonts[i].fontType == FontType.DEVICE) {
           trace(fonts[i].fontName + ", " + fonts[i].fontStyle);
         }
       }
   }
 }

}

       </source>
   
  


Listing all embedded and device fonts

   <source lang="java">

package{

 import flash.display.Sprite;
   import flash.text.*;
 public class Main extends Sprite{
   public function Main(){
       var fonts:Array = Font.enumerateFonts(true);
       fonts.sortOn("fontName", Array.CASEINSENSITIVE);
       for (var i:int = 0; i < fonts.length; i++) {
           trace(fonts[i].fontType + ": "
                 + fonts[i].fontName + ", " + fonts[i].fontStyle);
       }
   }
 }

}

       </source>
   
  


Listing all embedded fonts

   <source lang="java">

package{

 import flash.display.Sprite;
 import flash.text.*;
 public class Main extends Sprite{
   public function Main(){
       var fonts:Array = Font.enumerateFonts(  );
       fonts.sortOn("fontName", Array.CASEINSENSITIVE);
       for (var i:int = 0; i < fonts.length; i++) {
         trace(fonts[i].fontName + ", " + fonts[i].fontStyle);
       }
   }
 }

}

       </source>
   
  


Loading Fonts at Runtime

   <source lang="java">

package {

 import flash.display.*;
 import flash.text.*;
 // Embed fonts for use by any .swf file that loads this file
 public class Main extends Sprite {
   [Embed(source="c:/windows/fonts/verdana.ttf",
          fontFamily="Verdana")]
   private var verdana:Class;
   [Embed(source="c:/windows/fonts/verdanab.ttf",
          fontFamily="Verdana",
          fontWeight="bold")]
   private var verdanaBold:Class;
   // Constructor
   public function Main() {
     // Register this class"s embedded fonts in the global font list
     Font.registerFont(verdana);
     Font.registerFont(verdanaBold);
   }
 }

}

 class Fonts extends flash.display.Sprite {
   [Embed(source="c:/windows/fonts/verdana.ttf",
          fontFamily="Verdana")]
   private var verdana:Class;
   [Embed(source="c:/windows/fonts/verdanab.ttf",
          fontFamily="Verdana",
          fontWeight="bold")]
   private var verdanaBold:Class;
 }
       </source>
   
  


Missing Fonts and Glyphs

   <source lang="java">

package{

 import flash.display.Sprite;
 import flash.text.*;  
 public class Main extends Sprite{
   public function Main(){
       var t:TextField = new TextField(  );
       t.embedFonts = true;
       t.htmlText = "Hello world";
       addChild(t);
   }
 }

}

       </source>
   
  


Set the font with HTML

   <source lang="java">

package{

 import flash.display.Sprite;
 import flash.text.*;
 public class Main extends Sprite{
   public function Main(){
       var t:TextField = new TextField(  );
       t.embedFonts = true;
       t.htmlText = "Hello world";
   }
 }

}

       </source>
   
  


Using bold and italic with embedded fonts

   <source lang="java">

package {

 import flash.display.*;
 import flash.text.*;
 public class Main extends Sprite {
   FontEmbedder;
   public function Main() {
     var t:TextField = new TextField(  );
     t.embedFonts = true;
     t.htmlText = "Hello world";
     addChild(t);
   }
 }

}

 class FontEmbedder {
   [Embed(source="c:/windows/fonts/verdana.ttf",
          fontFamily="Verdana")]
   private var verdana:Class;
   [Embed(source="c:/windows/fonts/verdanab.ttf",
          fontFamily="Verdana",
          fontWeight="bold")]
   private var verdanabold:Class;
 }
       </source>