ButtonRecord class
Inheritance: ISwfSerializer, DefineTargetTag
Esempio n. 1
0
 /// <summary>
 /// Removes the specified value.
 /// </summary>
 /// <param name="value">Value.</param>
 public void Remove(ButtonRecord value)
 {
     if (List.Contains(value))
     {
         List.Remove(value as object);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see>
        /// </summary>
        public override void ReadData(byte version, BufferedBinaryReader binaryReader)
        {
            RecordHeader rh = new RecordHeader();
            rh.ReadData(binaryReader);

            long startPosition = binaryReader.BaseStream.Position;

            buttonId = binaryReader.ReadUInt16();
            binaryReader.ReadUBits(7); //reserved
            trackAsMenu = binaryReader.ReadBoolean();

            long startPos = binaryReader.BaseStream.Position;

            actionOffset = binaryReader.ReadUInt16();

            if (characters == null)
                characters = new ButtonRecordCollection();
            else
                characters.Clear();

            bool characterEndFlag = false;
            while (!characterEndFlag)
            {
                byte first = binaryReader.ReadByte();
                if (first == 0)
                    characterEndFlag = true;
                else
                {
                    ButtonRecord buttRecord = new ButtonRecord();
                    buttRecord.ReadData(binaryReader, first, TagCodeEnum.DefineButton2);
                    characters.Add(buttRecord);
                }
            }

            long curr = startPos + actionOffset;

            actions = new ButtonCondactionCollection();
            bool lastCondAction = false;
            if (actionOffset == 0)
                lastCondAction = true;

            while (!lastCondAction)
            {
                long readedBytes = binaryReader.BaseStream.Position - startPosition;
                ushort condActionSize = binaryReader.ReadUInt16();
                if (condActionSize == 0)
                {
                    lastCondAction = true;
                    condActionSize = (ushort)(rh.TagLength - readedBytes);
                }
                ButtonCondaction buttCond = new ButtonCondaction();
                buttCond.ReadData(binaryReader, condActionSize);
                actions.Add(buttCond);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see>
        /// </summary>
        public override void ReadData(byte version, BufferedBinaryReader binaryReader)
        {
            RecordHeader rh = new RecordHeader();
            rh.ReadData(binaryReader);

            buttonId = binaryReader.ReadUInt16();
            characters = new ButtonRecordCollection();

            bool characterEndFlag = false;
            while (!characterEndFlag)
            {
                byte first = binaryReader.ReadByte();
                if (first == 0)
                    characterEndFlag = true;
                else
                {
                    ButtonRecord buttRecord = new ButtonRecord();
                    buttRecord.ReadData(binaryReader, first, TagCodeEnum.DefineButton);
                    characters.Add(buttRecord);
                }
            }

            int offset = 2;
            foreach (ButtonRecord butRec in characters)
                offset += butRec.GetSizeOf();

            int lenght = System.Convert.ToInt32(rh.TagLength) - offset - 1;
            //-1 for the ActionEndFlag
            actions = binaryReader.ReadBytes(lenght);
            //Read ActionEndFlag
            binaryReader.ReadByte();
        }
Esempio n. 4
0
 /// <summary>
 /// Removes the specified value.
 /// </summary>
 /// <param name="value">Value.</param>
 public void Remove(ButtonRecord value)
 {
     if (List.Contains(value))
         List.Remove(value as object);
 }
Esempio n. 5
0
 /// <summary>
 /// Inserts the specified index.
 /// </summary>
 /// <param name="index">Index.</param>
 /// <param name="value">Value.</param>
 public void Insert(int index, ButtonRecord value)
 {
     List.Insert(index, value as object);
 }
Esempio n. 6
0
 /// <summary>
 /// Get the index of.
 /// </summary>
 /// <param name="value">Value.</param>
 /// <returns></returns>
 public int IndexOf(ButtonRecord value)
 {
     return List.IndexOf(value);
 }
Esempio n. 7
0
 /// <summary>
 /// Containses the specified value.
 /// </summary>
 /// <param name="value">Value.</param>
 /// <returns></returns>
 public bool Contains(ButtonRecord value)
 {
     return List.Contains(value as object);
 }
Esempio n. 8
0
 /// <summary>
 /// Adds the range.
 /// </summary>
 /// <param name="values">Values.</param>
 public void AddRange(ButtonRecord[] values)
 {
     IEnumerator val = values.GetEnumerator();
     while (val.MoveNext())
         Add((ButtonRecord)val.Current);
 }
Esempio n. 9
0
 /// <summary>
 /// Adds the specified value.
 /// </summary>
 /// <param name="value">Value.</param>
 /// <returns></returns>
 public ButtonRecord Add(ButtonRecord value)
 {
     List.Add(value as object);
     return value;
 }
Esempio n. 10
0
 /// <summary>
 /// Get the index of.
 /// </summary>
 /// <param name="value">Value.</param>
 /// <returns></returns>
 public int IndexOf(ButtonRecord value)
 {
     return(List.IndexOf(value));
 }
Esempio n. 11
0
 /// <summary>
 /// Containses the specified value.
 /// </summary>
 /// <param name="value">Value.</param>
 /// <returns></returns>
 public bool Contains(ButtonRecord value)
 {
     return(List.Contains(value as object));
 }
Esempio n. 12
0
 /// <summary>
 /// Inserts the specified index.
 /// </summary>
 /// <param name="index">Index.</param>
 /// <param name="value">Value.</param>
 public void Insert(int index, ButtonRecord value)
 {
     List.Insert(index, value as object);
 }
Esempio n. 13
0
 /// <summary>
 /// Adds the specified value.
 /// </summary>
 /// <param name="value">Value.</param>
 /// <returns></returns>
 public ButtonRecord Add(ButtonRecord value)
 {
     List.Add(value as object);
     return(value);
 }