亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tagparser.java

?? java版本的flash文件(swf)播放器
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
/****************************************************************
 * Copyright (c) 2001, David N. Main, All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or
 * without modification, are permitted provided that the 
 * following conditions are met:
 *
 * 1. Redistributions of source code must retain the above 
 * copyright notice, this list of conditions and the following 
 * disclaimer. 
 * 
 * 2. Redistributions in binary form must reproduce the above 
 * copyright notice, this list of conditions and the following 
 * disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * 3. The name of the author may not be used to endorse or 
 * promote products derived from this software without specific 
 * prior written permission. 
 * 
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
 * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ****************************************************************/
package com.anotherbigidea.flash.readers;

import java.io.*;
import java.util.*;
import java.util.zip.*;
import com.anotherbigidea.flash.interfaces.*;
import com.anotherbigidea.flash.*;
import com.anotherbigidea.flash.structs.*;
import com.anotherbigidea.io.*;
import com.anotherbigidea.flash.writers.*;

/**
 * Parse Tags and drive a SWFTagTypes interface.
 */
public class TagParser implements SWFTags, SWFConstants, SWFFileSignature 
{
	protected String mStringEncoding = SWFConstants.STRING_ENCODING_MX;
	protected int mFlashVersion = SWFConstants.FLASH_MX_VERSION;
	
    protected SWFTagTypes mTagtypes;
    //protected byte[] contents;  //for debugging
    
    public TagParser( SWFTagTypes tagtypes )
    {
        mTagtypes = tagtypes;
    }    
    
    /**
     * @see SWFFileSignature#signature(String)
     */
    public void signature( String sig ) {
    	if( mTagtypes instanceof SWFFileSignature ) {
    		((SWFFileSignature) mTagtypes).signature( sig );
    	}
    }
    
    /**
     * Interface SWFTags
     */
    public void header( int version, long length,
                        int twipsWidth, int twipsHeight,
                        int frameRate, int frameCount ) throws IOException
    {
        mTagtypes.header( version, length, 
                         twipsWidth, twipsHeight, 
                         frameRate, frameCount );
                         
        //revert to old encoding for pre-MX
        if( version < SWFConstants.FLASH_MX_VERSION ) {
        	mStringEncoding = SWFConstants.STRING_ENCODING_PRE_MX;
        }
        
        mFlashVersion = version;
    }
    
