Ejemplo n.º 1
0
		public virtual void  showFrame(ShowFrame tag)
		{
		}
Ejemplo n.º 2
0
		public override void  showFrame(ShowFrame tag)
		{
			tags.Add(tag);
		}
Ejemplo n.º 3
0
		private Tag decodeTag(int type, int length)
		{
			Tag t;
			int pos = r.Offset;
			
			switch (type)
			{
				
				case Flash.Swf.TagValues.stagProductInfo: 
					t = decodeSerialNumber();
					break;
				
				case Flash.Swf.TagValues.stagShowFrame: 
					t = new ShowFrame();
					break;
				
				case Flash.Swf.TagValues.stagMetadata: 
					t = decodeMetadata();
					break;
				
				case Flash.Swf.TagValues.stagDefineShape: 
				case Flash.Swf.TagValues.stagDefineShape2: 
				case Flash.Swf.TagValues.stagDefineShape3: 
				case Flash.Swf.TagValues.stagDefineShape6: 
					t = decodeDefineShape(type);
					break;
				
				case Flash.Swf.TagValues.stagPlaceObject: 
					t = decodePlaceObject(length);
					break;
				
				case Flash.Swf.TagValues.stagRemoveObject: 
				case Flash.Swf.TagValues.stagRemoveObject2: 
					t = decodeRemoveObject(type);
					break;
				
				case Flash.Swf.TagValues.stagDefineBinaryData: 
					t = decodeDefineBinaryData(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineBits: 
					t = decodeDefineBits(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineButton: 
					t = decodeDefineButton(length);
					break;
				
				case Flash.Swf.TagValues.stagJPEGTables: 
					t = jpegTables = decodeJPEGTables(length);
					break;
				
				case Flash.Swf.TagValues.stagSetBackgroundColor: 
					t = decodeSetBackgroundColor();
					break;
				
				case Flash.Swf.TagValues.stagDefineFont: 
					t = decodeDefineFont();
					break;
				
				case Flash.Swf.TagValues.stagDefineText: 
				case Flash.Swf.TagValues.stagDefineText2: 
					t = decodeDefineText(type);
					break;
				
				case Flash.Swf.TagValues.stagDoAction: 
					t = decodeDoAction(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineFontInfo: 
				case Flash.Swf.TagValues.stagDefineFontInfo2: 
					t = decodeDefineFontInfo(type, length);
					break;
				
				case Flash.Swf.TagValues.stagDefineSound: 
					t = decodeDefineSound(length);
					break;
				
				case Flash.Swf.TagValues.stagStartSound: 
					t = decodeStartSound();
					break;
				
				case Flash.Swf.TagValues.stagDefineButtonSound: 
					t = decodeDefineButtonSound();
					break;
				
				case Flash.Swf.TagValues.stagSoundStreamHead2: 
				case Flash.Swf.TagValues.stagSoundStreamHead: 
					t = decodeSoundStreamHead(type);
					break;
				
				case Flash.Swf.TagValues.stagSoundStreamBlock: 
					t = decodeSoundStreamBlock(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineBitsLossless: 
					t = decodeDefineBitsLossless(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineBitsJPEG2: 
					t = decodeDefineJPEG2(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineButtonCxform: 
					t = decodeDefineButtonCxform();
					break;
				
				case Flash.Swf.TagValues.stagProtect: 
					t = decodeProtect(length);
					break;
				
				case Flash.Swf.TagValues.stagPlaceObject2: 
					t = decodePlaceObject23(Flash.Swf.TagValues.stagPlaceObject2, length);
					break;
				
				case Flash.Swf.TagValues.stagPlaceObject3: 
					t = decodePlaceObject23(Flash.Swf.TagValues.stagPlaceObject3, length);
					break;
				
				case Flash.Swf.TagValues.stagDefineButton2: 
					t = decodeDefineButton2(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineBitsJPEG3: 
					t = decodeDefineJPEG3(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineBitsLossless2: 
					t = decodeDefineBitsLossless2(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineEditText: 
					t = decodeDefineEditText();
					break;
				
				case Flash.Swf.TagValues.stagDefineSprite: 
					t = decodeDefineSprite(pos + length);
					break;
				
				case Flash.Swf.TagValues.stagDefineScalingGrid: 
					t = decodeDefineScalingGrid();
					break;
				
				case Flash.Swf.TagValues.stagFrameLabel: 
					t = decodeFrameLabel(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineMorphShape: 
					t = decodeDefineMorphShape();
					break;
				
				case Flash.Swf.TagValues.stagDefineMorphShape2: 
					t = decodeDefineMorphShape2();
					break;
				
				case Flash.Swf.TagValues.stagDefineFont2: 
					t = decodeDefineFont2();
					break;
				
				case Flash.Swf.TagValues.stagDefineFont3: 
					t = decodeDefineFont3();
					break;
				
				case Flash.Swf.TagValues.stagDefineFont4: 
					t = decodeDefineFont4(length);
					break;
				
				case Flash.Swf.TagValues.stagExportAssets: 
					t = decodeExportAssets();
					break;
				
				case Flash.Swf.TagValues.stagImportAssets: 
				case Flash.Swf.TagValues.stagImportAssets2: 
					t = decodeImportAssets(type);
					break;
				
				case Flash.Swf.TagValues.stagEnableDebugger2: 
				case Flash.Swf.TagValues.stagEnableDebugger: 
					t = decodeEnableDebugger(type);
					break;
				
				case Flash.Swf.TagValues.stagDoInitAction: 
					t = decodeDoInitAction(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineVideoStream: 
					t = decodeDefineVideoStream();
					break;
				
				case Flash.Swf.TagValues.stagVideoFrame: 
					t = decodeVideoFrame(length);
					break;
				
				case Flash.Swf.TagValues.stagDebugID: 
					t = decodeDebugID(type, length);
					break;
				
				case Flash.Swf.TagValues.stagScriptLimits: 
					t = decodeScriptLimits();
					break;
				
				case Flash.Swf.TagValues.stagSetTabIndex: 
					t = decodeSetTabIndex();
					break;
				
				case Flash.Swf.TagValues.stagDoABC: 
				case Flash.Swf.TagValues.stagDoABC2: 
					t = decodeDoABC(type, length);
					break;
				
				case Flash.Swf.TagValues.stagSymbolClass: 
					t = decodeSymbolClass();
					break;
				
				case Flash.Swf.TagValues.stagFileAttributes: 
					t = decodeFileAttributes();
					break;
				
				case Flash.Swf.TagValues.stagDefineFontAlignZones: 
					t = decodeDefineFontAlignZones();
					break;
				
				case Flash.Swf.TagValues.stagCSMTextSettings: 
					t = decodeCSMTextSettings();
					break;
				
				case Flash.Swf.TagValues.stagDefineSceneAndFrameLabelData: 
					t = decodeDefineSceneAndFrameData(length);
					break;
				
				case Flash.Swf.TagValues.stagDefineFontName: 
					t = decodeDefineFontName();
					break;
				
				default: 
					t = decodeUnknown(length, type);
					break;
				
			}
			
			int consumed = r.Offset - pos;
			
			// [preilly] It looks like past Authoring tools have generated some SWF's with
			// stagSoundStreamHead tags of length 4 with compression set to mp3, but the tag
			// really has 6 bytes in it and the player always reads the 6 bytes, so ignore the
			// difference between the consumed and the length for this special case.
			if ((consumed != length) && (type == Flash.Swf.TagValues.stagSoundStreamHead) && (consumed != (length + 2)))
			{
				throw new SwfFormatException(Flash.Swf.TagValues.names[type] + " at pos " + pos + ": " + consumed + " bytes were read. " + length + " byte were required.");
			}
			return t;
		}