Exemple #1
0
        /// <summary>
        /// Parses this object out of a stream
        /// </summary>
        protected override void Parse()
        {
            BinaryReader br = new BinaryReader(this._dataStream);
            BitStream bs = new BitStream(this._dataStream);

            this.ParseFlags(br, bs);

            this._Depth = br.ReadUInt16();

            if (this._PlaceFlagHasClassName)
            {
                this._ClassName = SwfStrings.SwfString(this._SwfVersion, br);
            }

            if (this._PlaceFlagHasCharacter)
            {
                this._CharacterID = br.ReadUInt16();
            }

            if (this._PlaceFlagHasMatrix)
            {
                Matrix m = new Matrix(this._SwfVersion);
                m.Parse(this._dataStream);
                this._TransformMatrix = m;
            }

            if (this._PlaceFlagHasColorTransform)
            {
                CxFormWithAlpha cx = new CxFormWithAlpha(this._SwfVersion);
                cx.Parse(this._dataStream);
                this._CxFormWithAlpha = cx;
            }

            if (this._PlaceFlagHasRatio)
            {
                this._Ratio = br.ReadUInt16();
            }

            if (this._PlaceFlagHasName)
            {
                this._Name = SwfStrings.SwfString(this._SwfVersion, br);
            }

            if (this._PlaceFlagHasClipDepth)
            {
                this._Depth = br.ReadUInt16();
            }

            if (this._PlaceFlagHasFilterList)
            {
                FilterList fl = new FilterList(this._SwfVersion);
                fl.Parse(this._dataStream);
                this._SurfaceFilterList = fl;
            }

            if (this._PlaceFlagHasBlendMode)
            {
                this._BlendMode = (BlendMode)br.ReadByte();
            }

            if (this._PlaceFlagHasCacheAsBitmap)
            {
                this._BitmapCache = br.ReadByte();
            }

            if (this._PlaceFlagHasClipActions)
            {
                ClipActions ca = new ClipActions(this._SwfVersion);
                ca.Parse(this._dataStream);
                this._ClipActions = ca;
            }
        }
Exemple #2
0
        /// <summary>
        /// 
        /// </summary>
        protected void ParsePlaceObject2Data()
        {
            BinaryReader br = new BinaryReader(_dataStream);

            _Depth = br.ReadUInt16();

            if (_PlaceFlagHasCharacter)
            {
                _CharacterID = br.ReadUInt16();
            }

            if (_PlaceFlagHasMatrix)
            {
                base._TransformMatrix = new Matrix(this.Version);
                base._TransformMatrix.Parse(_dataStream);
            }

            if (_PlaceFlagHasColorTransform)
            {
                _CxFormWithAlpha = new CxFormWithAlpha(this.Version);
                _CxFormWithAlpha.Parse(_dataStream);
            }

            if (_PlaceFlagHasRatio)
            {
                _Ratio = br.ReadUInt16();
            }

            if (_PlaceFlagHasName)
            {
                _Name = Helper.SwfStrings.SwfString(this.Version, br);
            }

            if (_PlaceFlagHasClipDepth)
            {
                _ClipDepth = br.ReadUInt16();
            }

            if (_PlaceFlagHasClipActions)
            {
                if (this.Version < 5)
                {
                    throw new SwfFormatException("ClipActions in PlaceObject2 for Swf Version < 5");
                }
                _ClipActions = new ClipActions(this.Version);
                _ClipActions.Parse(_dataStream);
            }
            Log.Debug(this,  this.ToString() );
        }