mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-07-08 03:48:06 +00:00
Added: #2556 CLI subsprite animation export (-sublength <length> option for export)
Added: #2556 Option to select arbitrary frames of sprites export via `-select`. Check `--help -select` for details.
This commit is contained in:
@@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file.
|
||||
## [Unreleased]
|
||||
### Added
|
||||
- AS3 Document class is underlined and has different icon
|
||||
- [#2556] CLI subsprite animation export (`-sublength <length>` option for export)
|
||||
- [#2556] Option to select arbitrary frames of sprites export via `-select`.
|
||||
Check `--help -select` for details.
|
||||
|
||||
### Fixed
|
||||
- [#2536] AS3 switches detection incorrectly replaces basic ifs with strict equals
|
||||
@@ -4023,6 +4026,7 @@ Major version of SWF to XML export changed to 2.
|
||||
[alpha 9]: https://github.com/jindrapetrik/jpexs-decompiler/compare/alpha8...alpha9
|
||||
[alpha 8]: https://github.com/jindrapetrik/jpexs-decompiler/compare/alpha7...alpha8
|
||||
[alpha 7]: https://github.com/jindrapetrik/jpexs-decompiler/releases/tag/alpha7
|
||||
[#2556]: https://www.free-decompiler.com/flash/issues/2556
|
||||
[#2536]: https://www.free-decompiler.com/flash/issues/2536
|
||||
[#2537]: https://www.free-decompiler.com/flash/issues/2537
|
||||
[#2540]: https://www.free-decompiler.com/flash/issues/2540
|
||||
|
||||
49
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim.html
vendored
Normal file
49
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim.html
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<title>subsprite_anim</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<style type="text/css" media="screen">
|
||||
html, body { height:100%; background-color: #ffffff;}
|
||||
body { margin:0; padding:0; overflow:hidden; }
|
||||
#flashContent { width:100%; height:100%; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="flashContent">
|
||||
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="subsprite_anim" align="middle">
|
||||
<param name="movie" value="subsprite_anim.swf" />
|
||||
<param name="quality" value="high" />
|
||||
<param name="bgcolor" value="#ffffff" />
|
||||
<param name="play" value="true" />
|
||||
<param name="loop" value="true" />
|
||||
<param name="wmode" value="window" />
|
||||
<param name="scale" value="showall" />
|
||||
<param name="menu" value="true" />
|
||||
<param name="devicefont" value="false" />
|
||||
<param name="salign" value="" />
|
||||
<param name="allowScriptAccess" value="sameDomain" />
|
||||
<!--[if !IE]>-->
|
||||
<object type="application/x-shockwave-flash" data="subsprite_anim.swf" width="550" height="400">
|
||||
<param name="movie" value="subsprite_anim.swf" />
|
||||
<param name="quality" value="high" />
|
||||
<param name="bgcolor" value="#ffffff" />
|
||||
<param name="play" value="true" />
|
||||
<param name="loop" value="true" />
|
||||
<param name="wmode" value="window" />
|
||||
<param name="scale" value="showall" />
|
||||
<param name="menu" value="true" />
|
||||
<param name="devicefont" value="false" />
|
||||
<param name="salign" value="" />
|
||||
<param name="allowScriptAccess" value="sameDomain" />
|
||||
<!--<![endif]-->
|
||||
<a href="http://www.adobe.com/go/getflash">
|
||||
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
|
||||
</a>
|
||||
<!--[if !IE]>-->
|
||||
</object>
|
||||
<!--<![endif]-->
|
||||
</object>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
BIN
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim.swf
vendored
Normal file
BIN
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim.swf
vendored
Normal file
Binary file not shown.
33
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/DOMDocument.xml
vendored
Normal file
33
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/DOMDocument.xml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
<DOMDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ns.adobe.com/xfl/2008/" currentTimeline="1" xflVersion="2.2" creatorInfo="Adobe Flash Professional CS6" platform="Windows" versionInfo="Saved by Adobe Flash Windows 12.0 build 481" majorVersion="12" buildNumber="481" nextSceneIdentifier="2" playOptionsPlayLoop="false" playOptionsPlayPages="false" playOptionsPlayFrameActions="false">
|
||||
<symbols>
|
||||
<Include href="Circle.xml" loadImmediate="false" itemID="69107181-000001da" lastModified="1762685391"/>
|
||||
<Include href="Square.xml" loadImmediate="false" itemID="6910715a-000001d5" lastModified="1762685274"/>
|
||||
<Include href="Symbol 1.xml" loadImmediate="false" itemID="691071b7-000001de" lastModified="1762685367"/>
|
||||
<Include href="Tween 1.xml" itemIcon="1" loadImmediate="false" itemID="691071cf-000001e4" lastModified="1762685391"/>
|
||||
<Include href="Tween 2.xml" itemIcon="1" loadImmediate="false" itemID="691071cf-000001e6" lastModified="1762685391"/>
|
||||
</symbols>
|
||||
<timelines>
|
||||
<DOMTimeline name="Scene 1" currentFrame="31">
|
||||
<layers>
|
||||
<DOMLayer name="Layer 1" color="#4FFF4F" current="true" isSelected="true">
|
||||
<frames>
|
||||
<DOMFrame index="0" duration="60" keyMode="9728">
|
||||
<elements>
|
||||
<DOMSymbolInstance libraryItemName="Symbol 1" centerPoint3DX="242.2" centerPoint3DY="156.75">
|
||||
<matrix>
|
||||
<Matrix tx="133" ty="89"/>
|
||||
</matrix>
|
||||
<transformationPoint>
|
||||
<Point x="109.2" y="67.75"/>
|
||||
</transformationPoint>
|
||||
</DOMSymbolInstance>
|
||||
</elements>
|
||||
</DOMFrame>
|
||||
</frames>
|
||||
</DOMLayer>
|
||||
</layers>
|
||||
</DOMTimeline>
|
||||
</timelines>
|
||||
<PrinterSettings/>
|
||||
<publishHistory/>
|
||||
</DOMDocument>
|
||||
36
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Circle.xml
vendored
Normal file
36
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Circle.xml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
<DOMSymbolItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ns.adobe.com/xfl/2008/" name="Circle" itemID="69107181-000001da" lastModified="1762685391">
|
||||
<timeline>
|
||||
<DOMTimeline name="Circle" currentFrame="29">
|
||||
<layers>
|
||||
<DOMLayer name="Layer 1" color="#4FFF4F" current="true" isSelected="true">
|
||||
<frames>
|
||||
<DOMFrame index="0" duration="29" tweenType="motion" motionTweenSnap="true" keyMode="22017">
|
||||
<elements>
|
||||
<DOMSymbolInstance libraryItemName="Tween 1" selected="true" symbolType="graphic" loop="loop">
|
||||
<matrix>
|
||||
<Matrix tx="41.25" ty="41.25"/>
|
||||
</matrix>
|
||||
<transformationPoint>
|
||||
<Point/>
|
||||
</transformationPoint>
|
||||
</DOMSymbolInstance>
|
||||
</elements>
|
||||
</DOMFrame>
|
||||
<DOMFrame index="29" keyMode="9728">
|
||||
<elements>
|
||||
<DOMSymbolInstance libraryItemName="Tween 2" symbolType="graphic" loop="loop">
|
||||
<matrix>
|
||||
<Matrix tx="-106.7" ty="118.25"/>
|
||||
</matrix>
|
||||
<transformationPoint>
|
||||
<Point/>
|
||||
</transformationPoint>
|
||||
</DOMSymbolInstance>
|
||||
</elements>
|
||||
</DOMFrame>
|
||||
</frames>
|
||||
</DOMLayer>
|
||||
</layers>
|
||||
</DOMTimeline>
|
||||
</timeline>
|
||||
</DOMSymbolItem>
|
||||
35
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Square.xml
vendored
Normal file
35
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Square.xml
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
<DOMSymbolItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ns.adobe.com/xfl/2008/" name="Square" itemID="6910715a-000001d5" lastModified="1762685274">
|
||||
<timeline>
|
||||
<DOMTimeline name="Square">
|
||||
<layers>
|
||||
<DOMLayer name="Layer 1" color="#4FFF4F" current="true" isSelected="true">
|
||||
<frames>
|
||||
<DOMFrame index="0" keyMode="9728">
|
||||
<elements>
|
||||
<DOMShape>
|
||||
<fills>
|
||||
<FillStyle index="1">
|
||||
<SolidColor color="#00FF00" alpha="0.498039215686275"/>
|
||||
</FillStyle>
|
||||
</fills>
|
||||
<strokes>
|
||||
<StrokeStyle index="1">
|
||||
<SolidStroke scaleMode="normal">
|
||||
<fill>
|
||||
<SolidColor/>
|
||||
</fill>
|
||||
</SolidStroke>
|
||||
</StrokeStyle>
|
||||
</strokes>
|
||||
<edges>
|
||||
<Edge fillStyle1="1" strokeStyle="1" edges="!1649 1649S6|0 1649!0 1649|0 0!0 0|1649 0!1649 0|1649 1649"/>
|
||||
</edges>
|
||||
</DOMShape>
|
||||
</elements>
|
||||
</DOMFrame>
|
||||
</frames>
|
||||
</DOMLayer>
|
||||
</layers>
|
||||
</DOMTimeline>
|
||||
</timeline>
|
||||
</DOMSymbolItem>
|
||||
29
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Symbol 1.xml
vendored
Normal file
29
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Symbol 1.xml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
<DOMSymbolItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ns.adobe.com/xfl/2008/" name="Symbol 1" itemID="691071b7-000001de" lastModified="1762685367" lastUniqueIdentifier="2">
|
||||
<timeline>
|
||||
<DOMTimeline name="Symbol 1">
|
||||
<layers>
|
||||
<DOMLayer name="Layer 1" color="#4FFF4F" current="true" isSelected="true">
|
||||
<frames>
|
||||
<DOMFrame index="0" keyMode="9728">
|
||||
<elements>
|
||||
<DOMSymbolInstance libraryItemName="Square" centerPoint3DX="41.2" centerPoint3DY="41.2">
|
||||
<transformationPoint>
|
||||
<Point x="41.2" y="41.2"/>
|
||||
</transformationPoint>
|
||||
</DOMSymbolInstance>
|
||||
<DOMSymbolInstance libraryItemName="Circle" centerPoint3DX="177.2" centerPoint3DY="94.25">
|
||||
<matrix>
|
||||
<Matrix tx="135.95" ty="53"/>
|
||||
</matrix>
|
||||
<transformationPoint>
|
||||
<Point x="41.25" y="41.25"/>
|
||||
</transformationPoint>
|
||||
</DOMSymbolInstance>
|
||||
</elements>
|
||||
</DOMFrame>
|
||||
</frames>
|
||||
</DOMLayer>
|
||||
</layers>
|
||||
</DOMTimeline>
|
||||
</timeline>
|
||||
</DOMSymbolItem>
|
||||
38
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Tween 1.xml
vendored
Normal file
38
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Tween 1.xml
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
<DOMSymbolItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ns.adobe.com/xfl/2008/" name="Tween 1" itemID="691071cf-000001e4" symbolType="graphic" lastModified="1762685391">
|
||||
<timeline>
|
||||
<DOMTimeline name="Tween 1">
|
||||
<layers>
|
||||
<DOMLayer name="Layer 1" color="#4FFF4F" current="true" isSelected="true">
|
||||
<frames>
|
||||
<DOMFrame index="0" keyMode="9728">
|
||||
<elements>
|
||||
<DOMShape selected="true" isFloating="true">
|
||||
<matrix>
|
||||
<Matrix tx="-41.25" ty="-41.25"/>
|
||||
</matrix>
|
||||
<fills>
|
||||
<FillStyle index="1">
|
||||
<SolidColor color="#FF0000"/>
|
||||
</FillStyle>
|
||||
</fills>
|
||||
<strokes>
|
||||
<StrokeStyle index="1">
|
||||
<SolidStroke scaleMode="normal">
|
||||
<fill>
|
||||
<SolidColor/>
|
||||
</fill>
|
||||
</SolidStroke>
|
||||
</StrokeStyle>
|
||||
</strokes>
|
||||
<edges>
|
||||
<Edge fillStyle1="1" strokeStyle="1" edges="!1408 241S6[1650 483 1650 825!1650 825[1650 1167 1408 1408!1408 1408[1167 1650 825 1650!825 1650[483 1650 241 1408!241 1408[0 1167 0 825!0 825[0 483 241 241!241 241[483 0 825 0!825 0[1167 0 1408 241"/>
|
||||
</edges>
|
||||
</DOMShape>
|
||||
</elements>
|
||||
</DOMFrame>
|
||||
</frames>
|
||||
</DOMLayer>
|
||||
</layers>
|
||||
</DOMTimeline>
|
||||
</timeline>
|
||||
</DOMSymbolItem>
|
||||
39
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Tween 2.xml
vendored
Normal file
39
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/LIBRARY/Tween 2.xml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
<DOMSymbolItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ns.adobe.com/xfl/2008/" name="Tween 2" itemID="691071cf-000001e6" symbolType="graphic" lastModified="1762685391">
|
||||
<timeline>
|
||||
<DOMTimeline name="Tween 2">
|
||||
<layers>
|
||||
<DOMLayer name="Layer 1" color="#4FFF4F" current="true" isSelected="true">
|
||||
<frames>
|
||||
<DOMFrame index="0" keyMode="9728">
|
||||
<elements>
|
||||
<DOMShape selected="true" isFloating="true">
|
||||
<matrix>
|
||||
<Matrix tx="106.7" ty="-118.25"/>
|
||||
</matrix>
|
||||
<fills>
|
||||
<FillStyle index="1">
|
||||
<SolidColor color="#FF0000"/>
|
||||
</FillStyle>
|
||||
</fills>
|
||||
<strokes>
|
||||
<StrokeStyle index="1">
|
||||
<SolidStroke scaleMode="normal">
|
||||
<fill>
|
||||
<SolidColor/>
|
||||
</fill>
|
||||
</SolidStroke>
|
||||
</StrokeStyle>
|
||||
</strokes>
|
||||
<edges>
|
||||
<Edge fillStyle1="1" strokeStyle="1" edges="!-2134 1540S6[-1792 1540 -1551 1781!-1551 1781[-1309 2023 -1309 2365!-1309 2365[-1309 2707 -1551 2948!-1551 2948[-1792 3190 -2134 3190!-2134 3190[-2476 3190 -2718 2948!-2718 2948[-2959 2707 -2959 2365!-2959 2365[-2959 2023 -2718 1781
|
||||
!-2718 1781[-2476 1540 -2134 1540"/>
|
||||
</edges>
|
||||
</DOMShape>
|
||||
</elements>
|
||||
</DOMFrame>
|
||||
</frames>
|
||||
</DOMLayer>
|
||||
</layers>
|
||||
</DOMTimeline>
|
||||
</timeline>
|
||||
</DOMSymbolItem>
|
||||
55
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/META-INF/metadata.xml
vendored
Normal file
55
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/META-INF/metadata.xml
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
|
||||
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27 ">
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<rdf:Description rdf:about=""
|
||||
xmlns:xmp="http://ns.adobe.com/xap/1.0/">
|
||||
<xmp:CreatorTool>Adobe Flash Professional CS6 - build 481</xmp:CreatorTool>
|
||||
<xmp:CreateDate>2025-11-09T02:47:30-08:00</xmp:CreateDate>
|
||||
<xmp:MetadataDate>2025-11-09T02:50:37-08:00</xmp:MetadataDate>
|
||||
<xmp:ModifyDate>2025-11-09T02:50:37-08:00</xmp:ModifyDate>
|
||||
</rdf:Description>
|
||||
<rdf:Description rdf:about=""
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<dc:format>application/vnd.adobe.fla</dc:format>
|
||||
</rdf:Description>
|
||||
<rdf:Description rdf:about=""
|
||||
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
|
||||
xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#">
|
||||
<xmpMM:InstanceID>xmp.iid:5B3CCAEC59BDF0118295F1B0A0E387A5</xmpMM:InstanceID>
|
||||
<xmpMM:DocumentID>xmp.did:5B3CCAEC59BDF0118295F1B0A0E387A5</xmpMM:DocumentID>
|
||||
<xmpMM:OriginalDocumentID>xmp.did:5B3CCAEC59BDF0118295F1B0A0E387A5</xmpMM:OriginalDocumentID>
|
||||
<xmpMM:History>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<stEvt:action>created</stEvt:action>
|
||||
<stEvt:instanceID>xmp.iid:5B3CCAEC59BDF0118295F1B0A0E387A5</stEvt:instanceID>
|
||||
<stEvt:when>2025-11-09T02:47:30-08:00</stEvt:when>
|
||||
<stEvt:softwareAgent>Adobe Flash Professional CS6 - build 481</stEvt:softwareAgent>
|
||||
</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpMM:History>
|
||||
</rdf:Description>
|
||||
</rdf:RDF>
|
||||
</x:xmpmeta>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?xpacket end="w"?>
|
||||
0
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/MobileSettings.xml
vendored
Normal file
0
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/MobileSettings.xml
vendored
Normal file
206
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/PublishSettings.xml
vendored
Normal file
206
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/PublishSettings.xml
vendored
Normal file
@@ -0,0 +1,206 @@
|
||||
<flash_profiles>
|
||||
<flash_profile version="1.0" name="Default" current="true">
|
||||
<PublishFormatProperties enabled="true">
|
||||
<defaultNames>1</defaultNames>
|
||||
<flash>1</flash>
|
||||
<projectorWin>0</projectorWin>
|
||||
<projectorMac>0</projectorMac>
|
||||
<html>1</html>
|
||||
<gif>0</gif>
|
||||
<jpeg>0</jpeg>
|
||||
<png>0</png>
|
||||
<qt>0</qt>
|
||||
<rnwk>0</rnwk>
|
||||
<swc>0</swc>
|
||||
<flashDefaultName>1</flashDefaultName>
|
||||
<projectorWinDefaultName>1</projectorWinDefaultName>
|
||||
<projectorMacDefaultName>1</projectorMacDefaultName>
|
||||
<htmlDefaultName>1</htmlDefaultName>
|
||||
<gifDefaultName>1</gifDefaultName>
|
||||
<jpegDefaultName>1</jpegDefaultName>
|
||||
<pngDefaultName>1</pngDefaultName>
|
||||
<qtDefaultName>1</qtDefaultName>
|
||||
<rnwkDefaultName>1</rnwkDefaultName>
|
||||
<swcDefaultName>1</swcDefaultName>
|
||||
<flashFileName>Untitled-1.swf</flashFileName>
|
||||
<projectorWinFileName>Untitled-1.exe</projectorWinFileName>
|
||||
<projectorMacFileName>Untitled-1.app</projectorMacFileName>
|
||||
<htmlFileName>Untitled-1.html</htmlFileName>
|
||||
<gifFileName>Untitled-1.gif</gifFileName>
|
||||
<jpegFileName>Untitled-1.jpg</jpegFileName>
|
||||
<pngFileName>Untitled-1.png</pngFileName>
|
||||
<qtFileName>Untitled-1.mov</qtFileName>
|
||||
<rnwkFileName>Untitled-1.smil</rnwkFileName>
|
||||
<swcFileName>Untitled-1.swc</swcFileName>
|
||||
</PublishFormatProperties>
|
||||
<PublishHtmlProperties enabled="true">
|
||||
<VersionDetectionIfAvailable>0</VersionDetectionIfAvailable>
|
||||
<VersionInfo>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;</VersionInfo>
|
||||
<UsingDefaultContentFilename>1</UsingDefaultContentFilename>
|
||||
<UsingDefaultAlternateFilename>1</UsingDefaultAlternateFilename>
|
||||
<ContentFilename>Untitled-1_content.html</ContentFilename>
|
||||
<AlternateFilename>Untitled-1_alternate.html</AlternateFilename>
|
||||
<UsingOwnAlternateFile>0</UsingOwnAlternateFile>
|
||||
<OwnAlternateFilename></OwnAlternateFilename>
|
||||
<Width>550</Width>
|
||||
<Height>400</Height>
|
||||
<Align>0</Align>
|
||||
<Units>0</Units>
|
||||
<Loop>1</Loop>
|
||||
<StartPaused>0</StartPaused>
|
||||
<Scale>0</Scale>
|
||||
<HorizontalAlignment>1</HorizontalAlignment>
|
||||
<VerticalAlignment>1</VerticalAlignment>
|
||||
<Quality>4</Quality>
|
||||
<DeblockingFilter>0</DeblockingFilter>
|
||||
<WindowMode>0</WindowMode>
|
||||
<DisplayMenu>1</DisplayMenu>
|
||||
<DeviceFont>0</DeviceFont>
|
||||
<TemplateFileName>C:\Users\MyUser\AppData\Local\Adobe\Flash CS6\en_US\Configuration\HTML\Default.html</TemplateFileName>
|
||||
<showTagWarnMsg>1</showTagWarnMsg>
|
||||
</PublishHtmlProperties>
|
||||
<PublishFlashProperties enabled="true">
|
||||
<TopDown></TopDown>
|
||||
<FireFox></FireFox>
|
||||
<Report>0</Report>
|
||||
<Protect>0</Protect>
|
||||
<OmitTraceActions>0</OmitTraceActions>
|
||||
<Quality>80</Quality>
|
||||
<DeblockingFilter>0</DeblockingFilter>
|
||||
<StreamFormat>0</StreamFormat>
|
||||
<StreamCompress>7</StreamCompress>
|
||||
<EventFormat>0</EventFormat>
|
||||
<EventCompress>7</EventCompress>
|
||||
<OverrideSounds>0</OverrideSounds>
|
||||
<Version>15</Version>
|
||||
<ExternalPlayer>FlashPlayer11.2</ExternalPlayer>
|
||||
<ActionScriptVersion>3</ActionScriptVersion>
|
||||
<PackageExportFrame>1</PackageExportFrame>
|
||||
<PackagePaths></PackagePaths>
|
||||
<AS3PackagePaths>.</AS3PackagePaths>
|
||||
<AS3ConfigConst>CONFIG::FLASH_AUTHORING="true";</AS3ConfigConst>
|
||||
<DebuggingPermitted>0</DebuggingPermitted>
|
||||
<DebuggingPassword></DebuggingPassword>
|
||||
<CompressMovie>1</CompressMovie>
|
||||
<CompressionType>0</CompressionType>
|
||||
<InvisibleLayer>1</InvisibleLayer>
|
||||
<DeviceSound>0</DeviceSound>
|
||||
<StreamUse8kSampleRate>0</StreamUse8kSampleRate>
|
||||
<EventUse8kSampleRate>0</EventUse8kSampleRate>
|
||||
<UseNetwork>0</UseNetwork>
|
||||
<DocumentClass></DocumentClass>
|
||||
<AS3Strict>2</AS3Strict>
|
||||
<AS3Coach>4</AS3Coach>
|
||||
<AS3AutoDeclare>4096</AS3AutoDeclare>
|
||||
<AS3Dialect>AS3</AS3Dialect>
|
||||
<AS3ExportFrame>1</AS3ExportFrame>
|
||||
<AS3Optimize>1</AS3Optimize>
|
||||
<ExportSwc>0</ExportSwc>
|
||||
<ScriptStuckDelay>15</ScriptStuckDelay>
|
||||
<IncludeXMP>1</IncludeXMP>
|
||||
<HardwareAcceleration>0</HardwareAcceleration>
|
||||
<AS3Flags>4102</AS3Flags>
|
||||
<DefaultLibraryLinkage>rsl</DefaultLibraryLinkage>
|
||||
<RSLPreloaderMethod>wrap</RSLPreloaderMethod>
|
||||
<RSLPreloaderSWF>$(AppConfig)/ActionScript 3.0/rsls/loader_animation.swf</RSLPreloaderSWF>
|
||||
<LibraryPath>
|
||||
<library-path-entry>
|
||||
<swc-path>$(AppConfig)/ActionScript 3.0/libs</swc-path>
|
||||
<linkage>merge</linkage>
|
||||
</library-path-entry>
|
||||
<library-path-entry>
|
||||
<swc-path>$(AppConfig)/ActionScript 3.0/libs/11.0/textLayout.swc</swc-path>
|
||||
<linkage usesDefault="true">rsl</linkage>
|
||||
<rsl-url>http://fpdownload.adobe.com/pub/swz/tlf/2.0.0.232/textLayout_2.0.0.232.swz</rsl-url>
|
||||
<policy-file-url>http://fpdownload.adobe.com/pub/swz/crossdomain.xml</policy-file-url>
|
||||
<rsl-url>textLayout_2.0.0.232.swz</rsl-url>
|
||||
</library-path-entry>
|
||||
</LibraryPath>
|
||||
<LibraryVersions>
|
||||
<library-version>
|
||||
<swc-path>$(AppConfig)/ActionScript 3.0/libs/11.0/textLayout.swc</swc-path>
|
||||
<feature name="tlfText" majorVersion="2" minorVersion="0" build="232"/>
|
||||
<rsl-url>http://fpdownload.adobe.com/pub/swz/tlf/2.0.0.232/textLayout_2.0.0.232.swz</rsl-url>
|
||||
<policy-file-url>http://fpdownload.adobe.com/pub/swz/crossdomain.xml</policy-file-url>
|
||||
<rsl-url>textLayout_2.0.0.232.swz</rsl-url>
|
||||
</library-version>
|
||||
</LibraryVersions>
|
||||
</PublishFlashProperties>
|
||||
<PublishJpegProperties enabled="true">
|
||||
<Width>550</Width>
|
||||
<Height>400</Height>
|
||||
<Progressive>0</Progressive>
|
||||
<DPI>4718592</DPI>
|
||||
<Size>0</Size>
|
||||
<Quality>80</Quality>
|
||||
<MatchMovieDim>1</MatchMovieDim>
|
||||
</PublishJpegProperties>
|
||||
<PublishRNWKProperties enabled="true">
|
||||
<exportFlash>1</exportFlash>
|
||||
<flashBitRate>0</flashBitRate>
|
||||
<exportAudio>1</exportAudio>
|
||||
<audioFormat>0</audioFormat>
|
||||
<singleRateAudio>0</singleRateAudio>
|
||||
<realVideoRate>100000</realVideoRate>
|
||||
<speed28K>1</speed28K>
|
||||
<speed56K>1</speed56K>
|
||||
<speedSingleISDN>0</speedSingleISDN>
|
||||
<speedDualISDN>0</speedDualISDN>
|
||||
<speedCorporateLAN>0</speedCorporateLAN>
|
||||
<speed256K>0</speed256K>
|
||||
<speed384K>0</speed384K>
|
||||
<speed512K>0</speed512K>
|
||||
<exportSMIL>1</exportSMIL>
|
||||
</PublishRNWKProperties>
|
||||
<PublishGifProperties enabled="true">
|
||||
<Width>550</Width>
|
||||
<Height>400</Height>
|
||||
<Animated>0</Animated>
|
||||
<MatchMovieDim>1</MatchMovieDim>
|
||||
<Loop>1</Loop>
|
||||
<LoopCount></LoopCount>
|
||||
<OptimizeColors>1</OptimizeColors>
|
||||
<Interlace>0</Interlace>
|
||||
<Smooth>1</Smooth>
|
||||
<DitherSolids>0</DitherSolids>
|
||||
<RemoveGradients>0</RemoveGradients>
|
||||
<TransparentOption></TransparentOption>
|
||||
<TransparentAlpha>128</TransparentAlpha>
|
||||
<DitherOption></DitherOption>
|
||||
<PaletteOption></PaletteOption>
|
||||
<MaxColors>255</MaxColors>
|
||||
<PaletteName></PaletteName>
|
||||
</PublishGifProperties>
|
||||
<PublishPNGProperties enabled="true">
|
||||
<Width>550</Width>
|
||||
<Height>400</Height>
|
||||
<OptimizeColors>1</OptimizeColors>
|
||||
<Interlace>0</Interlace>
|
||||
<Transparent>0</Transparent>
|
||||
<Smooth>1</Smooth>
|
||||
<DitherSolids>0</DitherSolids>
|
||||
<RemoveGradients>0</RemoveGradients>
|
||||
<MatchMovieDim>1</MatchMovieDim>
|
||||
<DitherOption></DitherOption>
|
||||
<FilterOption></FilterOption>
|
||||
<PaletteOption></PaletteOption>
|
||||
<BitDepth>24-bit with Alpha</BitDepth>
|
||||
<MaxColors>255</MaxColors>
|
||||
<PaletteName></PaletteName>
|
||||
</PublishPNGProperties>
|
||||
<PublishQTProperties enabled="true">
|
||||
<Width>550</Width>
|
||||
<Height>400</Height>
|
||||
<MatchMovieDim>1</MatchMovieDim>
|
||||
<UseQTSoundCompression>0</UseQTSoundCompression>
|
||||
<AlphaOption></AlphaOption>
|
||||
<LayerOption></LayerOption>
|
||||
<QTSndSettings>00000000</QTSndSettings>
|
||||
<ControllerOption>0</ControllerOption>
|
||||
<Looping>0</Looping>
|
||||
<PausedAtStart>0</PausedAtStart>
|
||||
<PlayEveryFrame>0</PlayEveryFrame>
|
||||
<Flatten>1</Flatten>
|
||||
</PublishQTProperties>
|
||||
</flash_profile>
|
||||
</flash_profiles>
|
||||
BIN
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/bin/SymDepend.cache
vendored
Normal file
BIN
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/bin/SymDepend.cache
vendored
Normal file
Binary file not shown.
1
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/subsprite_anim.xfl
vendored
Normal file
1
libsrc/ffdec_lib/testdata/subsprite_anim/subsprite_anim/subsprite_anim.xfl
vendored
Normal file
@@ -0,0 +1 @@
|
||||
PROXY-CS5
|
||||
@@ -517,6 +517,7 @@ public class CommandLineArgumentParser {
|
||||
List<String> selectionClasses = null;
|
||||
String nextParam = null;
|
||||
String nextParamOriginal = null;
|
||||
int subLength = 1;
|
||||
OUTER:
|
||||
while (true) {
|
||||
nextParamOriginal = args.pop();
|
||||
@@ -534,14 +535,17 @@ public class CommandLineArgumentParser {
|
||||
cliMode = true;
|
||||
break;
|
||||
case "-selectid":
|
||||
selectionIds = parseSelect(args);
|
||||
selectionIds = parseSelect(args, false, "selectid");
|
||||
break;
|
||||
case "-select":
|
||||
selection = parseSelect(args);
|
||||
selection = parseSelect(args, true, "select");
|
||||
break;
|
||||
case "-selectclass":
|
||||
selectionClasses = parseSelectClass(args);
|
||||
break;
|
||||
case "-sublength":
|
||||
subLength = parseSubLength(args);
|
||||
break;
|
||||
case "-exportembed":
|
||||
exportEmbed = true;
|
||||
break;
|
||||
@@ -677,7 +681,7 @@ public class CommandLineArgumentParser {
|
||||
} else if (command.equals("proxy")) {
|
||||
parseProxy(args);
|
||||
} else if (command.equals("export")) {
|
||||
parseExport(selectionClasses, selection, selectionIds, args, handler, traceLevel, format, zoom, charset, exportEmbed, resampleWav, transparentBackground, urlResolver);
|
||||
parseExport(selectionClasses, selection, selectionIds, args, handler, traceLevel, format, zoom, charset, exportEmbed, resampleWav, transparentBackground, urlResolver, subLength);
|
||||
System.exit(0);
|
||||
} else if (command.equals("compress")) {
|
||||
parseCompress(args);
|
||||
@@ -1584,16 +1588,29 @@ public class CommandLineArgumentParser {
|
||||
|
||||
private static class Range {
|
||||
|
||||
public Integer prefix;
|
||||
|
||||
public Integer min;
|
||||
|
||||
public Integer max;
|
||||
|
||||
public Range(Integer min, Integer max) {
|
||||
public Range(Integer prefix, Integer min, Integer max) {
|
||||
this.prefix = prefix;
|
||||
this.min = min;
|
||||
this.max = max;
|
||||
}
|
||||
|
||||
public boolean contains(int index) {
|
||||
return contains(0, index);
|
||||
}
|
||||
|
||||
public boolean contains(int prefix, int index) {
|
||||
if (this.prefix == null && prefix == 0) {
|
||||
return false;
|
||||
}
|
||||
if (this.prefix != null && this.prefix != prefix) {
|
||||
return false;
|
||||
}
|
||||
int minimum = min == null ? Integer.MIN_VALUE : min;
|
||||
int maximum = max == null ? Integer.MAX_VALUE : max;
|
||||
|
||||
@@ -1607,7 +1624,7 @@ public class CommandLineArgumentParser {
|
||||
|
||||
public Selection() {
|
||||
this.ranges = new ArrayList<>();
|
||||
this.ranges.add(new Range(null, null));
|
||||
this.ranges.add(new Range(0, null, null));
|
||||
}
|
||||
|
||||
public Selection(List<Range> ranges) {
|
||||
@@ -1615,36 +1632,76 @@ public class CommandLineArgumentParser {
|
||||
}
|
||||
|
||||
public boolean contains(int index) {
|
||||
return contains(0, index);
|
||||
}
|
||||
|
||||
public boolean contains(int prefix, int index) {
|
||||
boolean prefixFound = false;
|
||||
for (Range r : ranges) {
|
||||
if (r.contains(index)) {
|
||||
if (r.prefix == prefix || (prefix != 0 && r.prefix == null)) {
|
||||
prefixFound = true;
|
||||
}
|
||||
if (r.contains(prefix, index)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!prefixFound) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static Selection parseSelect(Stack<String> args) {
|
||||
private static Selection parseSelect(Stack<String> args, boolean allowPrefix, String command) {
|
||||
List<Range> ret = new ArrayList<>();
|
||||
if (args.isEmpty()) {
|
||||
System.err.println("range parameter expected");
|
||||
badArguments("select");
|
||||
badArguments(command);
|
||||
}
|
||||
String range = args.pop();
|
||||
String[] ranges;
|
||||
if (range.contains(",")) {
|
||||
ranges = range.split(",");
|
||||
ranges = range.split(",", -1);
|
||||
} else {
|
||||
ranges = new String[]{range};
|
||||
}
|
||||
|
||||
Integer prefix = 0;
|
||||
|
||||
for (String r : ranges) {
|
||||
Integer min = null;
|
||||
Integer max = null;
|
||||
if (r.contains("-")) {
|
||||
String[] ps = r.split("\\-");
|
||||
if (r.contains(":")) {
|
||||
if (!allowPrefix) {
|
||||
System.err.println("invalid range");
|
||||
badArguments(command);
|
||||
}
|
||||
String[] ps = r.split(":", -1);
|
||||
if (ps.length != 2) {
|
||||
System.err.println("invalid range");
|
||||
badArguments("select");
|
||||
badArguments(command);
|
||||
}
|
||||
if ("all".equals(ps[0])) {
|
||||
prefix = null;
|
||||
} else {
|
||||
try {
|
||||
prefix = Integer.parseInt(ps[0]);
|
||||
} catch (NumberFormatException nfe) {
|
||||
System.err.println("invalid range");
|
||||
badArguments(command);
|
||||
}
|
||||
if (prefix < 0) {
|
||||
System.err.println("invalid range");
|
||||
badArguments(command);
|
||||
}
|
||||
}
|
||||
r = ps[1];
|
||||
}
|
||||
if (r.contains("-")) {
|
||||
String[] ps = r.split("\\-", -1);
|
||||
if (ps.length != 2) {
|
||||
System.err.println("invalid range");
|
||||
badArguments(command);
|
||||
}
|
||||
try {
|
||||
if (!"".equals(ps[0])) {
|
||||
@@ -1655,7 +1712,7 @@ public class CommandLineArgumentParser {
|
||||
}
|
||||
} catch (NumberFormatException nfe) {
|
||||
System.err.println("invalid range");
|
||||
badArguments("select");
|
||||
badArguments(command);
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
@@ -1663,13 +1720,33 @@ public class CommandLineArgumentParser {
|
||||
max = min;
|
||||
} catch (NumberFormatException nfe) {
|
||||
System.err.println("invalid range");
|
||||
badArguments("select");
|
||||
badArguments(command);
|
||||
}
|
||||
}
|
||||
ret.add(new Range(min, max));
|
||||
ret.add(new Range(prefix, min, max));
|
||||
}
|
||||
return new Selection(ret);
|
||||
}
|
||||
|
||||
private static int parseSubLength(Stack<String> args) {
|
||||
if (args.isEmpty()) {
|
||||
System.err.println("sub length parameter expected");
|
||||
badArguments("sublength");
|
||||
}
|
||||
try {
|
||||
int subLen = Integer.parseInt(args.pop());
|
||||
if (subLen < 1) {
|
||||
System.err.println("Minimum for sub length is 1");
|
||||
badArguments("sublength");
|
||||
subLen = 1;
|
||||
}
|
||||
return subLen;
|
||||
} catch (NumberFormatException nre) {
|
||||
System.err.println("Invalid sub length");
|
||||
badArguments("sublength");
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
private static double parseZoom(Stack<String> args) {
|
||||
if (args.isEmpty()) {
|
||||
@@ -2033,7 +2110,21 @@ public class CommandLineArgumentParser {
|
||||
|
||||
}
|
||||
|
||||
private static void parseExport(List<String> selectionClasses, Selection selection, Selection selectionIds, Stack<String> args, AbortRetryIgnoreHandler handler, Level traceLevel, Map<String, String> formats, double zoom, String charset, boolean exportEmbed, boolean resampleWav, boolean transparentBackground, UrlResolver urlResolver) {
|
||||
private static void parseExport(
|
||||
List<String> selectionClasses,
|
||||
Selection selection,
|
||||
Selection selectionIds,
|
||||
Stack<String> args,
|
||||
AbortRetryIgnoreHandler handler,
|
||||
Level traceLevel,
|
||||
Map<String, String> formats,
|
||||
double zoom,
|
||||
String charset,
|
||||
boolean exportEmbed,
|
||||
boolean resampleWav,
|
||||
boolean transparentBackground,
|
||||
UrlResolver urlResolver,
|
||||
int subFrameLength) {
|
||||
if (args.size() < 3) {
|
||||
badArguments("export");
|
||||
}
|
||||
@@ -2258,20 +2349,27 @@ public class CommandLineArgumentParser {
|
||||
System.out.println("Exporting frames...");
|
||||
List<Integer> frames = new ArrayList<>();
|
||||
for (int i = 0; i < swf.frameCount; i++) {
|
||||
if (selection.contains(i + 1)) {
|
||||
if (selection.contains(0, i + 1)) {
|
||||
frames.add(i);
|
||||
}
|
||||
}
|
||||
FrameExportSettings fes = new FrameExportSettings(enumFromStr(formats.get("frame"), FrameExportMode.class), zoom, transparentBackground);
|
||||
frameExporter.exportFrames(handler, outDir + (multipleExportTypes ? File.separator + FrameExportSettings.EXPORT_FOLDER_NAME : ""), swf, 0, frames, 1, fes, evl);
|
||||
frameExporter.exportFrames(handler, outDir + (multipleExportTypes ? File.separator + FrameExportSettings.EXPORT_FOLDER_NAME : ""), swf, 0, frames, subFrameLength, fes, evl);
|
||||
}
|
||||
|
||||
if (exportAll || exportFormats.contains("sprite")) {
|
||||
System.out.println("Exporting sprite...");
|
||||
SpriteExportSettings ses = new SpriteExportSettings(enumFromStr(formats.get("sprite"), SpriteExportMode.class), zoom);
|
||||
for (Tag t : extags) {
|
||||
if (t instanceof DefineSpriteTag) {
|
||||
frameExporter.exportSpriteFrames(handler, outDir + (multipleExportTypes ? File.separator + SpriteExportSettings.EXPORT_FOLDER_NAME : ""), swf, ((DefineSpriteTag) t).getCharacterId(), null, 1, ses, evl);
|
||||
if (t instanceof DefineSpriteTag) {
|
||||
List<Integer> frames = new ArrayList<>();
|
||||
int spriteId = ((DefineSpriteTag) t).getCharacterId();
|
||||
for (int i = 0; i < ((DefineSpriteTag) t).getFrameCount(); i++) {
|
||||
if (selection.contains(spriteId, i + 1)) {
|
||||
frames.add(i);
|
||||
}
|
||||
}
|
||||
frameExporter.exportSpriteFrames(handler, outDir + (multipleExportTypes ? File.separator + SpriteExportSettings.EXPORT_FOLDER_NAME : ""), swf, spriteId, frames, subFrameLength, ses, evl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -378,15 +378,30 @@ Pre-options:
|
||||
-select <ranges>
|
||||
Applies to: -export
|
||||
Select frames/pages for export.
|
||||
Comma separated ranges in format <min>-<max> (<max> is optional) or <num>.
|
||||
If it has prefix "<characterId>:" then all following ranges apply
|
||||
to the character with specific id.
|
||||
Use "all" as characterId to apply for every character.
|
||||
Use "0" (default) as characterId to apply for main timeline.
|
||||
Example <ranges> formats:
|
||||
1-5
|
||||
2,3
|
||||
2-5,7,9-
|
||||
DO NOT PUT space between comma (,) and next ramge.
|
||||
1-5 ... exports frames 1,2,3,4,5
|
||||
2,3 ... exports frames 2 and 3
|
||||
2-5,7,9- ... exports frames 2,3,4,5,7,9 and all after
|
||||
57:5-10,12,62:5 ... exports frames 5,6,7,8,9,10,12
|
||||
of character 57 and frame 5 of character 62
|
||||
all:12-29 ... exports frames 12 to 29 of all characters
|
||||
12:3,4,0:1-12 ... exports frames 3 and 4 of character 12
|
||||
and first 12 frames of main timeline
|
||||
DO NOT PUT space between comma (,) and next range.
|
||||
|
||||
-selectid <ranges>
|
||||
-selectid <charRanges>
|
||||
Applies to: -export
|
||||
Select characters for export by character id.
|
||||
<ranges> format is same as in -select
|
||||
Comma separated ranges in format <min>-<max> (<max> is optional) or <characterId>.
|
||||
Example <charRanges> formats:
|
||||
1-5 ... exports characters 1,2,3,4,5
|
||||
2,3 ... exports characters 2 and 3
|
||||
2-5,7,9- ... exports characters 2,3,4,5,7,9 and all ids after
|
||||
|
||||
-selectclass <classnames>
|
||||
Applies to: -export
|
||||
@@ -398,6 +413,11 @@ Pre-options:
|
||||
subpackages, class net.company.MyClass)
|
||||
DO NOT PUT space between comma (,) and next class.
|
||||
|
||||
-sublength <length>
|
||||
Applies to: -export
|
||||
Export subsprite animation of length <length>.
|
||||
<length> is measured in number of subframes. Must be >= 1.
|
||||
|
||||
-exportembed
|
||||
Applies to: -export
|
||||
Allow exporting embedded assets via [Embed tag].
|
||||
|
||||
Reference in New Issue
Block a user