/// <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); } }
/// <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); } }
/// <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(); }
/// <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); }
/// <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); }
/// <summary> /// Get the index of. /// </summary> /// <param name="value">Value.</param> /// <returns></returns> public int IndexOf(ButtonRecord value) { return List.IndexOf(value); }
/// <summary> /// Containses the specified value. /// </summary> /// <param name="value">Value.</param> /// <returns></returns> public bool Contains(ButtonRecord value) { return List.Contains(value as object); }
/// <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); }
/// <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; }
/// <summary> /// Get the index of. /// </summary> /// <param name="value">Value.</param> /// <returns></returns> public int IndexOf(ButtonRecord value) { return(List.IndexOf(value)); }
/// <summary> /// Containses the specified value. /// </summary> /// <param name="value">Value.</param> /// <returns></returns> public bool Contains(ButtonRecord value) { return(List.Contains(value as object)); }
/// <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); }