This content has been marked as final. Show 26 replies
We've got nobody who does localizations here? Surely someone has to do this stuff.. Bump!
It's very useful for caching and ease of replacement to desire to put re-used assets of all sorts in their own files once instead of multiple times. To be able to change the font used in a whole project by merely replacing one .SWF is obviously ideal. Also to change color and style via CSS is just as idea. But to do both would be magical.
Surely there has to be a way..
Is it possible to use fonts embedded in one SWF (a.swf) inside another SWF (b.swf) while being able to assign the fonts via an external CSS file?
yes. search for a tutorial. there are too many steps and quirks for a forum discussion.
I don't want to indicate that I'm a novice user in any way shapr or form, nor that I'm avoiding searching the subject. I assure you I've been up and down google on this issue and I can do 'parts' of what I want to do, but not all of it.
I can embed fonts in an external SWF and use then in dynamic fields elsewhere. I can either link directly in my library or specify it via AS. I can load those fonts in multiple ways, but what works best is the typical daisy chain loader with a font embedded seperately, one SWF per font. Etc. That much is obvious and has always worked.
What does not work, despite a few articles claiming it would, is specifying a font identifier in CSS. I cannot get this final step to perform in AS2 / F8.
I have Flash CS3 and I see the fonts class can make short work of this, however I use MDM Zinc and Screentime mProjector and neither of them support AS3 completely. So I am forced to use AS2, and do not have this class.
And so I'm here.. There really shouldn't be too many steps involved in this, it's just importing a font in whatever way I haven't found that will enable its outline rendering when called during CSS. Neither specifying the font identifier as the actual font name nor a completely random idenfier name works FYI (as most people ask first).
I think everyone can benefit from extracting font styling from their SWFs so this would be useful information here for everyone. Less recompiling is always ideal.
i've done this with as2 and as3 and found both were quirky, illogical and not all simple. (that's similar to my experience positioning and sizing objects when you use flash full-screen.)
i can tell you they both can be done, but they are both experiences i would not repeat without being well-paid.
Could you give me any direction or links or anything in the way of information on what you mean?
in as2, i think you use the font's library name, not its linkage id. in as3, you use the font name not the class name and not the library name. i can check that for sure when i get home to my project files.
Thanks kglad! Sorry I couldn't get to this post in a few days, I'm sure you know how work load goes up and down the crazy scale ;). I will try using the library name, never tried that before! I appreciate the tip!
BTW could you tell me which of the methods you use to actually load that asset? I tried the runtime shared method, also tried importing the asset SWF with a text field in it containing the outlines and also tried just linking directly to this font and haven't been able to figure out which method you're using.
I named the linkage one thing and the library name something else. Neither seem to trigger the font to be displayed. :(
loadMovie() and i used the font name, same as in as3.
So you use the sharedfonts.com method? Via embedding the text into a text area..
Just to clarify, you:
1. Make a SWF containing a movieclip on stage. In the movieclip you place a dynamic text field with the font embedded into it. The movieclip in this is exported for runtime sharing.
2. Make a SWF that contains a movieclip in the library that is linked to the movieclip in step 1 above via import for runtime sharing. It has the same library name and ID.
3. You then import the SWF made in step 2 into your project into a movieclip on stage (visible or not), and then have access to using the fonts embedded in step 1.
Is that the method you do?
i create a swf that contains the shared assets including fonts that are added to the library. i then load that swf into other swfs that need access the shared assets.
So you don't even need to use the exploit of runtime shared assets. Most of my tests were based on that daisy chain load so I'll give your method a try. Thanks for the insights!
I guess it's amazing but I honestly, wholly cannot get this to work.
I made a new AS2 Flash 8 FLA (Forte.fla) with only the Forte font with a size of 22 in the library. The name of the library element was Forte. The linkage was set to "Export for Actionscript" and "Export in first frame".
I made another FLA (main.fla) Flash8 AS2. In actionscript I created an empty movie clip named "Asset_Forte" at the next highest depth and Asset_Forte.loadMovie("Forte.swf"). I also made a dynamic text field on the stage of this main.fla document and set it to Arial 22pt (no bold or italics, etc). I did not embed anything into it.
I made a TextTormat object (my_fmt) and set my_fmt.font = "Forte";. I put some text in the dynamic text field to start so I just applied the formatting (status_text.setTextFormat(my_fmt);).
This did not work. I started adjusting random things like naming the font in the Forte.swf library to Forte22 and tried my_fmt.font = "Forte22";. That didn't work.
I adjusted the linkage to "Export for runtime sharing" and specified Forte.swf as the SWF to share from. This did not work.
I then dragged the font from the Forte.fla's library (while "Export for runtime sharing" was enabled) into the library of main.fla. I checked the link and it was proper, "Import for runtime sharing, Forte.swf". I used both linkage attempts again (Forte and Forte22) with my_fmt.font and neither worked.
Would it be possible at all to get a couple FLAs from you that examplifies how you do this particular trick? I can't seem to get the settings right. I would be indebted to you!
i can't send you the as2 files. that was a client project.
I was more or less asking if you could create 2 new documents and just slap in the font and settings as an example file for all of us looking to share some font assets properly.
I'd be happy to host a ZIP containing the example files on my server and you can put a .txt file in with credits to you and/or your company.
I mostly want your solution because sharedfonts.com's solution (which by the way, does work) is actually being exported as Flash 6, AS1. Also your method only requires 1 file instead of 1 font asset and a loader (2 files each font). When I change the documents to Flash 8 AS2 I get nothing but errors. I think sharedfonts.com is relying on the hack being available in older versions of flash and this is just why when I reproduce it in functional flash8, it simply doesn't work.
Nevermind.. found a working example finally, and this one isn't easy to find (unless you know his name or w/e): Shared Fonts in Flash
His method works for me on the web, and offline. It ended up being if I ever save my documents as Flash CS3 and export to Flash 8, it won't work. But if I save-as down to Flash8 and then publish as flash8 also, it works. Very weird, but, works..
no, it's too time-consuming. it was a lot of trial-and-error work in as2 and it was a lot of trial-and-error work in as3.
i undercharged for the as2 project when i failed to recognize how much time this would take. and i'm not enthusiastic about doing it again for free.
the as3 project was for kglad.com and i knew that was going to be time-consuming but that was ok. parts of that code i can share but i wouldn't want to re-write it, either.
And there are quirks to note.. If you use the method above and then try to use a normal built-in font for something, it's actually defaulting to using one of the embedded fonts. e.g. if I set my_fmt.font = "Arial" it will never change it to arial. Nor in CSS does it work. It just uses a embedded shared font instead.
Very, very weird..
Didn't see your reply.. I understand, not everyone has time to help other people out. No worries, that other tutorial did the job and should be more than easy to understand for everyone else. Thanks anyhow.
You didn't help haha. The method I'm using is from a post linked on another forum that wasn't even showin up in common sense google searches. Thanks for trying though.
i know not everyone can be helped without step-by-step instructions. and sometimes even step-by-step instructions aren't enough.
It only makes perfect sense to give step by step instructions when you're talking about a process or when technical detail is involved. If you're going to tell me how to peel an apple then you can say something simple like grab a peeler or a knife and just skim the outside and it'll work. But a problem where a couple dozen settings across a multi-document concept need to be correct, obviously it requires outlining all the settings.
Happy to help you understand how to help. Consult the URL I just posted and you'll see in-depth instructions with source files provided.
i didn't respond to your first few posts because i wasn't going to be spoon-feeding you. and that's what i felt you needed based on your first posts.
but with your fourth post you asked only if something could be done. not how to do it. and to that i responded telling you yes, it could be done and i further informed you that i wasn't going to be explaining the process to you and i stated why i wasn't going to explaining the process to you and i suggested you look elsewhere for a tutorial.
and you did find a tutorial and that solved your problem. so, it seems to me you should be saying thanks and leave it at that. even though my suggestion to look elsewhere was not a big help, you sure weren't getting anywhere in this forum before that suggestion and it's doubtful you would get anywhere in any other forum.
now, it may make perfect sense to you that you needed a step-by-step tutorial to figure this out, but it's not my job to supply that step-by-step tutorial. and it's not my job to help you in this forum. i'm not being paid to help you and i'm not being paid to help anyone else in this forum.
therefore, your attitude that i owe you something is inappropriate. i owe you nothing but courtesy which you failed to return to me. so, you can be sure i'll never knowingly respond to any of your posts in the future.
happy to help you understand how to avoid acting like an ***.