0

I'm investigating huge legacy project, where many SWF assets are dynamically loaded. I guess designers used embedded fonts in Flash IDE. Now I'm making localization and my issue is that embedded Futura font doesn't have non-english symbols. I've added correct ttf font:

[Embed(source="../../../../../assets/fonts/FuturaBT-ExtraBlackCondensed.ttf", fontFamily="Futura Extra Black Condensed BT", mimeType="application/x-font", embedAsCFF="false")]
private const FONT_FUTURA_EXTRA_BLACK_CONDENSED:Class;

I've removed all places in main code with Font.registerFont() It works, but when I check Font.enumerateFonts(false) to show all embedded fonts it shows some mess:

[trace] Fonts : embedded 21 / all 192
[trace]     Arial / regular / embeddedCFF
[trace]     Arial / bold / embedded
[trace]     Arial / regular / embedded
[trace]     Arial / regular / embedded
[trace]     Arial Black / regular / embeddedCFF
[trace]     Arial Bold / regular / embeddedCFF
[trace]     Arial Bold / bold / embedded
[trace]     DS-Digital / bold / embedded
[trace]     Futura Extra Black Condensed BT / regular / embedded
[trace]     Futura Extra Black Condensed BT / regular / embedded
[trace]     ITCOfficinaSans LT Book / bold / embedded
[trace]     ITCOfficinaSerif LT Book / bold / embedded
[trace]     Myriad Pro / regular / embedded
[trace]     Myriad Pro Bold / bold / embedded
[trace]     Myriad Pro Bold Condensed / bold / embedded
[trace]     Myriad Pro Light / bold / embedded
[trace]     Myriad Pro Semibold / bold / embedded
[trace]     Rockwell Extra Bold / regular / embedded
[trace]     Times New Roman / regular / embeddedCFF
[trace]     VAG Rounded BT / regular / embedded
[trace]     VAG Rounded LT CYR Bold / bold / embedded

I'm worried that invalid Futura Extra Black Condensed BT is still there. So I have 2 questions:

  1. How to find source of those embed fonts?

  2. Is there way to remove or hide font after it was embedded somehow?

Sergey Senkov
  • 1,490
  • 1
  • 13
  • 23
  • They could be embedded via Flash IDE. Any text field has "Embed" button which opens a certain interface with the list of all the fonts marked for embedding in the FLA source you are editing. When publishing, these fonts are embedded into the resulting SWF. – Organis Jan 31 '18 at 13:17
  • Ok, but is there way to protect my main SWF from outdated fonts while loading other SWF? – Sergey Senkov Jan 31 '18 at 13:20
  • **Loader.load** has second argument that allows to load external SWF into separate addressing context. I think that will do it for you. – Organis Jan 31 '18 at 13:29
  • One more thing. You actually can track where these fonts come from. First, **Loader.contentLoaderInfo.applicationDomain.getQualifiedDefinitionNames()** https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/ApplicationDomain.html#getQualifiedDefinitionNames() Second, use JPEXS tool to look into SWFs and find out which fonts are embedded there. – Organis Jan 31 '18 at 14:13

0 Answers0