    /**
     * Interface SWFTags
    
    public void tag( int tagType, boolean longTag, byte[] contents ) 
        throws IOException
    {
        //this.contents = contents; //for debugging
        
        int length = ( contents != null ) ? contents.length : 0;
        
        InStream in = ( length > 0 ) ? new InStream( contents ) : null;
        
        //System.out.println( "IN  Tag " + tagType + " " + longTag + " " + length );
        
        switch( tagType )
        {
            case TAG_END:       tagtypes.tagEnd(); break;
            case TAG_SHOWFRAME: tagtypes.tagShowFrame(); break;
                                
            //case TAG_DEFINESHAPE : 
            //case TAG_DEFINESHAPE2: 
            //case TAG_DEFINESHAPE3: parseDefineShape( tagType, in ); break;
                                   
            case TAG_DOACTION      : parseDoAction( in ); break;
            //case TAG_FREECHARACTER : tagtypes.tagFreeCharacter( in.readUI16() ); break;
            //case TAG_PLACEOBJECT   : parsePlaceObject( in, length ); break;
            case TAG_PLACEOBJECT2  : parsePlaceObject2( in ); break;
            //case TAG_REMOVEOBJECT  : tagtypes.tagRemoveObject( in.readUI16(), in.readUI16() ); break;
            //case TAG_REMOVEOBJECT2 : tagtypes.tagRemoveObject2( in.readUI16() ); break;
            //case TAG_SETBACKGROUNDCOLOR : tagtypes.tagSetBackgroundColor( new Color(in) ); break;              
            //case TAG_FRAMELABEL    : tagtypes.tagFrameLabel( in.readString() ); break;              
            case TAG_DEFINESPRITE  : parseDefineSprite( in ); break;
            //case TAG_PROTECT       : tagtypes.tagProtect( (length>0) ? in.read(length) : null ); break;
            //case TAG_ENABLEDEBUG   : tagtypes.tagEnableDebug( (length>0) ? in.read(length) : null ); break;
            //case TAG_DEFINEFONT    : parseDefineFont( in ); break;
            //case TAG_DEFINEFONTINFO: parseFontInfo( in, length ); break;
            //case TAG_DEFINEFONT2   : parseDefineFont2( in ); break;
            //case TAG_DEFINETEXTFIELD: parseDefineTextField( in ); break;
                                      
            //case TAG_DEFINETEXT    : 
            //case TAG_DEFINETEXT2   : parseDefineText( tagType, in ); break;

            case TAG_DEFINEBUTTON  : parseDefineButton( in ); break;
            case TAG_DEFINEBUTTON2 : parseDefineButton2( in ); break;
            //case TAG_DEFINEBUTTONCXFORM : parseButtonCXForm( in ); break;

            //case TAG_EXPORT : parseExport( in ); break;
            //case TAG_IMPORT : parseImport( in ); break;

            //case TAG_DEFINEQUICKTIMEMOVIE : tagtypes.tagDefineQuickTimeMovie( in.readUI16(), in.readString() ); break;
                                            
            //case TAG_DEFINEBITSJPEG2     : parseDefineJPEG2( in, length ); break;
            //case TAG_DEFINEBITSLOSSLESS  : parseDefineBitsLossless( in, length, false ); break;
            //case TAG_DEFINEBITSLOSSLESS2 : parseDefineBitsLossless( in, length, true  ); break;
                                       
            //case TAG_DEFINEMORPHSHAPE : parseMorphShape( in ); break;
                                        
            //case TAG_NAMECHARACTER:     tagtypes.tagNameCharacter   ( contents ); break;
            //case TAG_GENERATOR_TEXT:    tagtypes.tagGeneratorText   ( contents ); break;
            //case TAG_TEMPLATECOMMAND:   tagtypes.tagGeneratorCommand( contents ); break;
            //case TAG_FLASHGENERATOR:    tagtypes.tagGenerator       ( contents ); break;
            //case TAG_GEN_EXTERNAL_FONT: tagtypes.tagGeneratorFont   ( contents ); break;
            //case TAG_SERIALNUMBER:      tagtypes.tagSerialNumber( in.readString() ); break;                                        
                                        
            //case TAG_DEFINESOUND:       parseDefineSound( in ); break;
            //case TAG_STARTSOUND:        parseStartSound( in ); break;
            //case TAG_DEFINEBUTTONSOUND: parseDefineButtonSound( in ); break;
            //case TAG_SOUNDSTREAMHEAD:   parseSoundStreamHead( true, in ); break;
            //case TAG_SOUNDSTREAMHEAD2:  parseSoundStreamHead( false, in ); break;
            //case TAG_SOUNDSTREAMBLOCK:  parseSoundStreamBlock( in ); break;
                                        
            //case TAG_DEFINEBITS:      parseDefineBits( in ); break;
            //case TAG_JPEGTABLES:      parseDefineJPEGTables( in ); break;
            //case TAG_DEFINEBITSJPEG3: parseDefineBitsJPEG3( in ); break;
    
            default: //--Unknown Tag Type
                tagtypes.tag( tagType, longTag, contents );
                break;
        }                
    } */
    
