diff --git a/trunk/src/com/jpexs/decompiler/flash/SWF.java b/trunk/src/com/jpexs/decompiler/flash/SWF.java index 39b8f8fd2..fa993bdfe 100644 --- a/trunk/src/com/jpexs/decompiler/flash/SWF.java +++ b/trunk/src/com/jpexs/decompiler/flash/SWF.java @@ -861,13 +861,13 @@ public class SWF { DefineSoundTag st = (DefineSoundTag) t; if ((st.soundFormat == DefineSoundTag.FORMAT_ADPCM) && wave) { - fos = new FileOutputStream(outdir + File.separator + id + ".wav"); + fos = new FileOutputStream(outdir + File.separator + st.getCharacterExportFileName() + ".wav"); createWavFromAdpcm(fos, st.soundRate, st.soundSize, st.soundType, st.soundData); } else if ((st.soundFormat == DefineSoundTag.FORMAT_MP3) && mp3) { - fos = new FileOutputStream(outdir + File.separator + id + ".mp3"); + fos = new FileOutputStream(outdir + File.separator + st.getCharacterExportFileName() + ".mp3"); fos.write(st.soundData, 2, st.soundData.length - 2); } else { - fos = new FileOutputStream(outdir + File.separator + id + ".flv"); + fos = new FileOutputStream(outdir + File.separator + st.getCharacterExportFileName() + ".flv"); FLVOutputStream flv = new FLVOutputStream(fos); flv.writeHeader(true, false); flv.writeTag(new FLVTAG(0, new AUDIODATA(st.soundFormat, st.soundRate, st.soundSize, st.soundType, st.soundData))); @@ -1026,7 +1026,7 @@ public class SWF { for (Tag t : tags) { if (t instanceof DefineVideoStreamTag) { DefineVideoStreamTag videoStream = (DefineVideoStreamTag) t; - try (FileOutputStream fos = new FileOutputStream(outdir + File.separator + ((DefineVideoStreamTag) t).characterID + ".flv")) { + try (FileOutputStream fos = new FileOutputStream(outdir + File.separator + ((DefineVideoStreamTag) t).getCharacterExportFileName() + ".flv")) { fos.write(exportMovie(videoStream)); } } diff --git a/trunk/src/com/jpexs/decompiler/flash/tags/base/CharacterIdTag.java b/trunk/src/com/jpexs/decompiler/flash/tags/base/CharacterIdTag.java index 7137fa52a..91afe742c 100644 --- a/trunk/src/com/jpexs/decompiler/flash/tags/base/CharacterIdTag.java +++ b/trunk/src/com/jpexs/decompiler/flash/tags/base/CharacterIdTag.java @@ -64,7 +64,11 @@ public abstract class CharacterIdTag extends Tag { @Override public String getExportFileName() { - return super.getName() + "_" + getCharacterID(); + return super.getName() + "_" + getCharacterID()+(((exportName!=null) && (!exportName.equals("")))?"_"+exportName:""); + } + + public String getCharacterExportFileName() { + return getCharacterID()+(((exportName!=null) && (!exportName.equals("")))?"_"+exportName:""); } public String getExportName() { diff --git a/trunk/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java b/trunk/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java index 1226e6fb7..04dad98c3 100644 --- a/trunk/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java +++ b/trunk/src/com/jpexs/decompiler/flash/xfl/XFLConverter.java @@ -1551,6 +1551,10 @@ public class XFLConverter { mediaLinkStr += " linkageExportForAS=\"true\" linkageClassName=\"" + characterClasses.get(symbol.getCharacterID()) + "\""; } + if (characterVariables.containsKey(symbol.getCharacterID())) { + mediaLinkStr += " linkageExportForAS=\"true\" linkageIdentifier=\"" + xmlString(characterVariables.get(symbol.getCharacterID())) + "\""; + } + mediaLinkStr += "/>\n"; media.add(mediaLinkStr); } @@ -1591,6 +1595,9 @@ public class XFLConverter { if (characterClasses.containsKey(symbol.getCharacterID())) { mediaLinkStr += " linkageExportForAS=\"true\" linkageClassName=\"" + characterClasses.get(symbol.getCharacterID()) + "\""; } + if (characterVariables.containsKey(symbol.getCharacterID())) { + mediaLinkStr += " linkageExportForAS=\"true\" linkageIdentifier=\"" + xmlString(characterVariables.get(symbol.getCharacterID())) + "\""; + } mediaLinkStr += "/>\n"; media.add(mediaLinkStr); }