Flash / Flex / ActionScript/TextField — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 11:14, 26 мая 2010
- Animation
- Effects
- Event
- Filter
- Input Field
- Length
- MouseEvent
- Password
- Scroll
- StyleSheet
- autosize
- background
- border
- color
- focus
- focus event
- htmlText
- margin
- mouseWheel
- rotation
- selection
- size
- skew
- tab
- text
- text event
- text format
- type
- wordwrap
Содержание
- 1 Automatically selecting a fallback font
- 2 Class-level font embedding
- 3 Creates a TextField object and then tells Flash Player to render it with embedded fonts using the FlashType renderer:
- 4 Determining Glyph Availability
- 5 Embedded-Text Rendering
- 6 Embedding fonts centrally
- 7 FlashType versus Flash Player"s standard vector-renderer
- 8 Hello World, in Verdana
- 9 Listing all device fonts
- 10 Listing all embedded and device fonts
- 11 Listing all embedded fonts
- 12 Loading Fonts at Runtime
- 13 Missing Fonts and Glyphs
- 14 Set the font with HTML
- 15 Using bold and italic with embedded fonts
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>