示例#1
0
 public static SwfFile ReadFrom(Stream stream)
 {
     var file = new SwfFile();
     ISwfStreamReader reader = new SwfStreamReader(stream);
     file.FileInfo = reader.ReadSwfFileInfo();
     reader = GetSwfStreamReader(file.FileInfo, stream);
     file.Header = reader.ReadSwfHeader();
     ReadTags(file, reader);
     return file;
 }
示例#2
0
        public static SwfFile ReadFrom(Stream stream)
        {
            var file = new SwfFile();
            ISwfStreamReader reader = new SwfStreamReader(stream);

            file.FileInfo = reader.ReadSwfFileInfo();
            reader        = GetSwfStreamReader(file.FileInfo, stream);
            file.Header   = reader.ReadSwfHeader();
            ReadTags(file, reader);
            return(file);
        }
示例#3
0
 private static void ReadTags(SwfFile file, ISwfStreamReader reader)
 {
     while (!reader.IsEOF)
     {
         var        ser     = new SwfTagDeserializer(file);
         var        tagData = reader.ReadTagData();
         SwfTagBase tag     = ser.ReadTag(tagData);
         if (tag != null)
         {
             file.Tags.Add(tag);
         }
         else
         {
             throw new InvalidOperationException("Tag can't be null. Loss of data possible");
         }
     }
 }
示例#4
0
 public SwfTagSerializer(SwfFile file)
 {
     _file = file;
 }
示例#5
0
 private static void ReadTags(SwfFile file, ISwfStreamReader reader)
 {
     while (!reader.IsEOF) {
         var ser = new SwfTagDeserializer(file);
         var tagData = reader.ReadTagData();
         SwfTagBase tag = ser.ReadTag(tagData);
         if (tag != null) file.Tags.Add(tag);
         else throw new InvalidOperationException("Tag can't be null. Loss of data possible");
     }
 }