From b4bf6fe0ab43beefc2dc6fe3a50ce36c79333ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Fri, 6 Jan 2023 22:02:45 +0100 Subject: [PATCH] Fixed #1932 Wrong subsprite frames display --- CHANGELOG.md | 3 +- .../decompiler/flash/timeline/Timeline.java | 7 +- .../ffdec_lib/testdata/timeline/timeline.html | 49 +++++ .../ffdec_lib/testdata/timeline/timeline.swd | Bin 0 -> 24 bytes .../ffdec_lib/testdata/timeline/timeline.swf | Bin 0 -> 2684 bytes .../timeline/timeline/DOMDocument.xml | 41 ++++ .../timeline/timeline/LIBRARY/Symbol 1.xml | 195 +++++++++++++++++ .../timeline/timeline/LIBRARY/Symbol 2.xml | 35 +++ .../timeline/timeline/LIBRARY/Symbol 3.xml | 36 +++ .../timeline/timeline/LIBRARY/Symbol 4.xml | 24 ++ .../timeline/timeline/META-INF/metadata.xml | 55 +++++ .../timeline/timeline/MobileSettings.xml | 0 .../timeline/timeline/PublishSettings.xml | 206 ++++++++++++++++++ .../timeline/timeline/bin/SymDepend.cache | Bin 0 -> 104 bytes .../testdata/timeline/timeline/timeline.xfl | 1 + 15 files changed, 647 insertions(+), 5 deletions(-) create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline.html create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline.swd create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline.swf create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/DOMDocument.xml create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 1.xml create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 2.xml create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 3.xml create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 4.xml create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/META-INF/metadata.xml create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/MobileSettings.xml create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/PublishSettings.xml create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/bin/SymDepend.cache create mode 100644 libsrc/ffdec_lib/testdata/timeline/timeline/timeline.xfl diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ec4d9787..443bf6e76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file. ### Fixed - GFX - DefineExternalImage2 display and correct handling if standalone - [#1931] DefineSprite rectange calculation (incorrect export dimensions) -- [#1929] Wrong subsprite frames display +- [#1929], [#1932] Wrong subsprite frames display ## [18.3.0] - 2023-01-01 ### Added @@ -2843,6 +2843,7 @@ All notable changes to this project will be documented in this file. [alpha 7]: https://github.com/jindrapetrik/jpexs-decompiler/releases/tag/alpha7 [#1931]: https://www.free-decompiler.com/flash/issues/1931 [#1929]: https://www.free-decompiler.com/flash/issues/1929 +[#1932]: https://www.free-decompiler.com/flash/issues/1932 [#1913]: https://www.free-decompiler.com/flash/issues/1913 [#1905]: https://www.free-decompiler.com/flash/issues/1905 [#1915]: https://www.free-decompiler.com/flash/issues/1915 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 62f5d90a4..c74df06ee 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 @@ -741,8 +741,8 @@ public class Timeline { if (cacheAsBitmap && renderContext.displayObjectCache != null) { DisplayObjectCacheKey key = new DisplayObjectCacheKey(layer.placeObjectTag, unzoom, viewRect); img = renderContext.displayObjectCache.get(key); - } - + } + int stateCount = renderContext.stateUnderCursor == null ? 0 : renderContext.stateUnderCursor.size(); int dframe; if (fontFrameNum != -1) { @@ -750,8 +750,7 @@ public class Timeline { } else { dframe = time % drawableFrameCount; } - int dtime = 0; - + int dtime = time - dframe; ExportRectangle viewRect2 = new ExportRectangle(viewRect); if (filters != null && filters.size() > 0) { diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline.html b/libsrc/ffdec_lib/testdata/timeline/timeline.html new file mode 100644 index 000000000..60337bfef --- /dev/null +++ b/libsrc/ffdec_lib/testdata/timeline/timeline.html @@ -0,0 +1,49 @@ + + + + timeline + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + Get Adobe Flash player + + + + + +
+ + diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline.swd b/libsrc/ffdec_lib/testdata/timeline/timeline.swd new file mode 100644 index 0000000000000000000000000000000000000000..b978b12fd8471b56d45e2745b9bdb34cf2ec6bf7 GIT binary patch literal 24 fcmZ<@cVTB{U|^WdwvXkgUx)KlXT|863{^n@N{|Md literal 0 HcmV?d00001 diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline.swf b/libsrc/ffdec_lib/testdata/timeline/timeline.swf new file mode 100644 index 0000000000000000000000000000000000000000..911c2df7d889c6c0b5e37393b42366b592f652f0 GIT binary patch literal 2684 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 literal 0 HcmV?d00001 diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline/DOMDocument.xml b/libsrc/ffdec_lib/testdata/timeline/timeline/DOMDocument.xml new file mode 100644 index 000000000..bda4c61fd --- /dev/null +++ b/libsrc/ffdec_lib/testdata/timeline/timeline/DOMDocument.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 1.xml b/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 1.xml new file mode 100644 index 000000000..bc74e0061 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 1.xml @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + + + 3 + + + + + + + + + + + + + + + + + 4 + + + + + + + + + + + + + + + + + 5 + + + + + + + + + + + + + + + + + 6 + + + + + + + + + + + + + + + + + 7 + + + + + + + + + + + + + + + + + 8 + + + + + + + + + + + + + + + + + 9 + + + + + + + + + + + + + + + + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 2.xml b/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 2.xml new file mode 100644 index 000000000..b46ff505e --- /dev/null +++ b/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 2.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 3.xml b/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 3.xml new file mode 100644 index 000000000..c0845ba96 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 3.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 4.xml b/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 4.xml new file mode 100644 index 000000000..d2f00d943 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/timeline/timeline/LIBRARY/Symbol 4.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline/META-INF/metadata.xml b/libsrc/ffdec_lib/testdata/timeline/timeline/META-INF/metadata.xml new file mode 100644 index 000000000..3eada6ef1 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/timeline/timeline/META-INF/metadata.xml @@ -0,0 +1,55 @@ + + + + + Adobe Flash Professional CS6 - build 481 + 2023-01-06T09:47:59-08:00 + 2023-01-06T09:48:13-08:00 + 2023-01-06T09:48:13-08:00 + + + application/vnd.adobe.fla + + + xmp.iid:D2783472B889ED11A232E2213777BE6E + xmp.did:D2783472B889ED11A232E2213777BE6E + xmp.did:D2783472B889ED11A232E2213777BE6E + + + + created + xmp.iid:D2783472B889ED11A232E2213777BE6E + 2023-01-06T09:47:59-08:00 + Adobe Flash Professional CS6 - build 481 + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline/MobileSettings.xml b/libsrc/ffdec_lib/testdata/timeline/timeline/MobileSettings.xml new file mode 100644 index 000000000..e69de29bb diff --git a/libsrc/ffdec_lib/testdata/timeline/timeline/PublishSettings.xml b/libsrc/ffdec_lib/testdata/timeline/timeline/PublishSettings.xml new file mode 100644 index 000000000..2bee9cb16 --- /dev/null +++ b/libsrc/ffdec_lib/testdata/timeline/timeline/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 + timeline.swf + timeline.exe + timeline.app + timeline.html + timeline.gif + timeline.jpg + timeline.png + timeline.mov + timeline.smil + timeline.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 + timeline.xfl_content.html + timeline.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/timeline/timeline/bin/SymDepend.cache b/libsrc/ffdec_lib/testdata/timeline/timeline/bin/SymDepend.cache new file mode 100644 index 0000000000000000000000000000000000000000..78eae208abdcaed6e7b164c5b3df397f74c8c487 GIT binary patch literal 104 zcmYdiU|@L8&d9*Zz{bD}WGetM3lMWL1Xt!J<>x3EBC(B-*d`1Wa5csZ4ExqHFfao3 OF#|D(h5-