A Flash Player emulator written in Rust
Go to file
Mike Welsh c1a1ea1b27 Implement DefineBinaryData tag 2016-09-10 20:12:27 -07:00
src Implement DefineBinaryData tag 2016-09-10 20:12:27 -07:00
tests/swfs Implement DefineBinaryData tag 2016-09-10 20:12:27 -07:00
.gitignore Add rustfmt.toml to .gitignore 2016-08-29 13:36:14 -07:00
.travis.yml Use Travis CI 2016-08-30 13:40:55 -07:00
Cargo.toml Use enum_primitve to match against tag codes 2016-08-30 15:32:27 -07:00
LICENSE.md Initial commit 2016-08-29 00:51:32 -07:00
README.md Add Travis build status to README 2016-08-30 13:42:55 -07:00

README.md

swf

Build Status

A Rust library for reading and writing the Adobe Flash SWF file format.

# Cargo.toml
[dependencies]
swf = "0.1"

Reading

extern crate swf;

use std::io::BufReader;
use std::fs::File;

fn main() {
    let f = File::open("file.swf").unwrap();
    let reader = BufReader::new(f);
    let swf = swf::read_swf(reader).unwrap();
    println!("The SWF has {} frames", swf.num_frames);
}

Writing

extern crate swf;

use std::io::BufWriter;
use std::fs::File;
use swf::*;

fn main() {
    let f = File::create("file.swf").unwrap();
    let writer = BufWriter::new(f);
    let swf = Swf {
        version: 6,
        compression: Compression::Zlib,
        stage_size: Rectangle { x_min: 0f32, x_max: 400f32, y_min: 0f32, y_max: 400f32 },
        frame_rate: 60f32,
        num_frames: 1,
        tags: vec![
            Tag::SetBackgroundColor(Color { r: 255, g: 0, b: 0, a: 255 }),
            Tag::ShowFrame
        ]
    };
    swf::write_swf(&swf, writer).unwrap();
}

License

swf-rs is distributed under the terms of the GPLv3 license.

See LICENSE.md for details.