Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/swf/SWFRoot.hx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import swf.events.SWFProgressEvent;
import openfl.utils.ByteArray;
import openfl.utils.CompressionAlgorithm;
import openfl.errors.Error;
import swf.tags.TagExportAssets;
import swf.tags.TagSymbolClass;

class SWFRoot extends SWFTimelineContainer
Expand Down Expand Up @@ -62,6 +63,13 @@ class SWFRoot extends SWFTimelineContainer
symbols.set(symbol.name, symbol.tagId);
}
}
else if (#if (haxe_ver >= 4.2) Std.isOfType #else Std.is #end (tag, TagExportAssets))
{
for (symbol in cast(tag, TagExportAssets).symbols)
{
symbols.set(symbol.name, symbol.tagId);
}
}
}

#if test_abc
Expand Down
10 changes: 10 additions & 0 deletions src/swf/exporters/AnimateLibraryExporter.hx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import swf.tags.TagDefineShape;
import swf.tags.TagDefineSound;
import swf.tags.TagDefineSprite;
import swf.tags.TagDefineText;
import swf.tags.TagExportAssets;
import swf.tags.TagPlaceObject;
import swf.tags.TagSymbolClass;
import swf.timeline.Frame;
Expand Down Expand Up @@ -89,6 +90,14 @@ class AnimateLibraryExporter
symbolsByTagID.set(symbol.tagId, symbol);
}
}
else if (#if (haxe_ver >= 4.2) Std.isOfType #else Std.is #end (tag, TagExportAssets))
{
for (symbol in cast(tag, TagExportAssets).symbols)
{
symbols.push(symbol);
symbolsByTagID.set(symbol.tagId, symbol);
}
}
}

manifestData = new AssetManifest();
Expand Down Expand Up @@ -179,6 +188,7 @@ class AnimateLibraryExporter
var outputFile = File.write(targetPath, true);
var writer = new ZipWriter(outputFile);
writer.write(outputList);
outputFile.close();
}

private function addButton(tag:IDefinitionTag):Dynamic
Expand Down
17 changes: 16 additions & 1 deletion src/swf/exporters/FrameScriptParser.hx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ class FrameScriptParser

public static function getBaseClassName(swfData:SWFRoot, className:String):String
{
if (swfData == null || swfData.abcData == null)
{
return null;
}

var classData = swfData.abcData.findClassByName(className);
if (classData != null && classData.superclass != null)
{
Expand All @@ -36,6 +41,11 @@ class FrameScriptParser

public static function convertToJS(swfData:SWFRoot, className:String):Array<String>
{
if (swfData == null || swfData.abcData == null)
{
return null;
}

indentationLevel = 0;
var cls = swfData.abcData.findClassByName(className);
var scripts = null;
Expand Down Expand Up @@ -824,7 +834,7 @@ class AVM2

public static function findClassByName(abcData:ABCData, s:String):ClassDef
{
if (s == null) return null;
if (abcData == null || s == null) return null;

var x = s.lastIndexOf(".");
var pkgName = "";
Expand Down Expand Up @@ -858,6 +868,11 @@ class AVM2

public static function classHasField(abcData:ABCData, cls:ClassDef, name:String):Bool
{
if (abcData == null || cls == null || name == null)
{
return false;
}

var classHasField = false;

for (field in cls.fields)
Expand Down
9 changes: 9 additions & 0 deletions src/swf/exporters/SWFLiteExporter.hx
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ import swf.tags.TagDefineScalingGrid;
import swf.tags.TagDefineShape;
import swf.tags.TagDefineSprite;
import swf.tags.TagDefineText;
import swf.tags.TagExportAssets;
import swf.tags.TagPlaceObject;
import swf.tags.TagSymbolClass;
import swf.SWFRoot;
Expand Down Expand Up @@ -102,6 +103,14 @@ class SWFLiteExporter
symbolsByTagID.set(symbol.tagId, symbol);
}
}
else if (#if (haxe_ver >= 4.2) Std.isOfType #else Std.is #end (tag, TagExportAssets))
{
for (symbol in cast(tag, TagExportAssets).symbols)
{
processSymbol(symbol);
symbolsByTagID.set(symbol.tagId, symbol);
}
}
}
}

Expand Down