    /**
     * Interface SWFTags
     */
    public void tag( int tagType, boolean longTag, byte[] contents ) 
        throws IOException
    {
        //this.contents = contents; //for debugging
        
        int length = ( contents != null ) ? contents.length : 0;
        
        InStream in = ( length > 0 ) ? new InStream( contents ) : null;
        
        //System.out.println( "IN  Tag " + tagType + " " + longTag + " " + length );
        
        switch( tagType )
        {
            case TAG_END:       mTagtypes.tagEnd(); break;
            case TAG_SHOWFRAME: mTagtypes.tagShowFrame(); break;
                                
            case TAG_DEFINESHAPE : 
            case TAG_DEFINESHAPE2: 
            case TAG_DEFINESHAPE3: parseDefineShape( tagType, in ); break;
                                   
            case TAG_DOACTION      : parseDoAction( in ); break;
			case TAG_DOINITACTION  : parseDoInitAction( in ); break;
            case TAG_FREECHARACTER : mTagtypes.tagFreeCharacter( in.readUI16() ); break;
            case TAG_PLACEOBJECT   : parsePlaceObject( in, length ); break;
            case TAG_PLACEOBJECT2  : parsePlaceObject2( in ); break;
            case TAG_REMOVEOBJECT  : mTagtypes.tagRemoveObject( in.readUI16(), in.readUI16() ); break;
            case TAG_REMOVEOBJECT2 : mTagtypes.tagRemoveObject2( in.readUI16() ); break;
            case TAG_SETBACKGROUNDCOLOR : mTagtypes.tagSetBackgroundColor( new Color(in) ); break;              
            case TAG_FRAMELABEL    : parseFrameLabel( in, contents ); break;              
            case TAG_DEFINESPRITE  : parseDefineSprite( in ); break;
            case TAG_PROTECT       : mTagtypes.tagProtect( (length>0) ? in.read(length) : null ); break;
            case TAG_ENABLEDEBUG   : mTagtypes.tagEnableDebug( (length>0) ? in.read(length) : null ); break;
            case TAG_DEFINEFONT    : parseDefineFont( in ); break;
            case TAG_DEFINEFONTINFO: parseFontInfo( in, length, false ); break;
			case TAG_DEFINEFONTINFO2: parseFontInfo( in, length, true ); break;
            case TAG_DEFINEFONT2   : parseDefineFont2( in ); break;
            case TAG_DEFINETEXTFIELD: parseDefineTextField( in ); break;
                                      
            case TAG_DEFINETEXT    : 
            case TAG_DEFINETEXT2   : parseDefineText( tagType, in ); break;

            case TAG_DEFINEBUTTON  : parseDefineButton( in ); break;
            case TAG_DEFINEBUTTON2 : parseDefineButton2( in ); break;
            case TAG_DEFINEBUTTONCXFORM : parseButtonCXForm( in ); break;

            case TAG_EXPORT : parseExport( in ); break;
            case TAG_IMPORT : parseImport( in ); break;

            case TAG_DEFINEQUICKTIMEMOVIE : mTagtypes.tagDefineQuickTimeMovie( in.readUI16(), in.readString( mStringEncoding ) ); break;
                                            
            case TAG_DEFINEBITSJPEG2     : parseDefineJPEG2( in, length ); break;
            case TAG_DEFINEBITSLOSSLESS  : parseDefineBitsLossless( in, length, false ); break;
            case TAG_DEFINEBITSLOSSLESS2 : parseDefineBitsLossless( in, length, true  ); break;
                                       
            case TAG_DEFINEMORPHSHAPE : parseMorphShape( in ); break;
                                        
            case TAG_NAMECHARACTER:     mTagtypes.tagNameCharacter   ( contents ); break;
            case TAG_GENERATOR_TEXT:    mTagtypes.tagGeneratorText   ( contents ); break;
            case TAG_TEMPLATECOMMAND:   mTagtypes.tagGeneratorCommand( contents ); break;
            case TAG_FLASHGENERATOR:    mTagtypes.tagGenerator       ( contents ); break;
            case TAG_GEN_EXTERNAL_FONT: mTagtypes.tagGeneratorFont   ( contents ); break;
            case TAG_SERIALNUMBER:      mTagtypes.tagSerialNumber( in.readString( mStringEncoding ) ); break;                                        
                                        
            case TAG_DEFINESOUND:       parseDefineSound( in ); break;
            case TAG_STARTSOUND:        parseStartSound( in ); break;
            case TAG_DEFINEBUTTONSOUND: parseDefineButtonSound( in ); break;
            case TAG_SOUNDSTREAMHEAD:   parseSoundStreamHead( true, in ); break;
            case TAG_SOUNDSTREAMHEAD2:  parseSoundStreamHead( false, in ); break;
            case TAG_SOUNDSTREAMBLOCK:  parseSoundStreamBlock( in ); break;
                                        
            case TAG_DEFINEBITS:      parseDefineBits( in ); break;
            case TAG_JPEGTABLES:      parseDefineJPEGTables( in ); break;
            case TAG_DEFINEBITSJPEG3: parseDefineBitsJPEG3( in ); break;

			case TAG_ENABLEDEBUGGER2 : parseEnableDebugger2( in, length ); break;
    
            default: //--Unknown Tag Type
                mTagtypes.tag( tagType, longTag, contents );
                break;
        }                
    }//*/

	protected void parseEnableDebugger2( InStream in, int length ) throws IOException {
		int reserved = in.readUI16();
		mTagtypes.tagEnableDebug2( (length>2) ? in.read(length-2) : null );		
	}

	protected void parseFrameLabel( InStream in, byte[] contents ) throws IOException {
		
		if( contents != null && contents.length >= 2 ) {
			int len = contents.length;
			if( contents[len-1] == 1 && contents[len-2] == 0 ) {
				//is an anchor label
				mTagtypes.tagFrameLabel( in.readString( mStringEncoding ), true );		
				return;		
			}
		}
		
		mTagtypes.tagFrameLabel( in.readString( mStringEncoding ) );
	}

    protected void parseDefineSound( InStream in ) throws IOException
    {
        int id          = in.readUI16();
        int format      = (int)in.readUBits( 4 );
        int frequency   = (int)in.readUBits( 2 );
        boolean bits16  = in.readUBits(1) != 0;
        boolean stereo  = in.readUBits(1) != 0;
        int sampleCount = (int)in.readUI32();
        
        byte[] soundData = in.read();
        
        mTagtypes.tagDefineSound( id, format, frequency, bits16, stereo,
                                 sampleCount, soundData );
    }
    
    protected void parseStartSound( InStream in ) throws IOException
    {
        int id = in.readUI16();
        SoundInfo info = new SoundInfo( in );
        
        mTagtypes.tagStartSound( id, info );
    }
    
    protected void parseDefineButtonSound( InStream in ) throws IOException
    {
        int id = in.readUI16();
        
        int       rollOverSoundId   = in.readUI16();
        SoundInfo rollOverSoundInfo = (rollOverSoundId==0) ? null : new SoundInfo( in );
        
        int       rollOutSoundId   = in.readUI16();
        SoundInfo rollOutSoundInfo = (rollOutSoundId==0) ? null : new SoundInfo( in );
        
        int       pressSoundId   = in.readUI16();
        SoundInfo pressSoundInfo = (pressSoundId==0) ? null : new SoundInfo( in );
        
        int       releaseSoundId   = in.readUI16();
        SoundInfo releaseSoundInfo = (releaseSoundId==0) ? null : new SoundInfo( in );
        
        mTagtypes.tagDefineButtonSound( id, 
                     rollOverSoundId, rollOverSoundInfo,
                     rollOutSoundId,  rollOutSoundInfo,
                     pressSoundId,    pressSoundInfo,
                     releaseSoundId,  releaseSoundInfo );

    }
    
