Skip to content

Commit 7b1119f

Browse files
Added DisplayObject.metaData support for AnimateLibrary (closes #37)
Co-authored-by: twilson90 <twilson90@users.noreply.github.com>
1 parent c194c79 commit 7b1119f

5 files changed

Lines changed: 23 additions & 4 deletions

File tree

src/swf/exporters/AnimateLibraryExporter.hx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,6 +762,11 @@ class AnimateLibraryExporter
762762
frameObject.cacheAsBitmap = placeTag.bitmapCache != 0;
763763
}
764764

765+
if (placeTag.metaData != null)
766+
{
767+
frameObject.metaData = placeTag.metaData;
768+
}
769+
765770
lastModified.set(object.placedAtIndex, object.lastModifiedAtIndex);
766771

767772
if (frame.objects == null)

src/swf/exporters/animate/AnimateFrameObject.hx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class AnimateFrameObject
2323
public var symbol:Int;
2424
public var type:AnimateFrameObjectType;
2525
public var visible:Null<Bool>;
26+
public var metaData:Null<Dynamic>;
2627

2728
public function new() {}
2829
}

src/swf/exporters/animate/AnimateLibrary.hx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -784,6 +784,7 @@ import openfl.filters.GlowFilter;
784784
object.symbol = objectData.symbol;
785785
object.type = objectData.type;
786786
object.visible = objectData.visible;
787+
object.metaData = objectData.metaData;
787788
frame.objects.push(object);
788789
}
789790
}

src/swf/exporters/animate/AnimateTimeline.hx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,13 @@ class AnimateTimeline extends Timeline
516516
displayObject.cacheAsBitmap = frameObject.cacheAsBitmap;
517517
}
518518

519+
#if (openfl >= "9.5.0")
520+
if (frameObject.metaData != null)
521+
{
522+
displayObject.metaData = frameObject.metaData;
523+
}
524+
#end
525+
519526
#if openfljs
520527
Reflect.setField(__sprite, displayObject.name, displayObject);
521528
#end

src/swf/tags/TagPlaceObject4.hx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package swf.tags;
22

3+
import openfl.net.ObjectEncoding;
34
import swf.SWFData;
45
import swf.utils.StringUtils;
56

@@ -29,8 +30,10 @@ class TagPlaceObject4 extends TagPlaceObject3 implements IDisplayListTag
2930
super.parse(data, length, version, async);
3031
if (data.bytesAvailable > 0)
3132
{
32-
// TODO
33-
// metaData = data.readObject();
33+
var oldEncoding = data.objectEncoding;
34+
data.objectEncoding = ObjectEncoding.AMF3;
35+
metaData = data.readObject();
36+
data.objectEncoding = oldEncoding;
3437
}
3538
}
3639

@@ -40,8 +43,10 @@ class TagPlaceObject4 extends TagPlaceObject3 implements IDisplayListTag
4043

4144
if (metaData != null)
4245
{
43-
// TODO
44-
// body.writeObject(metaData);
46+
var oldEncoding = data.objectEncoding;
47+
data.objectEncoding = ObjectEncoding.AMF3;
48+
body.writeObject(metaData);
49+
data.objectEncoding = oldEncoding;
4550
}
4651

4752
data.writeTagHeader(type, body.length);

0 commit comments

Comments
 (0)