Esempio n. 1
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);

            characterId = binaryReader.ReadUInt16();
            rect        = new Rect();
            rect.ReadData(binaryReader);

            BitArray ba = BitParser.GetBitValues(new byte[1] {
                binaryReader.ReadByte()
            });

            bool hasText = ba.Get(0);         //binaryReader.ReadBoolean();

            wordWrap  = ba.Get(1);            //binaryReader.ReadBoolean();
            multiline = ba.Get(2);            //binaryReader.ReadBoolean();
            password  = ba.Get(3);            //binaryReader.ReadBoolean();
            readOnly  = ba.Get(4);            //binaryReader.ReadBoolean();
            bool hasTextColor = ba.Get(5);    //binaryReader.ReadBoolean();
            bool hasMaxLength = ba.Get(6);    //binaryReader.ReadBoolean();
            bool hasFont      = ba.Get(7);    //binaryReader.ReadBoolean();

            //binaryReader.SynchBits();

            ba = BitParser.GetBitValues(new byte[1] {
                binaryReader.ReadByte()
            });
            //binaryReader.ReadBoolean(); //Reserved
            autoSize = ba.Get(1);         //binaryReader.ReadBoolean();
            bool hasLayout = ba.Get(2);   //binaryReader.ReadBoolean();

            noSelect = ba.Get(3);         //binaryReader.ReadBoolean();
            border   = ba.Get(4);         //binaryReader.ReadBoolean();
            //binaryReader.ReadBoolean(); //Reserved
            html         = ba.Get(6);     //binaryReader.ReadBoolean();
            usedOutlines = ba.Get(7);     //binaryReader.ReadBoolean();

            if (hasFont)
            {
                fontId     = binaryReader.ReadUInt16();
                fontHeight = binaryReader.ReadUInt16();
            }

            if (hasTextColor)
            {
                textColor = new RGBA();
                textColor.ReadData(binaryReader);
            }

            if (hasMaxLength)
            {
                maxLenght = binaryReader.ReadUInt16();
            }

            if (hasLayout)
            {
                align       = binaryReader.ReadByte();
                leftMargin  = binaryReader.ReadUInt16();
                rightMargin = binaryReader.ReadUInt16();
                indent      = binaryReader.ReadUInt16();
                leading     = binaryReader.ReadUInt16();
            }

            variableName = binaryReader.ReadString();
            if (hasText)
            {
                initialText = binaryReader.ReadString();
            }
        }