Flash CS3 + Flash Lite 1.x + dynamic text + embedded fonts = broken?
I've made a Flash Lite 1.1 movie in Flash 7 (Flash MX 2004) on the Mac. In it, I had a dynamic text field which I wanted to render as a particular font, so I embedded the font in the movie. This worked without problems previously.
Now, opening up the same file in Flash CS3 (and not changing anything), when I test/publish the movie, the dynamic text with embedded fonts won't display.
Similar to many people before, when I don't embed the font, the text field displays, but with a system font. When I do embed the font, the text doesn't render (even if the font is in the library).
The key thing that seems to have changed here seem to be the version of Flash.
The problem, I hope, is easy to recreate.
Open Flash CS3
Make a new Flash Lite 1.1 file.
Make a text field on stage with some text in it.
Set it to a font of your choice (something nice and distinctive... I used Babelfish in my case).
Set it to "dynamic" and ensure that "Anti-alias for animation" is selected (everything else can be left default)
Embed the need character set for the font for what you've typed.
Test the movie.
Did anybody get this to work (the text displayed)?
My movies made in a previous version of Flash (7) DID work. Now it doesn't.
If you change the publish settings from Flash Lite 1.1 to 2.x or higher, the problem goes away.
However, as everybody who's worked with Flash Lite knows, the penetration rates for Flash Lite 1.x are faaaar higher than later versions of Flash Lite, so changing to Flash Lite 2.x isn't feasible. Having to revise the code doesn't appeal much either.
But the look is important here as well so I don't want to have to resort to system fonts.
Can anybody confirm this problem is happening with them and if possible, suggest a solution or workaround?
Thanks for the reply hp3, but the text box was already on the root timeline.
This is about as simple as a movie can get. I guess you didn't recreate the steps I mentioned above?
I've included a sample .fla file showing exactly what I mean.
It's a CS3 Flash Lite 1.1 file, that has two dynamic text boxes on the stage (root timeline). The font used is good ol' Times New Roman. The upper text (in green) doesn't have the font embedded. The lower text in red does have the font embedded (I've done the Latin set, so it should be comprehensive). When you publish the movie, if you see the same as me, the emulated device in the Adobe Device Central window will show/render only the green (not embedded) text.
When viewing this same SWF on an actual phone, the same situation occurs, except the green text is of course now a system font of the phone, and not Times New Roman anymore.
This is definately problematic, also in FL 2.1 too - I seem to remember solving this by creating text fields on the pasteboard area (off the app visible screen area) using the same font sizes and weights. This then makes the font available to the .swf as the embedding process during the compiling to .swf process forces the font into the file.
The coding method (naming a font in the library and setting linkage etc) that should embed fonts in AS2 although the better theoretical approach, seems rather buggy (if it works at all!) with dynamically created font elements using code without my brute force stage text field approach.