Ejemplo n.º 1
0
        public SwfFile ReadFromXml(XDocument doc)
        {
            var root = doc.Root;
            var file = new SwfFile();
            SwfFileInfo fileInfo;
            if (root == null || root.Name.LocalName != "swf") {
                throw new FormatException("Expected swf as root");
            }
            fileInfo.Version = root.RequiredByteAttribute("version");
            fileInfo.Format = root.RequiredBoolAttribute("compressed") ? "CWS" : "FWS";
            fileInfo.FileLength = 0;
            file.FileInfo = fileInfo;

            var hdr = root.RequiredElement("Header");
            file.Header.FrameRate = hdr.RequiredDoubleAttribute("framerate");
            file.Header.FrameCount = hdr.RequiredUShortAttribute("frames");
            file.Header.FrameSize = XRect.FromXml(hdr.RequiredElement("size").Element("Rectangle"));

            var formatterFactory = new TagFormatterFactory(fileInfo.Version);
            var tags = hdr.RequiredElement("tags");
            foreach (var xTag in tags.Elements()) {
                var tag = SwfTagNameMapping.CreateTagByXmlName(xTag.Name.LocalName);
                var formatter = formatterFactory.GetFormatter(tag);
                tag = formatter.ParseTo(xTag, tag);
                file.Tags.Add(tag);
            }
            return file;
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Converts to XML.
 /// </summary>
 /// <param name="file">The file.</param>
 /// <returns>Convert SwfFile to xml.</returns>
 public XDocument ConvertToXml(SwfFile file)
 {
     _formatterFactory = new TagFormatterFactory(file.FileInfo.Version);
     var doc = new XDocument(GetRoot(file));
     doc.Declaration = new XDeclaration("1.0", "utf-8", "yes");
     return doc;
 }
Ejemplo n.º 3
0
 static SwfTagNameMapping()
 {
     var formatterFactory = new TagFormatterFactory(10);
     foreach (SwfTagType tagType in Enum.GetValues(typeof(SwfTagType))) {
         var tag = _factory.Create(tagType);
         var formatter = formatterFactory.GetFormatter(tag);
         var tagName = formatter.TagName;
         _tagMap[tagName] = tagType;
     }
 }
Ejemplo n.º 4
0
        private static void ReadTags(DefineSpriteTag tag, XElement tagsElement)
        {
            //TODO: Transfer version here
            var formatterFactory = new TagFormatterFactory(10);

            foreach (var tagElem in tagsElement.Elements())
            {
                var subTag    = SwfTagNameMapping.CreateTagByXmlName(tagElem.Name.LocalName);
                var formatter = formatterFactory.GetFormatter(subTag);
                subTag = formatter.ParseTo(tagElem, subTag);
                tag.Tags.Add(subTag);
            }
        }
Ejemplo n.º 5
0
 public void CreateTest()
 {
     var factory = new TagFormatterFactory(10);
     var tagFactroy = new SwfTagsFactory();
     var vals = Enum.GetValues(typeof(SwfTagType));
     foreach (SwfTagType type in vals) {
         var tag = tagFactroy.Create(type);
         var formatter = factory.GetFormatter(tag);
         Assert.IsNotNull(formatter);
         if (formatter.GetType().Name != tag.GetType().Name + "Formatter") {
             Console.WriteLine("Warning: Incosistent naming, Tag type: {0}, Class: {1}", type,
                               formatter.GetType().Name);
         }
         var formatterType = formatter.GetType();
         Assert.AreEqual(tag.GetType(), formatterType.BaseType.GetGenericArguments()[0]);
     }
 }
Ejemplo n.º 6
0
        public void CreateTest()
        {
            var factory    = new TagFormatterFactory(10);
            var tagFactroy = new SwfTagsFactory();
            var vals       = Enum.GetValues(typeof(SwfTagType));

            foreach (SwfTagType type in vals)
            {
                var tag       = tagFactroy.Create(type);
                var formatter = factory.GetFormatter(tag);
                Assert.IsNotNull(formatter);
                if (formatter.GetType().Name != tag.GetType().Name + "Formatter")
                {
                    Console.WriteLine("Warning: Incosistent naming, Tag type: {0}, Class: {1}", type,
                                      formatter.GetType().Name);
                }
                var formatterType = formatter.GetType();
                Assert.AreEqual(tag.GetType(), formatterType.BaseType.GetGenericArguments()[0]);
            }
        }
Ejemplo n.º 7
0
 public DefineSpriteTagFormatter(ushort version)
 {
     _version             = version;
     _subFormatterFactory = new TagFormatterFactory(version);
 }