コード例 #1
0
        /// <summary>
        /// Adds the range.
        /// </summary>
        /// <param name="values">The values.</param>
        public void AddRange(BaseTagCollection values)
        {
            IEnumerator enums = values.GetEnumerator();

            while (enums.MoveNext())
            {
                Add((BaseTag)enums.Current);
            }
        }
コード例 #2
0
ファイル: DefineSpriteTag.cs プロジェクト: Berenold/SwfExport
        /// <summary>
        /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see>
        /// </summary>
        public override void UpdateData(byte version)
        {
            if (version < 3)
            {
                return;
            }

            // update inner tags
            int len = 0;

            IEnumerator tags = tagList.GetEnumerator();

            while (tags.MoveNext())
            {
                BaseTag tag = (BaseTag)tags.Current;
                tag.UpdateData(version);
                len += tag.Data.Length;
            }

            MemoryStream         m = new MemoryStream();
            BufferedBinaryWriter w = new BufferedBinaryWriter(m);

            RecordHeader rh = new RecordHeader(TagCode, len + 4);

            rh.WriteTo(w);
            w.Write(spriteId);
            w.Write(frameCount);

            tags = tagList.GetEnumerator();
            while (tags.MoveNext())
            {
                BaseTag tag = (BaseTag)tags.Current;
                w.Write(tag.Data);
            }

            w.Flush();
            // update data
            _data = m.ToArray();
        }
コード例 #3
0
ファイル: Swf.cs プロジェクト: foresightbrand/brandqq
        /// <summary>
        /// Injects a range of tags in the current Swf.
        /// </summary>
        /// <param name="values">The values.</param>
        public void InjectTags(BaseTagCollection values)
        {
            IEnumerator enums = values.GetEnumerator();

            for (int i = 0; enums.MoveNext(); i++)
            {
                BaseTag baseTag = (BaseTag)enums.Current;
                Add(baseTag);
            }
        }
コード例 #4
0
 /// <summary>
 /// Adds the range.
 /// </summary>
 /// <param name="values">The values.</param>
 public void AddRange(BaseTagCollection values)
 {
     IEnumerator enums = values.GetEnumerator();
     while (enums.MoveNext())
         Add((BaseTag)enums.Current);
 }
コード例 #5
0
ファイル: SwfReader.cs プロジェクト: foresightbrand/brandqq
        /// <summary>
        /// Read and parse VideoFrameTag, into inner tags and raw byte-array header data
        /// </summary>
        private static VideoFrameTag ReadVideoFrameTag(BufferedBinaryReader binaryReader, BaseTagCollection tagList)
        {
            VideoFrameTag video = new VideoFrameTag();
            ushort streamId = binaryReader.PeekUInt16();

            IEnumerator tags = tagList.GetEnumerator();
            while (tags.MoveNext())
            {
                BaseTag tag = (BaseTag)tags.Current;
                if (tag is DefineVideoStreamTag)
                {
                    if (((DefineVideoStreamTag)tag).CharacterId == streamId)
                        video.CodecId = ((DefineVideoStreamTag)tag).CodecId;
                }
            }
            return video;
        }