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);
        }
示例#2
0
        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);
        }
示例#3
0
 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");
 }