If I am right in understanding, do you want to unregister / unregister all fonts that are not as complete as the version of this particular font that has already been downloaded but built into another swf?
Each built-in font creates a class, each swf that you load through the Loader class is loaded by default into its own application domain to prevent namespace conflicts, but you can force the loader to load everything into the current application domain using the "loader context" parameter Loader load (). Thus, you can try to force classes to be redefined in the same namespace with each other, but with what you cannot control which class should be discarded, you cannot check which font has more glyphs. (maybe it just throws errors instead of overriding and does not start at all, I'm not sure about that).
On the other hand, you should ask a question about how fonts are actually embedded in child swf files. I don't know any other way than embedding fonts like:
in * .fla-files as a "library symbol", or in flashbuilder or flex code as follows: [Embed(source="c:/windows/fonts/verdana.ttf", fontFamily="Verdana", embedAsCFF="false")] ,
or that:
@font-face { src: url("../assets/MyriadWebPro.ttf"); fontFamily: myFontFamily; advancedAntiAliasing: true; }
in mxml files. Thus, (this is what I think) the resulting name of the generated class depends on the "font-family" property (or even more settings) set by the developer, which means that even if the same font is embedded twice in the name class, differ depending on the settings.
There is also no Font.unregisterFont() method, so how to manage this remains a good question, in case you somehow find the same font class (maybe RegExp becomes a friendly helper).
I think that for the correct solution you need to control at compile time using .xfl-based xml project files, perhaps even if the mentioned Font-File may have a different name.
Good problem luck