Java で Flash の swf ファイルを出力することが可能なライブラリ JavaSWF を使ってみた。

準備

2005-04-04 にリリースされた JavaSWF Baseline をダウンロード&解凍し、出てきたjavaswf.jar をクラスパスに含める。

サンプルで出力したフラッシュのswfファイル

サンプルコード


// JavaSWF - Macromedia Flash File Format
// http://sourceforge.net/projects/javaswf/
import com.anotherbigidea.flash.movie.*;
import com.anotherbigidea.flash.structs.*;
 
// 2005-04-04 にリリースされた JavaSWF Baseline を使ってみたサンプル
// http://sourceforge.net/project/showfiles.php?group_id=61158
public class JavaSwfSample1 {
  
  public static void main(String[] args) throws Exception {
    
    Shape shape1 = createShape1();
    Shape shape2 = createShape2();
    
    Movie movie = new Movie();
    movie.setWidth(400);
    movie.setHeight(300);
    movie.setBackColor(new AlphaColor(255, 255, 255, 0));
    
    Frame frame = movie.appendFrame();
    frame.placeSymbol(shape1, 0, 0);
    frame.placeSymbol(shape2, 50, 50);
    frame.stop();
 
    movie.write("sample1.swf");
  }
  
  private static Shape createShape1(){
    int width = 200;
    int height = 100;
    double lineStyleWidth = 5.0;
    Color color = new AlphaColor(255, 0, 0, 126);
    Shape s = new Shape();
    s.defineLineStyle(lineStyleWidth, color);
    s.setLineStyle(1); // 設定しないと描画されないっぽい
    s.line(width, 0);
    s.line(width, height);
    s.line(0, height);
    s.line(0, 0);
    return s;
  }
  
  private static Shape createShape2(){
    int width = 100;
    int height = 200;
    double lineStyleWidth = 10.0;
    Color color = new AlphaColor(0, 255, 0, 126);
    Shape s = new Shape();
    s.defineLineStyle(lineStyleWidth, color);
    s.setLineStyle(1); // 設定しないと描画されないっぽい
    s.line(width, 0);
    s.line(width, height);
    s.line(0, height);
    s.line(0, 0);
    return s;
  }
}

参考

現在のバージョン ⇒ JavaSWF - Macromedia Flash File Format は 2005-04-04 リリースされた JavaSWF Baseline が最新というけっこう古いライブラリ。

JavaSWFの旧バージョン ⇒ JavaSWF2 - A Java Toolkit for Macromedia Flash Parsing and Generationドキュメント にあるサンプルコードは参考になりそう。

もっと古いバージョン ⇒ Java/SWF

追記: 2007-04-03

他にも Javaで使えそうなFlash生成ライブラリ をちょっとだけ集めてみた。時間があったら試してみたいかも。

tags: zlashdot Java Flash Java JavaSWF

Posted by NI-Lab. (@nilab)