From b44aea95f7b8d513b6412e7eb327764f4a2a53c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 10 Sep 2023 16:39:09 +0200 Subject: [PATCH] Fixed FLA export - missing AS linkage class for fonts --- CHANGELOG.md | 1 + .../jpexs/decompiler/flash/xfl/XFLConverter.java | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 444eb37ea..f4364de88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ All notable changes to this project will be documented in this file. - FLA export - Sprites which do not end with ShowFrame tag - [PR109] FLA export - large font size of DefineEditText - [PR110] FLA export - image instances +- FLA export - missing AS linkage class for fonts ### Changed - [#2070] String values inside SWF to XML export are backslash escaped diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java index 3a809c5e6..0c2c03c73 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java @@ -2534,7 +2534,7 @@ public class XFLConverter { } } - private static void convertFonts(ReadOnlyTagList tags, XFLXmlWriter writer) throws XMLStreamException { + private static void convertFonts(Map characterClasses, ReadOnlyTagList tags, XFLXmlWriter writer) throws XMLStreamException { boolean hasFont = false; for (Tag t : tags) { if (t instanceof FontTag) { @@ -2620,6 +2620,16 @@ public class XFLConverter { "size", "0", "id", Integer.toString(fontId), "embedRanges", embedRanges}); + + boolean linkageExportForAS = false; + if (characterClasses.containsKey(fontId)) { + linkageExportForAS = true; + writer.writeAttribute("linkageClassName", characterClasses.get(fontId)); + } + if (linkageExportForAS) { + writer.writeAttribute("linkageExportForAS", true); + } + if (!"".equals(embeddedCharacters)) { writer.writeAttribute("embeddedCharacters", embeddedCharacters); } @@ -3784,7 +3794,7 @@ public class XFLConverter { domDocument.writeAttribute("height", doubleToString(height)); } - convertFonts(swf.getTags(), domDocument); + convertFonts(characterClasses, swf.getTags(), domDocument); convertLibrary(swf, characterVariables, characterClasses, characterScriptPacks, nonLibraryShapes, backgroundColor, swf.getTags(), characters, files, datfiles, flaVersion, domDocument); //domDocument.writeStartElement("timelines");