⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transform.java

📁 利用opensource的开源jar实现生成flash文件
💻 JAVA
字号:
/*
 * FSTransform.java
 * Transform
 * 
 * Copyright (c) 2001-2006 Flagstone Software Ltd. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 *
 *  * Redistributions of source code must retain the above copyright notice, this
 *    list of conditions and the following disclaimer.
 *  * 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.
 *  * Neither the name of Flagstone Software Ltd. nor the names of its contributors 
 *    may be used to endorse or promote products derived from this software 
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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.flagstone.transform;

import java.util.*;

/**
 * The %Transform class defines constants and methods used throughout the %Transform package. 
 */
public class Transform
{
    /** 
     * @deprecated No longer required for debugging.
     * 
     * DEBUG is used to turn on additional logging and error checking.
     */
    public static final boolean DEBUG = false;
    /** 
     * VERSION is used to identify the version of Flash that the edition supports.
     */
    public static final int VERSION = 7;

    /** 
     * MAJOR is used to identify the current version of the framework. This
     * is incremented for each new version of Flash supported.
     */
    public static final int MAJOR = 2;
    /** 
     * MINOR is used to identify the current minor version of the framework. This
     * is incremented when new functionality is added or API changes are made.
     */
    public static final int MINOR = 0;
    /** 
     * The RELEASE number is used to differentiate between different releases. 
     * This number is incremented when an enhancement or bug fix has been made 
     * and the API is unchanged.
     */
    public static final int RELEASE = 6;
    /** 
     * VALUE_NOT_SET is used to signify that a field has not yet assigned a value. Some Flash 
     * tags contain optional fields to reduce the size of the binary data when a tag is encoded. 
     * These fields are only encoded if they have been assigned a valid value. The range of 
     * valid values will depend on the number of bits used to encode the field and whether it 
     * is a signed or unsigned value. VALUE_NOT_SET was chosen to be the largest negative 
     * integer - since the largest optional field is 16-bits in length and thus no confusion 
     * will result.
     */
    public static final int VALUE_NOT_SET = Integer.MIN_VALUE;
    
    /** 
     * The main method reports basic information about the package. The method prints out the 
     * version of Flash supported and the version number along with copyright and licensing 
     * information.
     */    
    public static void main(String args[]) 
    {
        String version = MAJOR + "." + MINOR + "." + RELEASE;
        
        System.out.println("/**");

        System.out.println(
            " * Transform For Flash " + VERSION + ", Version " + version);
        
        System.out.println(" * ");
        System.out.println(" * Copyright (c) Flagstone Software Limited, 2001-2006.");
        System.out.println(" * All Rights Reserved.");
        System.out.println(" * ");
        System.out.println(" * Use of this software is subject to the terms in the license");
        System.out.println(" * that accompanied the software.");
        System.out.println(" * ");
        System.out.println(" */");
    }

    static void append(StringBuffer buffer, String name, int value)
    {
        buffer.append(name);
        buffer.append(" = ");
        
        if (value == Transform.VALUE_NOT_SET)
            buffer.append("<Value Not Set>");
        else
            buffer.append(value);
            
        buffer.append("; ");
    }

    static void append(StringBuffer buffer, String name, boolean value)
    {
        buffer.append(name);
        buffer.append(" = ");
        buffer.append(value);
        buffer.append("; ");
    }

    static void append(StringBuffer buffer, String name, float value)
    {
        buffer.append(name);
        buffer.append(" = ");
        buffer.append(value);
        buffer.append("; ");
    }

    static void append(StringBuffer buffer, String name, String value)
    {
        if (value == null)
            value = "null; ";
        else if (value.equals("<data>"))
            value = value + "; ";
        else
            value = '"' + value + "\"; ";
        
        buffer.append(name);
        buffer.append(" = ");
        buffer.append(value);
    }

    static void append(StringBuffer buffer, String name, FSTransformObject anObject, int indentLevel)
    {
        buffer.append(name);
        buffer.append(" = ");
        
        if (anObject != null)
        {
            if (indentLevel > 0)
                anObject.appendDescription(buffer, indentLevel-1);
            else
                buffer.append(anObject.name());
        }
        else
        {
            buffer.append("null");
        }
        buffer.append("; ");
    }

    static void append(StringBuffer buffer, String name, ArrayList anArray, int indentLevel)
    {
        buffer.append(name);
        buffer.append(" = ");
        
        if (anArray != null)
        {
            buffer.append("Array(");
            buffer.append(anArray.size());
            buffer.append(") [ ");

            for (Iterator j = anArray.iterator(); j.hasNext();)
            {
                Object currentElement = j.next();
                        
                if (currentElement instanceof FSTransformObject)
                {
                    FSTransformObject object = (FSTransformObject)currentElement;
                    
                    if (indentLevel > 0)
                        object.appendDescription(buffer, indentLevel-1);
                    else
                        buffer.append(object.name());
                }
                else if (currentElement instanceof String)
                {
                    buffer.append('"');
                    buffer.append(currentElement.toString());
                    buffer.append('"');
                }
                else
                    buffer.append(currentElement.toString());
                
                if (j.hasNext())
                    buffer.append(',');
                
                buffer.append(' ');
            }
            buffer.append("]; ");
        }
        else
        {
            buffer.append("null; ");
        }
    }

    static void append(StringBuffer buffer, String name, Hashtable table, int indentLevel)
    {
        buffer.append(name);
        buffer.append(" = ");
        
        if (table != null)
        {
            buffer.append("Table (");
            buffer.append(table.size());
            buffer.append(")");

            if (indentLevel > 0)
            {
                buffer.append(" {");

                for (Enumeration e = table.keys(); e.hasMoreElements(); )
                {
                    Object key = e.nextElement();
                    Object value = table.get(key);
                                
                    buffer.append(key);
                    buffer.append(" = ");
                        
                    if (value instanceof FSTransformObject)
                        ((FSTransformObject)value).appendDescription(buffer, indentLevel-1);
                    else if (value instanceof String)
                    {
                        buffer.append('"');
                        buffer.append(value.toString());
                        buffer.append('"');
                    }
                    else
                        buffer.append(value.toString());
                        
                    if (e.hasMoreElements())
                        buffer.append(',');
                
                    buffer.append(' ');
                }
            }
            buffer.append("} ");
        }
        else
        {
            buffer.append("null");
        }
    }

    static boolean equals(byte[] b1, byte[] b2)
    {
        boolean result = false;
        
        if (b1 == null && b2 ==null)
            return true;
            
        if (b1 != null && b2 != null)
        {
            result = b1.length == b2.length;
            
            if (result)
                for (int i=0; i<b1.length; i++)
                    if (b1[i] != b2[i])
                        result = false;
        }
        return result;
    }

    static byte[] clone(byte[] data)
    {
        byte[] newData = null;
        
        if (data != null)
        {
            newData = new byte[data.length];
        
            for (int i=0; i<data.length; i++)
                newData[i] = data[i];
        }
        return newData;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -