protected override bool AcceptTagElement(DefineSceneAndFrameLabelDataTag tag, XElement element) { switch (element.Name.LocalName) { case "scenes": var xScenes = element; foreach (var xScene in xScenes.Elements()) { var scene = new SceneOffsetData { Offset = xScene.RequiredUIntAttribute("offset"), Name = xScene.RequiredStringAttribute("name") }; tag.Scenes.Add(scene); } break; case "frames": var xFrames = element; foreach (var xFrame in xFrames.Elements()) { var frame = new FrameLabelData { FrameNumber = xFrame.RequiredUIntAttribute("number"), Label = xFrame.RequiredStringAttribute("label") }; tag.Frames.Add(frame); } break; default: return(false); } return(true); }
SwfTagBase ISwfTagVisitor <ISwfStreamReader, SwfTagBase> .Visit(DefineSceneAndFrameLabelDataTag tag, ISwfStreamReader reader) { var scenesCount = reader.ReadEncodedU32(); for (var i = 0; i < scenesCount; i++) { var item = new SceneOffsetData { Offset = reader.ReadEncodedU32(), Name = reader.ReadString() }; tag.Scenes.Add(item); } var framesCount = reader.ReadEncodedU32(); for (var i = 0; i < framesCount; i++) { var item = new FrameLabelData { FrameNumber = reader.ReadEncodedU32(), Label = reader.ReadString() }; tag.Frames.Add(item); } return(tag); }
public static void AreEqual(SceneOffsetData expected, SceneOffsetData actual, string message) { Assert.AreEqual(expected.Name, actual.Name, message + ".Name"); Assert.AreEqual(expected.Offset, actual.Offset, message + ".Offset"); }