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

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

?? fontloader.java

?? java版本的flash文件(swf)播放器
?? JAVA
字號:
/****************************************************************
 * 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.movie;

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

/**
 * Font loading utilities
 */
public class FontLoader extends SWFTagTypesImpl 
{
    protected FontDefinition fontDef;
    
    public FontLoader()
    {
        super( null );
    }
    
    /**
     * Load the first font from the given Flash movie
     * 
     * @return null if no font was found
     */
    public static FontDefinition loadFont( String filename )
        throws IOException
    {
        FileInputStream in = new FileInputStream( filename );
        
        FontDefinition def = loadFont(in); 
        
        in.close();
        
        return def;
    }
    
    /**
     * Load the first font from the given Flash movie
     * 
     * @return null if no font was found
     */
    public static FontDefinition loadFont( InputStream flashMovie )
        throws IOException
    {
        FontLoader fontloader = new FontLoader();
        SWFTags   swfparser = new TagParser( fontloader );
        SWFReader swfreader = new SWFReader( swfparser, flashMovie );
        
        swfreader.readFile();
        
        return fontloader.fontDef;
    }
    
    /**
     * SWFTagTypes Interface
     */
    public SWFVectors tagDefineFont2( int id, int flags, String name, int numGlyphs,
                                      int ascent, int descent, int leading,
                                      int[] codes, int[] advances, Rect[] bounds,
                                      int[] kernCodes1, int[] kernCodes2,
                                      int[] kernAdjustments ) throws IOException
    {
        if( fontDef != null ) return null;  //only load first font
        
        double twips = (double)SWFConstants.TWIPS;
        
        fontDef = new FontDefinition( name, 
                                      ((double)ascent)/twips,
                                      ((double)descent)/twips,
                                      ((double)leading)/twips,
                                      (flags & SWFConstants.FONT2_UNICODE   ) != 0,
                                      (flags & SWFConstants.FONT2_SHIFTJIS  ) != 0,
                                      (flags & SWFConstants.FONT2_ANSI      ) != 0,
                                      (flags & SWFConstants.FONT2_ITALIC    ) != 0,
                                      (flags & SWFConstants.FONT2_BOLD      ) != 0,
                                      (flags & SWFConstants.FONT2_HAS_LAYOUT) != 0 );
        
        if( kernCodes1 != null && kernCodes1.length > 0 )
        {
            //System.out.println( "Number of Kernings --> " + kernCodes1.length );
            
            ArrayList kerns = fontDef.getKerningPairList();
        
            for( int i = 0; i < kernCodes1.length; i++ )
            {
                FontDefinition.KerningPair pair = 
                    new FontDefinition.KerningPair( 
                        kernCodes1[i],
                        kernCodes2[i],
                        ((double)kernAdjustments[i])/twips );
                
                kerns.add( pair );
            }
        }
        
        return new VectorImpl( codes, advances, bounds );
    }
    
    protected class VectorImpl implements SWFVectors 
    {
        protected int[] codes;
        protected int[] advances;
        protected Rect[] bounds;
        protected int i;
        protected Shape shape;
        protected int currx;
        protected int curry;
        protected double twips = (double)SWFConstants.TWIPS;
        
        protected VectorImpl( int[] codes, int[] advances, Rect[] bounds )
        {
            this.codes    = codes;
            this.advances = advances;
            this.bounds   = bounds;
            i = 0;
            
            shape = new Shape();
        }
        
        public void done()
        {
            //System.out.println( "------------" );
            double advance = (advances == null) ? 0.0 : ((double)advances[i])/twips;
            int code = codes[i];
            
            Rect rect = bounds[i];
            shape.minX = ((double)rect.getMinX())/twips;
            shape.minY = ((double)rect.getMinY())/twips;
            shape.maxX = ((double)rect.getMaxX())/twips;
            shape.maxY = ((double)rect.getMaxY())/twips;
            
            FontDefinition.Glyph g = new FontDefinition.Glyph( shape, advance, code );
            
            fontDef.getGlyphList().add( g );
            
            i++;
            
            if( i < codes.length ) shape = new Shape();
            
            currx = curry = 0;
        }
    
        public void line( int dx, int dy )
        {
            currx += dx;
            curry += dy;
            
            shape.line( currx/twips, curry/twips );
            
            //System.out.println( "L: " + dx + " " + dy + "     " + currx + " " + curry );            
        }
    
        public void curve( int cx, int cy, int dx, int dy )
        {
            cx += currx;
            cy += curry;
            dx += cx;
            dy += cy;
            
            currx = dx;
            curry = dy;            
                        
            shape.curve( dx/twips, dy/twips, cx/twips, cy/twips );
            
            //System.out.println( "C: " + cx + " " + cy + " " + dx + " " + dy +
            //                    "     " + (cx/twips) + " " + (cy/twips) + 
            //                    " " + (dx/twips) + " " + (dy/twips) );
            
        }
    
        public void move( int x, int y )
        {
            currx = x;
            curry = y;

            shape.move( x/twips, y/twips );
            
            //System.out.println( "M: " + x + " " + y + "     " + (x/twips) + " " + (y/twips) );
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
4hu四虎永久在线影院成人| 亚洲一区免费观看| 久久婷婷久久一区二区三区| 欧美一级一区二区| 欧美一区二区高清| 日韩免费电影一区| 日韩欧美中文字幕公布| 日韩欧美在线网站| 亚洲精品在线三区| 精品国产1区2区3区| 久久免费美女视频| 中文字幕av在线一区二区三区| 久久男人中文字幕资源站| 国产日韩v精品一区二区| 国产精品欧美一区喷水| 亚洲欧洲制服丝袜| 一片黄亚洲嫩模| 日韩福利视频网| 另类中文字幕网| 国产精一品亚洲二区在线视频| 国产乱一区二区| www.色综合.com| 欧美在线观看视频在线| 欧美卡1卡2卡| 欧美精品一区二区三区在线| 国产人伦精品一区二区| 亚洲欧美乱综合| 五月激情丁香一区二区三区| 久久狠狠亚洲综合| 成人午夜伦理影院| 欧美性极品少妇| 精品国产伦一区二区三区观看方式| 久久先锋资源网| 亚洲人成网站在线| 日韩国产一二三区| 高清不卡一区二区在线| 色偷偷一区二区三区| 欧美精品 日韩| 国产午夜久久久久| 一区二区高清在线| 国产综合成人久久大片91| 成人午夜看片网址| 欧美日韩黄色一区二区| 久久久久久久久久久99999| 1024成人网色www| 免费人成在线不卡| 97久久久精品综合88久久| 欧美人成免费网站| 日本一区二区免费在线| 午夜视频在线观看一区| 国产精品影音先锋| 欧美日韩激情在线| 国产精品久久久久久久久搜平片| 亚洲成av人片一区二区梦乃| 国产精品白丝jk白祙喷水网站| 欧美三级电影在线看| 国产欧美精品一区aⅴ影院 | 亚洲成va人在线观看| 激情五月婷婷综合网| 91精品91久久久中77777| 久久综合九色欧美综合狠狠| 亚洲自拍偷拍九九九| 国产91高潮流白浆在线麻豆| 欧美欧美欧美欧美首页| 亚洲欧洲无码一区二区三区| 蜜桃久久精品一区二区| 欧美视频一区二区在线观看| 国产欧美一区视频| 毛片一区二区三区| 在线观看91视频| 亚洲欧洲99久久| 国产精品自拍一区| 欧美成人vps| 亚洲福利视频一区| 一本色道久久综合亚洲精品按摩| 久久久久久久久久久99999| 日本欧美加勒比视频| 欧美视频日韩视频在线观看| 国产精品理伦片| 国产99久久久国产精品| 日韩一区二区在线观看| 亚洲成人免费在线观看| 91丨九色丨国产丨porny| 国产欧美日韩麻豆91| 久久国产精品99精品国产 | 日韩理论片中文av| 国产成人激情av| 精品美女被调教视频大全网站| 无吗不卡中文字幕| 欧美日韩免费一区二区三区| 中文字幕字幕中文在线中不卡视频| 国产激情视频一区二区三区欧美| 欧美一级二级三级蜜桃| 天堂成人免费av电影一区| 色综合久久九月婷婷色综合| 亚洲视频在线一区| 成人福利在线看| 亚洲国产精品ⅴa在线观看| 国产一区在线看| 精品av综合导航| 捆绑紧缚一区二区三区视频| 欧美精品一二三区| 婷婷久久综合九色综合绿巨人 | 色香蕉久久蜜桃| 亚洲欧美色综合| 91小视频在线观看| 亚洲男人的天堂在线aⅴ视频| eeuss鲁片一区二区三区 | 亚洲国产一二三| 欧美色图在线观看| 亚洲成人动漫精品| 91精品国产综合久久香蕉的特点 | 欧美视频在线一区二区三区| 亚洲尤物在线视频观看| 一区二区三区四区在线播放| 亚洲综合色噜噜狠狠| 欧美在线一区二区三区| 一区二区三区色| 精品视频在线免费看| 丝袜亚洲精品中文字幕一区| 欧美日韩免费在线视频| 蜜臀av亚洲一区中文字幕| 久久老女人爱爱| 成人午夜电影小说| 亚洲免费大片在线观看| 欧美日韩极品在线观看一区| 美女诱惑一区二区| 久久久久成人黄色影片| 成人开心网精品视频| 亚洲色图在线视频| 欧美视频在线播放| 久久99精品国产| 国产精品入口麻豆原神| 色综合一个色综合| 日本午夜一区二区| 久久久青草青青国产亚洲免观| 成人爽a毛片一区二区免费| 亚洲你懂的在线视频| 91精品国产入口在线| 国产美女av一区二区三区| 亚洲国产岛国毛片在线| 色呦呦国产精品| 日本亚洲免费观看| 日本一区二区高清| 欧美日韩高清在线| 国产一区二区伦理片| 亚洲另类中文字| 日韩欧美一卡二卡| 99v久久综合狠狠综合久久| 午夜成人免费电影| 久久精品在这里| 色婷婷综合在线| 精品一区二区三区的国产在线播放 | 国产·精品毛片| 亚洲免费电影在线| 26uuu国产在线精品一区二区| 色综合久久久久网| 麻豆成人久久精品二区三区红| 国产精品动漫网站| 日韩一区二区中文字幕| 色激情天天射综合网| 美国一区二区三区在线播放| 国产精品福利一区二区| 欧美高清视频www夜色资源网| 懂色av一区二区三区免费看| 午夜视频久久久久久| 国产精品每日更新在线播放网址 | 一区二区视频在线| 26uuu成人网一区二区三区| 在线视频中文字幕一区二区| 国产精品一区二区三区99| 亚洲成人先锋电影| 亚洲欧洲韩国日本视频| 久久蜜桃av一区精品变态类天堂 | 婷婷综合久久一区二区三区| 国产精品无遮挡| 精品久久久久久久久久久久久久久久久 | 久久精品欧美日韩| 欧美裸体一区二区三区| 91在线视频播放| 国产一区91精品张津瑜| 亚洲午夜电影在线| 综合欧美亚洲日本| 欧美精品一区男女天堂| 91精选在线观看| 在线观看网站黄不卡| 成人伦理片在线| 国产精品一区二区三区网站| 蜜桃视频免费观看一区| 日韩国产精品久久| 亚洲一区av在线| 亚洲日本免费电影| 国产精品视频yy9299一区| 久久久久国产精品厨房| 欧美成人女星排名| 日韩一区二区影院| 欧美一级日韩免费不卡| 777亚洲妇女| 69堂精品视频| 56国语精品自产拍在线观看|