Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ

Transformとは、Javaフラッシュ(.swf)ファイルを分析し、符号化するオープンソースのライブラリです。機能から見ると前回紹介した「Ming: PHP、C/C++、Perl、Python、RubyからSWFフォーマットのFlashを作成するオープンソースのライブラリ(使用例を含む)」と少し似てますね。SWFとFLVの読み込む操作をできます。サーバに入力された文字列をswfに変換して、Flashから読み込むといったこともできます。クラスおよびFlash(SWF)ファイル形式の指定のデータ構造はFlashファイルを発生させるために高レベルapiに実用的なクラスと共に提供されます。

オープンソースのプロジェクトですから、以下は該当プロジェクトの一部の情報です。

開発状況: 製品レベル/安定

想定利用者: 開発者

ライセンス: BSD License

OS: 複数OS(ソースコード互換)

開発言語: JAVA

トピック: データ形式   動的コンテンツ  フレームワーク

下記は公式サイトに公開されているメインな特徴です。

  • Full support for Flash 7, with Flash 9 coming soon.
  • Access to all of Flash giving full control of the Player.
  • Generate Flash files for any version of the desktop Flash Player.
  • Generate Flash Lite files for mobile phones and devices.
  • Easy to use API allows you to edit any flash file.
  • Comprehensive 2-D API to draw shapes from arbitrary complex paths.
  • Use OpenType or TrueType fonts to display text.
  • Direct support for generating images using JPEG, PNG and BMP files.
  • Add Event and streaming sounds from WAV and MP3 files.
  • Plugin architecture for adding decoders for new image and sound formats.
  • Java JDK integration adds support for AWT Fonts and ImageIO readers.
  • Open Source, BSD licence is free for commercial use.

これを使用することで、管理側で入力された文字列をswfに変換し、Flash側で読み込み表示することでFlashにフォントを埋め込むことなく、軽量なアプリの作成が可能になります。

以下は簡単なサンプルソースです(本文最後のコックブックのURLでいろいろなサンプルを参照できます)。


import java.awt.Font;
import java.io.IOException;
import com.flagstone.transform.*;
import com.flagstone.transform.util.*;
int width = 6000;
int height = 1000;
int border = 400;
int fontSize = 240;
try {
FSMovie movie = new FSMovie();
Font font = new Font(”Arial”, Font.PLAIN, 1);
String txt = “The quick, brown, fox jumped over the lazy dog.”;
char[] characters = txt.toCharArray();
java.util.Arrays.sort(characters);
FSTextConstructor constructor = new FSTextConstructor(
movie.newIdentifier(), font);
constructor.willDisplay(characters);
FSDefineFont2 definition = constructor.defineFont();
FSDefineText2 text = constructor.defineText( movie.newIdentifier(), txt, fontSize, new FSColor(0,0,0));
movie.setFrameSize(new FSBounds(-border, -border, width, height));
movie.setFrameRate(1.0f);
movie.add(new FSSetBackgroundColor(FSColorTable.lightblue()));
movie.add(definition);
movie.add(text);
movie.add(new FSPlaceObject2(text.getIdentifier(), 1, 0 , 0));
movie.add(new FSShowFrame());
movie.encodeToFile(”example.swf”);
}
catch (IOException e) {
System.err.println(”Cannot write to file”);
}

リソース

http://sourceforge.net/projects/transform-swf 公式サイト

http://www.flagstonesoftware.com/cookbook/index.html コックブック

3 thoughts on “Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ”

Leave a Reply

Your email address will not be published. Required fields are marked *