    protected void parseSoundStreamHead( boolean adpcmOnly, InStream in ) throws IOException
    {
        int     reserved       = (int)in.readUBits(4);
        int     playbackFreq   = (int)in.readUBits(2);
        boolean playback16bits = ( in.readUBits(1) != 0 );
        boolean playbackStereo = ( in.readUBits(1) != 0 );
        
        int     format       = (int)in.readUBits(4);
        int     streamFreq   = (int)in.readUBits(2);
        boolean stream16bits = ( in.readUBits(1) != 0 );
        boolean streamStereo = ( in.readUBits(1) != 0 );        
        int     avgSampleCount = (int)in.readUI16();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2024国产精品视频| 国产成人一区二区精品非洲| 午夜久久福利影院| 日本中文字幕一区二区视频| 日本va欧美va精品发布| 久久99国内精品| 不卡影院免费观看| 91天堂素人约啪| 91亚洲国产成人精品一区二三| 欧洲人成人精品| 91精品国产综合久久香蕉麻豆| 久久久99久久| 18欧美亚洲精品| 亚洲成人动漫在线免费观看| 国产剧情一区二区| av高清不卡在线| 欧美日韩专区在线| 日韩欧美电影一二三| 国产蜜臀97一区二区三区| 亚洲制服欧美中文字幕中文字幕| 亚洲成人免费电影| 狠狠色丁香婷婷综合| 成人av网站免费| 欧美在线一二三| 久久嫩草精品久久久精品一| 亚洲视频中文字幕| 青青草一区二区三区| 国产精品系列在线观看| 欧美在线三级电影| 久久久99久久| 亚洲中国最大av网站| 成人免费福利片| 欧美久久久久久蜜桃| 精品三级av在线| 亚洲电影一级黄| 国产成人aaa| 精品sm在线观看| 亚洲精品久久久久久国产精华液| 美女一区二区三区在线观看| 欧洲日韩一区二区三区| 精品国产123| 秋霞午夜鲁丝一区二区老狼| 成人精品免费看| 日韩西西人体444www| 亚洲综合一区二区精品导航| 国产一区二区三区日韩| 日韩午夜电影av| 自拍av一区二区三区| 免费成人小视频| 欧美精品自拍偷拍动漫精品| 国产精品久久久久久久蜜臀 | 99re66热这里只有精品3直播 | 色哟哟一区二区三区| 欧美国产日本视频| 美女一区二区久久| 51精品视频一区二区三区| 亚洲手机成人高清视频| 免费视频一区二区| 欧美顶级少妇做爰| 中文字幕在线观看不卡视频| 国产成人av在线影院| 日韩亚洲欧美在线观看| 亚洲视频资源在线| 99re成人在线| 国产精品美女一区二区在线观看| 国产成人在线看| 精品国产a毛片| 亚洲一区二区三区中文字幕| 91视频在线观看| 国产人伦精品一区二区| 国产老肥熟一区二区三区| 日韩免费成人网| 亚洲午夜久久久久| 在线视频综合导航| 国产精品久久久久久久久果冻传媒| 成人美女视频在线观看| 久久精品视频免费观看| 琪琪久久久久日韩精品| 欧美老女人在线| 亚洲成人动漫一区| 91精品国产91久久久久久最新毛片| 亚洲国产精品久久艾草纯爱| 欧美精品三级在线观看| 午夜视频在线观看一区| 欧美日韩国产免费| 日本色综合中文字幕| 91精品欧美福利在线观看| 蜜桃在线一区二区三区| 欧美一区二区在线观看| 亚洲h在线观看| 精品久久久久久亚洲综合网| 久久成人免费网| 国产亚洲精品精华液| 国产在线一区观看| 国产午夜亚洲精品羞羞网站| 盗摄精品av一区二区三区| 中文字幕成人在线观看| 91久久线看在观草草青青| 亚洲区小说区图片区qvod| 欧美日韩1区2区| 日韩av中文在线观看| 成人激情免费视频| 亚洲乱码国产乱码精品精小说| 色综合久久久久综合| 天天影视网天天综合色在线播放| 91麻豆精品国产自产在线 | 激情欧美一区二区| 久久久久国产精品免费免费搜索| 久久精品国产在热久久| 国产精品美女一区二区| 色综合久久久久综合99| 免费一级片91| 久久日韩粉嫩一区二区三区| 国产一区二区成人久久免费影院| 欧美韩日一区二区三区| 91麻豆.com| 天天色综合天天| 精品国产1区二区| 日本高清无吗v一区| 亚洲成人第一页| 欧美一区二区不卡视频| 成年人国产精品| 亚洲动漫第一页| 国产性做久久久久久| 91丨九色丨黑人外教| 日韩av在线发布| 欧美国产欧美综合| 91网站最新网址| 韩国毛片一区二区三区| 亚洲色图在线播放| 日韩免费看网站| 成人app在线观看| 久久成人综合网| 亚洲色图制服丝袜| 欧美电影在哪看比较好| 成人福利电影精品一区二区在线观看| 中文字幕制服丝袜成人av| 日韩欧美中文一区| 不卡一区二区在线| 精品一区二区在线免费观看| 国产精品久久久久久久浪潮网站| 欧美日韩免费视频| 国产精品主播直播| 亚洲国产美女搞黄色| 国产欧美一二三区| 精品视频全国免费看| 色综合色狠狠天天综合色| 欧美aaaaaa午夜精品| 亚洲综合无码一区二区| 国产天堂亚洲国产碰碰| 欧美一区中文字幕| gogo大胆日本视频一区| 免费高清在线一区| 一区二区三区蜜桃网| 久久婷婷综合激情| 日韩免费观看高清完整版| 色综合久久综合网| 波多野洁衣一区| 久久精品国产成人一区二区三区| 一区二区三区鲁丝不卡| 国产亚洲一区二区三区四区| 日韩视频免费观看高清完整版在线观看 | 另类中文字幕网| 日韩中文字幕麻豆| 亚洲手机成人高清视频| 中文字幕不卡的av| 日韩欧美一区在线观看| 欧美精选一区二区| 99re这里只有精品首页| 精品一区二区在线看| 日韩精品一二三区| 国产精品久久久久影院亚瑟 | 蜜桃视频在线一区| 日日摸夜夜添夜夜添国产精品| 最新热久久免费视频| 日韩女优电影在线观看| 欧美久久久久中文字幕| 91猫先生在线| 在线一区二区视频| 成人免费视频视频在线观看免费| 国产69精品久久久久毛片| 久久精品av麻豆的观看方式| 美女看a上一区| 香蕉av福利精品导航| 欧美一区二区三区啪啪| 欧美精品色综合| 欧美日韩国产首页| 91麻豆精品国产91久久久久久| 欧美性感一区二区三区| 欧美日韩另类国产亚洲欧美一级| 色琪琪一区二区三区亚洲区| 91久久香蕉国产日韩欧美9色| av毛片久久久久**hd| 91久久精品一区二区三区| 91欧美一区二区| 不卡av电影在线播放| 国产成人av自拍| 国产精品白丝av| 国产精品1024久久| 粉嫩在线一区二区三区视频|