Package com.adobe.internal.fxg.util

Source Code of com.adobe.internal.fxg.util.SWFWriter

/*
*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You under the Apache License, Version 2.0
*  (the "License"); you may not use this file except in compliance with
*  the License.  You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*
*/
package com.adobe.internal.fxg.util;

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;

import flash.swf.Frame;
import flash.swf.Movie;
import flash.swf.MovieEncoder;
import flash.swf.SwfConstants;
import flash.swf.Tag;
import flash.swf.TagEncoder;
import flash.swf.tags.DefineSprite;
import flash.swf.tags.PlaceObject;
import flash.swf.types.Matrix;
import flash.swf.types.Rect;

/**
* Utility class that allows writing out a DefineSprite to an Output Stream
*
* @author Sujata Das
*/
public class SWFWriter
{
    private static final int DEFAULT_VERSION = 10;
    private static final int DEFAULT_FRAMERATE = 24;
    private static final int DEFAULT_WIDTH = 800;
    private static final int DEFAULT_HEIGHT = 800;
    private static final int DEFAULT_DEPTH = 1;
   
    int version = DEFAULT_VERSION;
    int framerate = DEFAULT_FRAMERATE;
    int width = DEFAULT_WIDTH;
    int height = DEFAULT_HEIGHT;
    int depth = DEFAULT_DEPTH;
   
    /**
     * Instantiates a new sWF writer.
     */
    public SWFWriter()
    {
    }

    /**
     * Instantiates a new sWF writer.
     *
     * @param width the width
     * @param height the height
     */
    public SWFWriter(int width, int height)
    {
        this.width = width;
        this.height = height;
    }
   
    /**
     * Instantiates a new sWF writer.
     *
     * @param width the width
     * @param height the height
     * @param version the version
     */
    public SWFWriter(int width, int height, int version)
    {
        this.width = width;
        this.height = height;
        this.version = version;
    }
   
    /**
     * Instantiates a new sWF writer.
     *
     * @param width the width
     * @param height the height
     * @param version the version
     * @param framerate the framerate
     * @param depth the depth
     */
    public SWFWriter(int width, int height, int version, int framerate, int depth)
    {
        this.width = width;
        this.height = height;
        this.version = version;
        this.framerate = framerate;
        this.depth = depth;
    }

    /**
     * method that writes the sprite to output stream
     *
     * @param sprite
     * @param fout
     * @throws IOException
     */
    public void writeToFile(DefineSprite sprite, OutputStream fout)
            throws IOException
    {
        Movie movie = new Movie();
        movie.version = version;
        movie.framerate = framerate;
        movie.width = width;
        movie.height = height;
        movie.size = new Rect(width * SwfConstants.TWIPS_PER_PIXEL, height * SwfConstants.TWIPS_PER_PIXEL);

        Frame frame = new Frame();
        movie.frames = new ArrayList<Frame>();
        movie.frames.add(frame);

        PlaceObject po3 = new PlaceObject(Tag.stagPlaceObject3);
        po3.matrix = new Matrix();
        po3.setRef(sprite);
        po3.depth = depth;
        frame.controlTags.add(po3);

        TagEncoder tagEncoder = new TagEncoder();
        MovieEncoder movieEncoder = new MovieEncoder(tagEncoder);
        movieEncoder.export(movie);
        tagEncoder.writeTo(fout);

    }

}
TOP

Related Classes of com.adobe.internal.fxg.util.SWFWriter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.