diff --git a/CHANGELOG.md b/CHANGELOG.md index 903279484..d40ee4296 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,6 +69,7 @@ All notable changes to this project will be documented in this file. - [#1194] FLA Export - stream sound export - [#2136] FLA Export - optimized Shape fixer speed, repeated shape on timeline not exported twice - [#2139] FLA Export - labels layer not counted as layer index causing masked layer parentindex wrong +- [#2138] Nested clipping (masks) display ### Changed - [#2120] Exported assets no longer take names from assigned classes if there is more than 1 assigned class @@ -3344,6 +3345,7 @@ Major version of SWF to XML export changed to 2. [#1194]: https://www.free-decompiler.com/flash/issues/1194 [#2136]: https://www.free-decompiler.com/flash/issues/2136 [#2139]: https://www.free-decompiler.com/flash/issues/2139 +[#2138]: https://www.free-decompiler.com/flash/issues/2138 [#2120]: https://www.free-decompiler.com/flash/issues/2120 [#1130]: https://www.free-decompiler.com/flash/issues/1130 [#1220]: https://www.free-decompiler.com/flash/issues/1220 diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/timeline/Timeline.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/timeline/Timeline.java index 4d73db66f..e4d0ed345 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/timeline/Timeline.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/timeline/Timeline.java @@ -1095,8 +1095,11 @@ public class Timeline { } if (clipChanged) { - if (clips.size() > 0) { + if (clips.size() > 0) { Area clip = null; + if (prevClip != null) { + clip = new Area(prevClip); + } for (Clip clip1 : clips) { Shape shape = clip1.shape; if (clip == null) { @@ -1114,7 +1117,7 @@ public class Timeline { //g.setStroke(new BasicStroke(2)); //g.draw(clip); } else { - g.setClip(null); + g.setClip(prevClip); } clipCount = clips.size(); 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 f10f4952b..ceb519f32 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 @@ -235,7 +235,7 @@ public class XFLConverter { private final Random random = new Random(123); // predictable random /** - * Adds "(depht xxx)" to layer name + * Adds "(depth xxx)" to layer name */ private final boolean DEBUG_EXPORT_LAYER_DEPTHS = false; diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2.html b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2.html new file mode 100644 index 000000000..7f3ce808a --- /dev/null +++ b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2.html @@ -0,0 +1,49 @@ + + + + nested_masks2 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + Get Adobe Flash player + + + + + +
+ + diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2.swf b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2.swf new file mode 100644 index 000000000..ca25bacb5 Binary files /dev/null and b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2.swf differ diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/DOMDocument.xml b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/DOMDocument.xml new file mode 100644 index 000000000..3b24d5e68 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/DOMDocument.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/LIBRARY/Masked1.xml b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/LIBRARY/Masked1.xml new file mode 100644 index 000000000..8b28b6519 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/LIBRARY/Masked1.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/LIBRARY/Masked2.xml b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/LIBRARY/Masked2.xml new file mode 100644 index 000000000..c8fff64d2 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/LIBRARY/Masked2.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/LIBRARY/Rect.xml b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/LIBRARY/Rect.xml new file mode 100644 index 000000000..bda8e5653 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/LIBRARY/Rect.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/META-INF/metadata.xml b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/META-INF/metadata.xml new file mode 100644 index 000000000..e599d1610 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/META-INF/metadata.xml @@ -0,0 +1,61 @@ + + + + + Adobe Flash Professional CS6 - build 481 + 2023-12-04T09:48:17-08:00 + 2023-12-04T09:53:41-08:00 + 2023-12-04T09:53:41-08:00 + + + application/vnd.adobe.fla + + + xmp.iid:FB0A2AA52D76EE119313910734F6A093 + xmp.did:FA0A2AA52D76EE119313910734F6A093 + xmp.did:FA0A2AA52D76EE119313910734F6A093 + + + + created + xmp.iid:FA0A2AA52D76EE119313910734F6A093 + 2023-12-04T09:48:17-08:00 + Adobe Flash Professional CS6 - build 481 + + + created + xmp.iid:FB0A2AA52D76EE119313910734F6A093 + 2023-12-04T09:48:17-08:00 + Adobe Flash Professional CS6 - build 481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/MobileSettings.xml b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/MobileSettings.xml new file mode 100644 index 000000000..e69de29bb diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/PublishSettings.xml b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/PublishSettings.xml new file mode 100644 index 000000000..a42cee2aa --- /dev/null +++ b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/PublishSettings.xml @@ -0,0 +1,206 @@ + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + nested_masks2.swf + nested_masks2.exe + nested_masks2.app + nested_masks2.html + nested_masks2.gif + nested_masks2.jpg + nested_masks2.png + nested_masks2.mov + nested_masks2.smil + nested_masks2.swc + + + 0 + 12,0,0,0;11,2,0,0;11,1,0,0;10,3,0,0;10,2,153,0;10,1,52,0;9,0,124,0;8,0,24,0;7,0,14,0;6,0,79,0;5,0,58,0;4,0,32,0;3,0,8,0;2,0,1,12;1,0,0,1; + 1 + 1 + nested_masks2.xfl_content.html + nested_masks2.xfl_alternate.html + 0 + + 550 + 400 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 4 + 0 + 0 + 1 + 0 + C:\Users\MyUser\AppData\Local\Adobe\Flash CS6\en_US\Configuration\HTML\Default.html + 1 + + + + + 0 + 0 + 0 + 80 + 0 + 0 + 7 + 0 + 7 + 0 + 15 + FlashPlayer11.2 + 2 + 1 + + . + CONFIG::FLASH_AUTHORING="true"; + 0 + + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + 2 + 4 + 4096 + AS3 + 1 + 1 + 0 + 15 + 1 + 0 + 4102 + rsl + wrap + $(AppConfig)/ActionScript 3.0/rsls/loader_animation.swf + + + $(AppConfig)/ActionScript 3.0/libs + merge + + + $(AppConfig)/ActionScript 3.0/libs/11.0/textLayout.swc + rsl + http://fpdownload.adobe.com/pub/swz/tlf/2.0.0.232/textLayout_2.0.0.232.swz + http://fpdownload.adobe.com/pub/swz/crossdomain.xml + textLayout_2.0.0.232.swz + + + + + $(AppConfig)/ActionScript 3.0/libs/11.0/textLayout.swc + + http://fpdownload.adobe.com/pub/swz/tlf/2.0.0.232/textLayout_2.0.0.232.swz + http://fpdownload.adobe.com/pub/swz/crossdomain.xml + textLayout_2.0.0.232.swz + + + + + 550 + 400 + 0 + 4718592 + 0 + 80 + 1 + + + 1 + 0 + 1 + 0 + 0 + 100000 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + + + 550 + 400 + 0 + 1 + 1 + + 1 + 0 + 1 + 0 + 0 + + 128 + + + 255 + + + + 550 + 400 + 1 + 0 + 0 + 1 + 0 + 0 + 1 + + + + 24-bit with Alpha + 255 + + + + 550 + 400 + 1 + 0 + + + 00000000 + 0 + 0 + 0 + 0 + 1 + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/bin/SymDepend.cache b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/bin/SymDepend.cache new file mode 100644 index 000000000..25be859ee Binary files /dev/null and b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/bin/SymDepend.cache differ diff --git a/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/nested_masks2.xfl b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/nested_masks2.xfl new file mode 100644 index 000000000..860a820ec --- /dev/null +++ b/libsrc/ffdec_lib/testdata/nested_masks2/nested_masks2/nested_masks2.xfl @@ -0,0 +1 @@ +PROXY-CS5 \ No newline at end of file