ActionScript 3.0 :: Possible To Use Embedded Fonts And CSS?
Jun 1, 2009
Using Flash CS3, I have created a class that when called will
1.) Create a Dynamic text field,
2.) Import external HTML into it,
3.) Apply an external CSS style sheet to it, and
4.) Place it on the stage
So far it works great, but now I'd like to be able to specify an embedded font from the css file. I followed the basic procedure for making a library symbol of the font, setting its linkage to Export for Actionscript on the first frame, and gave it a unique name "myFont"
In my style sheet, I tried using:
font-family: "myFont";
or
font-family: myFont;
but neither way seems to work.
I also found numerous tutorials on how to make it work in AS2, but nothing in AS3. When I specify embedFonts=true in the before-mentioned class, it will not display any of the text, though it does draw the box and any image contents from the html file.
I save my (embedded) fonts in an external file (fonts.swf) that gets loaded at runtime. Pretty standard. I also use a bunch of UI artwork generated in the Flash IDE. Some of this artwork contains static textfields (thus, not proper TextFields that can change. Just frozen glyphs). Here's the problem: if I use the same font in any static textfield and then embed that same font into my collection of runtime fonts, the runtime font will refuse to render. It's the same effect you get if you set a textfield with embeddedFonts=true to use a font that isn't embedded. If I change the static textfields to use a different font, the runtime fonts work just fine.
Edited Short Version:The Adobe Flash docs list a property embedFonts on TextAreas:
A Boolean value that indicates whether the font specified in fontFamily is an embedded font. This style must be set to true if fontFamily refers to an embedded font. Otherwise, the embedded font is not used. If this style is set to true and fontFamily does not refer to an embedded font, no text is displayed. The default value is false. Regarding the "If this style is set to true and fontFamily does not refer to an embedded font, no text is displayed" statement: How can I detect in ActionScript when this scenario happens?
TL;DR Original Version: I have a flash application which loads external .swf files containing embedded fonts, so that these fonts can be used within the main application. We're accomplishing this by using the following ActionScript code on anything which uses custom fonts:
I am dynamically loading rss description into it and would like to have first character and characters unsupported by other font be in that first font. i limited the range of char of that second font so all unsupported chars and first char should be in that first font.
I'm trying to embed a font in FlashDevelop. My folder structure is My embed metadata is
[Embed(source = 'resources/04B08.TTF', fontName = '04b08')] public var _04b08:Class;
My code is
public var titleFormat:TextFormat; public var titleText:TextField; private function init(e:Event = null):void
[code]....
If I use this, I get
But I uncomment the titleText.embedFonts = true; line, I get This is the method that all of the guides I can find use. What should I do to get it to work?
When you use funky/weird fonts in a fla are they embedded automatically like a PDF file? So if the viewer doesn't have that font they can still see it?
If I use a wierd or obscure font in my flash project, then I dont have to worry about the user having the same font installed, because it gets embedded in the SWF, correct? Or does it depend on something? If so, what?
Also, what about fonts getting embedded in the FLA file? If I use a wierd or obscure font in a flash project I'm working on, and then I pass off the FLA to a friend to finish the project, does he need the font installed? Or is it in the FLA file already? how this stuff worked but I sent the FLA to a friend and now hes asking for the font. I was sure it would be embedded.what is a good way to test that the fonts get embedded in the SWF? Do I have to uninstall the font inquestion and view the SWF and see if its still using the font?
- Created a seperate swf with 2 fonts in the library, linkage "_Arial" and "_ArialBold". "_ArialBold" has the style set to "bold". On the first frame I have:
When I load the swf in my main application and itterate through the list of available fonts the 2 new fonts are returned, but fontName outputs "Arial" in both cases not the linkage name.
textformat.font = "Arial";
This works fine, but I can't figure out how to assign the embedded font "_ArialBold" to a textfield. How is this done?
I have a shared fonts.swf file containing a variety of fonts that my main swf uses. I have a movieclip within the fonts.swf file which is exported for runtime sharing. In my main swf i have the fonts.swf imported for runtime via a movieclip. This all works fine and allows me to use the fonts within the fonts.swf file in my main swf. All of my text fields are dynamic and created/updated via AS. I use the following method to style my text boxes(additional code removed for succinctness, this is just so you can see the overall methodology)[code]...
Create new AS3 fla fileIn publish settings, click 'Generate Size report'Put some text on the stage - Classic text, static (Though it doesn't seem to matter)Make sure the font is '_sans' (There is no 'Use device fonts' option for this font choice)Publish the fileNote that _sans is now embedded in the SWF, occupying bytes in the size report. Try the same in CS3, and there is nothing embedded, as you would expect. Unfortunately I can't get my fla loaded into CS3 because CS5 will only allow me to export as CS4.
Similarly, change the font to something specific, like Verdana, and set it to use device fonts and it still embeds font data (We're talking about 3 or 4k) but doesn't list any glyphs. Occasionally though, by screwing around, it doesn't embed anything. Then nudge some text in some magical way and it's back to embedding redundant data.
embedded fonts aren't working for me in TextFlow. The non-embedded/pre-included fonts are working fine but if i try to add my own font, it doesn't work.i have the font set to DF4 and i have it exported for ActionScript with a class name.the font i'm using specificaly is Kozuka Gothic Pro L, which is OpenType.
[URL]It is a Drupal-powered, AMFPHP-connected AS3 web app. The data goes through to Flash with no problems, I have verified that UTF-8 is fine and all. The problem can be better seen in these URLs:
[URL]
A plaintext version of that link:
[URL]
The font is Inconsolata although I could use any monospace open-source font if necessary. You can see that I have embedded the font (I even opted for the dynamic textfields to embed the whole thing, full charset) as well as the "New Font" menu in the library. Inconsolata shows up with an asterisk in the CS4 authoring tool (which according to Adobe documentation means the thing is embedded).
I have tried other font embedding options to no avail. Inconsolata seems to have that "Ċ" character when used in the authoring but it is not showing up in the dynamic texts.Another problem I am having: if I use static text fields the font doesn't get embedded (WTF). I have to convert the field to dynamic and then it works ("the videogame history timeline" top left is a dynamic text field although I would prefer it not to be... that and others). If I use static text field the font gets converted to some sort of Times New Roman font.
The text is AS3-created (as well as the search results).I am embedding the text via HTML (.htmlText) and styling with CSS.The whole code is open source and can be found here:
[URL]
An example of how I fill in a text field can be found here:
I'm using Flash CS5. I've got an embedded font loaded from an external SWF. As far as I can tell, it's embedded properly - it used to work before I switched from the classic TextField - but I needed to switch because I need the advanced ligature support. My code is:
//setting up... var text:TFLTextField = new TLFTextField(); text.width = 530; text.height = 330;
[Code]....
Edit: Just tried to switch the font to Arial, and it fell back to Times New Roman again. So apparently the problem is not with the embedding, but with the way I assign the font - meaning this may be less complicated than I originally thought. Scratch that, Arial worked after I changed embedFonts to false.
I have a static textfield using Myriad Pro bold font that, when set to STATIC TEXT works absolutely fine, in the correct font.If I set it to DYNAMIC TEXT and test the SWF, the text shows up as a system font; not Myriad ProIf I set it to EMBED CHARACTERS the text doesn't show up at all on ANY system, whether the font is installed or not.
I have tried adding the font to the Library and using that "Family" for Properties>Character in my dynamic text box, but get the same results as when I don't set that to EMBED CHARACTGERS. I've tried selecting the font for the textfield as both the standard OS Font, as well as the one with the Asterisk next to it, but get the same results both ways.The library font is set to "export for actionscript" and "on frame 1".
I don't think it's an issue with the font not being available, as I'm able to see it when setting textfield to STATIC type, and I use the font in other CS4 products (Photoshop, etc.).
It works great, but I can't figure out how to change the font in the textbox using an embedded font.I imported a new font into the library and named it "marriage". I also selected the export options. But the following doesn't work as expected:
format = new TextFormat(); format.font = "marriage"; tfield.setTextFormat(format);
Is there something else I need to do to use an embedded font? My eventual goal with this is to create a drop down menu with several fonts in it that people can use to change the font face in the text field.
i have embedded all of my different fonts in the library - (ie Regular, Bold, Semibold versions)When I try to call those fonts via their linkage name from my CSS file, they just don't appear at all.. NO test appears in fact.I can only get them to appear when I refer to them by their "real" name ie NOT: ChapProSemBold - Only: Chaparral Pro Semibold I can only get the variations of the font appearing together when embedfonts = false, but then the text looks crappy - even with "antiAliasType = AntiAliasType.ADVANCED".
When I set embedfonts = true, the type looks good - but I don't get the variations anymore! I just get the standard font - not my bold or semibold.
My CSS is:
Code: p { font-size: 14px; font-family:Chaparral Pro;
I have a dynamic text field on my stage with the instance name of "yesno". In the text box panel, (so not the code) I have it set to embed all the glyphs. In my code I have the following:
I've attached 2 screenshots. The first shows the flash stage at its default size - as you can see my font is all distorted and weird looking but when you zoom in (image 2) it's exactly like it should be. What would make it look like this when the stage hasn't been zoomed out or anything, it's just from pressing cmd and enter from flash?
I embedded it by putting it into the fla's library.
Presume there is a textField with fonts embedded using Flash (CS4) IDE's "Character Embedding" option of the textField property panel.How these embedded characters are stored actually?Is the embedded fontset accessible beyond this single textFiled and how?Is there any way to clone such a textFiled in runtime having a new dynamic textFiled object with all embedded characters included?
There's a site I'm working on I have the alpha on the navigation buttons set to 0.2 the text appears with full alpha as I want I have a nice Old English font I want to use but when I embed the font it takes on the alpha settings of the background.I set the alpha for the text field to 1 but the text remains at 0.2.n how to set the alpha of a container without affecting the embedded text in it or to set the alpha on the embedded text independently?
I used the proLoader that comes in Flash5.5 to load a swf which contains a tlf text with an embedded font. The proLoader works great but it doesn't display the font instead it displays a font that looks like Helvetica. I also tried 'merged into code' in RSL settings default linkage and the swf still does not display the font I want. It works fine in Classic Text.
As some of these languages have very big font sizes (e.g. Chinese), I do not want to load all these fonts into the app. at once but was thinking to put them into different modules and then load only the specific module (depending on which language is chosen in the main app). For this I moved the style part from the main app: