<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DigiTechLog Dot Com &#187; SWF</title>
	<atom:link href="http://digitechlog.com/tag/swf/feed" rel="self" type="application/rss+xml" />
	<link>http://digitechlog.com</link>
	<description>Adobe AIR、Flex、Flash、Java</description>
	<lastBuildDate>Tue, 08 Nov 2011 12:46:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Torta: ほかのグラフィカル実行環境を依存せずファイルをハードディスク上に使用状況を分析するツール</title>
		<link>http://digitechlog.com/2009/02/28/torta-shows-you-where-your-disk-space-being-used.html</link>
		<comments>http://digitechlog.com/2009/02/28/torta-shows-you-where-your-disk-space-being-used.html#comments</comments>
		<pubDate>Sat, 28 Feb 2009 05:47:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[CLisp]]></category>
		<category><![CDATA[Gordon]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[SWF]]></category>
		<category><![CDATA[Torta]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/28/torta-shows-you-where-your-disk-space-being-used.html</guid>
		<description><![CDATA[Tortaとは、GordonというLispのFlash生成ライブラリを利用して、ほかのグラフィカル実行環境を依存せずファイルをハードディスク上に使用状況を分析するオープンソースのツールです。Tortaでは、ハードディスク上のファイルを分析して、FlashのSWFファイルを生成するので、特にほかのクライアントなどのインストールする必要がなくて、Flashサポートされるブラウザで分析結果を見えます。実行するのはCommon Lisp環境を必要なので、Windowsユーザはその環境のインストールが必要です。ちょっと使って見ましたが、Windows上の使用はちょっと不便な感じがあります。Linux／UnixではCLispがインストールされるのは普通ですから、便利となると思います。
※Lisp：リスプ、LISt Processingの略、関数型プログラミング言語の一種で括弧を多用する独自の文法を持つ。ただし、変数への値の代入（束縛）も可能な、手続き型言語の性格をもっているものもある。動的な型付けを行う（値には型情報を持つが変数は型を持たない）、前置記法を持った、コード自身をファーストクラス（一級市民）オブジェクトとして扱うことができる
以下は生成されたSWFです。
 
・関連リンク
http://wiki.freaks-unidos.net/gordon　Gordon公式サイト
http://wiki.freaks-unidos.net/torta　　Torta公式サイト
http://clisp.cons.org/　CLisp公式サイト
Related Posts

JSwiff: Adobe Flash fileの生成、操作のオープンソースのフレームワーク
JavaSWF2: JavaによるFlash解析、生成ライブラリ
Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ
swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール
SWFフォーマット画像ファイルをローカルに保存とするAdobe AIRアプリケーション
CSSでFlexアプリケーションにMP3サウンドファイルを埋め込む操作

]]></description>
			<content:encoded><![CDATA[<p>Tortaとは、GordonというLispのFlash生成ライブラリを利用して、ほかのグラフィカル実行環境を依存せずファイルをハードディスク上に使用状況を分析するオープンソースのツールです。Tortaでは、ハードディスク上のファイルを分析して、FlashのSWFファイルを生成するので、特にほかのクライアントなどのインストールする必要がなくて、Flashサポートされるブラウザで分析結果を見えます。実行するのはCommon Lisp環境を必要なので、Windowsユーザはその環境のインストールが必要です。ちょっと使って見ましたが、Windows上の使用はちょっと不便な感じがあります。Linux／UnixではCLispがインストールされるのは普通ですから、便利となると思います。</p>
<p>※Lisp：<b>リスプ</b>、<b>LIS</b>t <b>P</b>rocessingの略、関数型プログラミング言語の一種で括弧を多用する独自の文法を持つ。ただし、変数への値の代入（束縛）も可能な、手続き型言語の性格をもっているものもある。動的な型付けを行う（値には型情報を持つが変数は型を持たない）、前置記法を持った、コード自身をファーストクラス（一級市民）オブジェクトとして扱うことができる</p>
<p><span id="more-355"></span>以下は生成されたSWFです。
<p> <object codebase="http://active.macromedia.com/flash5/cabs/swflash.cab#version=6,0,23,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="520" height="305"><param name="_cx" value="19050"><param name="_cy" value="10715"><param name="FlashVars" value=""><param name="Movie" value="http://digitechlog.com/ext/sbcl.swf"><param name="Src" value="http://digitechlog.com/ext/sbcl.swf"><param name="WMode" value="Window"><param name="Play" value="0"><param name="Loop" value="-1"><param name="Quality" value="High"><param name="SAlign" value=""><param name="Menu" value="-1"><param name="Base" value=""><param name="AllowScriptAccess" value=""><param name="Scale" value="ShowAll"><param name="DeviceFont" value="0"><param name="EmbedMovie" value="0"><param name="BGColor" value=""><param name="SWRemote" value=""><param name="MovieData" value=""><param name="SeamlessTabbing" value="1"><param name="Profile" value="-1"><param name="ProfileAddress" value=""><param name="ProfilePort" value="1279673668"><param name="AllowNetworking" value="all"><param name="AllowFullScreen" value="false"><embed height="305" width="520" align="" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" loop="true" play="true" src="http://digitechlog.com/ext/sbcl.swf" /></object></p>
<p><strong>・関連リンク</strong></p>
<p><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="url" src="http://digitechlog.com/wp-content/uploads/2009/02/url.jpg" width="34" height="17"><a title="http://wiki.freaks-unidos.net/gordon" href="http://wiki.freaks-unidos.net/gordon">http://wiki.freaks-unidos.net/gordon</a>　Gordon公式サイト</p>
<p><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="url" src="http://digitechlog.com/wp-content/uploads/2009/02/url.jpg" width="34" height="17"><a title="http://wiki.freaks-unidos.net/torta" href="http://wiki.freaks-unidos.net/torta">http://wiki.freaks-unidos.net/torta</a>　　Torta公式サイト</p>
<p><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="url" src="http://digitechlog.com/wp-content/uploads/2009/02/url.jpg" width="34" height="17"><a title="http://clisp.cons.org/" href="http://clisp.cons.org/">http://clisp.cons.org/</a>　CLisp公式サイト</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/02/16/jswiff-an-open-source-pure-java-framework-for-adobe-flash-file-creation-and-manipulation.html" title="JSwiff: Adobe Flash fileの生成、操作のオープンソースのフレームワーク">JSwiff: Adobe Flash fileの生成、操作のオープンソースのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html" title="JavaSWF2: JavaによるFlash解析、生成ライブラリ">JavaSWF2: JavaによるFlash解析、生成ライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html" title="Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ">Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html" title="swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール">swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール</a></li>
<li><a href="http://digitechlog.com/2009/01/16/the-tutorial-on-how-to-save-swf-file-from-an-image-bitmap-in-adobe-air.html" title="SWFフォーマット画像ファイルをローカルに保存とするAdobe AIRアプリケーション">SWFフォーマット画像ファイルをローカルに保存とするAdobe AIRアプリケーション</a></li>
<li><a href="http://digitechlog.com/2008/12/21/how-to-use-different-mp3-sound-file-with-css-in-flex.html" title="CSSでFlexアプリケーションにMP3サウンドファイルを埋め込む操作">CSSでFlexアプリケーションにMP3サウンドファイルを埋め込む操作</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/28/torta-shows-you-where-your-disk-space-being-used.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSwiff: Adobe Flash fileの生成、操作のオープンソースのフレームワーク</title>
		<link>http://digitechlog.com/2009/02/16/jswiff-an-open-source-pure-java-framework-for-adobe-flash-file-creation-and-manipulation.html</link>
		<comments>http://digitechlog.com/2009/02/16/jswiff-an-open-source-pure-java-framework-for-adobe-flash-file-creation-and-manipulation.html#comments</comments>
		<pubDate>Mon, 16 Feb 2009 06:39:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[JSwiff]]></category>
		<category><![CDATA[SWF]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[フレームワーク]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/16/jswiff-an-open-source-pure-java-framework-for-adobe-flash-file-creation-and-manipulation.html</guid>
		<description><![CDATA[JSwiffとは、ピュアJavaでAdobe Flash fileの生成、操作のオープンソースのフレームワークです。
Flashファイルの読み書き機能を提供しています。紹介したTransform、JavaSWF2、JGeneratorと同じのようなJavaで実装されたフレームワークですが、GoogleやYahooで検索して見ましたが、日本語世界にJSwiffの使用者は多くないようです。
厳しいライセンスGPLを採用するのは、原因の一つかと思います。
 
Javaには、jpeg、png、gifなど画像ファイルの原寸のサイズを取得することができますが、SWFの形式だったら、取得できないです。JSwiffを使うと、java上でSWFのサイズ取得することを簡単でできます。以下はサンプルソースです。

import java.io.*;
import&#160;com.jswiff.*;
import&#160;com.jswiff.listeners.*;
import&#160;com.jswiff.swfrecords.Rect;
&#160;
public&#160;class Test {
&#160; &#160; public&#160;static void main(String[] args) {
&#160; &#160; &#160; &#160; String&#160;path = &#34;****.swf&#34;;
&#160; &#160; &#160; &#160; try&#160;{
&#160; &#160; &#160; &#160; &#160; &#160; SWFReader&#160;reader = new SWFReader(new FileInputStream(new File(path)));
&#160; &#160; &#160; &#160; &#160; &#160; SWFDocumentReader&#160;docReader = new SWFDocumentReader();
&#160; &#160; &#160; &#160; &#160; &#160; reader.addListener(docReader);
&#160; &#160; &#160; &#160; &#160; &#160; reader.read();
&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>JSwiffとは、ピュアJavaでAdobe Flash fileの生成、操作のオープンソースのフレームワークです。</p>
<p>Flashファイルの読み書き機能を提供しています。紹介した<a href="http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html" target="_blank">Transform</a>、<a href="http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html" target="_blank">JavaSWF2</a>、<a href="http://digitechlog.com/2009/02/12/jgenerator-the-web-server-production-application-dynamically-combine-text-graphics-and-sound-to-build-rich-flash-content.html" target="_blank">JGenerator</a>と同じのようなJavaで実装されたフレームワークですが、GoogleやYahooで検索して見ましたが、日本語世界にJSwiffの使用者は多くないようです。</p>
<p>厳しいライセンスGPLを採用するのは、原因の一つかと思います。</p>
<p><span id="more-319"></span> </p>
<p>Javaには、jpeg、png、gifなど画像ファイルの原寸のサイズを取得することができますが、SWFの形式だったら、取得できないです。JSwiffを使うと、java上でSWFのサイズ取得することを簡単でできます。以下はサンプルソースです。</p>
<p></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">jswiff</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">jswiff</span><span style="color: Gray;">.</span><span style="color: Blue;">listeners</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">jswiff</span><span style="color: Gray;">.</span><span style="color: Blue;">swfrecords</span><span style="color: Gray;">.</span><span style="color: Blue;">Rect</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Test</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">path</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">****.swf</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SWFReader</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">reader</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">SWFReader</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">FileInputStream</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">File</span><span style="color: Olive;">(</span><span style="color: Blue;">path</span><span style="color: Olive;">)))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SWFDocumentReader</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">docReader</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">SWFDocumentReader</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">reader</span><span style="color: Gray;">.</span><span style="color: Blue;">addListener</span><span style="color: Olive;">(</span><span style="color: Blue;">docReader</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">reader</span><span style="color: Gray;">.</span><span style="color: Blue;">read</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SWFDocument</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">doc</span><span style="color: Gray;"> = </span><span style="color: Blue;">docReader</span><span style="color: Gray;">.</span><span style="color: Blue;">getDocument</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Rect</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">rect</span><span style="color: Gray;"> = </span><span style="color: Blue;">doc</span><span style="color: Gray;">.</span><span style="color: Blue;">getFrameSize</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">catch</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">Exception</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">printStackTrace</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>以下は公式サイトからの「Hello、World」のサンプルです。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">private</span><span style="color: Gray;"> </span><span class="hl-types">static</span><span style="color: Gray;"> </span><span style="color: Blue;">SWFDocument</span><span style="color: Gray;"> </span><span style="color: Blue;">createDocument</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// create a new SWF document</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">SWFDocument</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">document</span><span style="color: Gray;">&nbsp; &nbsp; = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">SWFDocument</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// first we define a font for the text</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// get a character ID for the font</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span class="hl-types">int</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fontId</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = </span><span style="color: Blue;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">getNewCharacterId</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// use a standard font (e.g. Arial), we don't want to define shapes for each glyph</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">DefineFont2</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">defineFont2</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">DefineFont2</span><span style="color: Olive;">(</span><span style="color: Blue;">fontId</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Arial</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: Green;">null</span><span style="color: Gray;">, </span><span style="color: Green;">null</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">addTag</span><span style="color: Olive;">(</span><span style="color: Blue;">defineFont2</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// get a character ID for our text</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span class="hl-types">int</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">textId</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = </span><span style="color: Blue;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">getNewCharacterId</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// dynamic text is a good way to go, we use DefineEditText for this</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// we don't care about bounds and variables</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">DefineEditText</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">defineEditText</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">DefineEditText</span><span style="color: Olive;">(</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">textId</span><span style="color: Gray;">, </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Rect</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: Green;">null</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// we have set the text bounds to a zero rectangle;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// to see the whole text, we set the autosize flag</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">defineEditText</span><span style="color: Gray;">.</span><span style="color: Blue;">setAutoSize</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// assign the font defined above to the text, set font size to 24 px (in twips!)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">defineEditText</span><span style="color: Gray;">.</span><span style="color: Blue;">setFont</span><span style="color: Olive;">(</span><span style="color: Blue;">fontId</span><span style="color: Gray;">, </span><span style="color: Maroon;">20</span><span style="color: Gray;"> * </span><span style="color: Maroon;">24</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// set text color to red</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">defineEditText</span><span style="color: Gray;">.</span><span style="color: Blue;">setTextColor</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">RGBA</span><span style="color: Olive;">(</span><span style="color: Maroon;">255</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">255</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// don't let viewers mess around with our text</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">defineEditText</span><span style="color: Gray;">.</span><span style="color: Blue;">setReadOnly</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// finally set the text</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">defineEditText</span><span style="color: Gray;">.</span><span style="color: Blue;">setInitialText</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Hello world!</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">addTag</span><span style="color: Olive;">(</span><span style="color: Blue;">defineEditText</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// place our text at depth 1</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">PlaceObject2</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">placeObject2</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">PlaceObject2</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">placeObject2</span><span style="color: Gray;">.</span><span style="color: Blue;">setCharacterId</span><span style="color: Olive;">(</span><span style="color: Blue;">textId</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// place text at position (45; 10) (in twips!)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">placeObject2</span><span style="color: Gray;">.</span><span style="color: Blue;">setMatrix</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Matrix</span><span style="color: Olive;">(</span><span style="color: Maroon;">20</span><span style="color: Gray;"> * </span><span style="color: Maroon;">45</span><span style="color: Gray;">, </span><span style="color: Maroon;">20</span><span style="color: Gray;"> * </span><span style="color: Maroon;">10</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">addTag</span><span style="color: Olive;">(</span><span style="color: Blue;">placeObject2</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// place text</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">addTag</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">ShowFrame</span><span style="color: Olive;">())</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// show frame</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">document</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li></ol></div>
<p><strong>リソース</strong></p>
<p>・<a title="http://www.jswiff.com" href="http://www.jswiff.com"><strong>http://www.jswiff.com</strong></a>　公式サイト</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html" title="AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク">AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/09/12/an-opensource-framework-can-be-used-to-develop-flash.html" title="CakePHP: PHP用のWebアプリケーションを効率よく作成するためオープンソースのフレームワーク">CakePHP: PHP用のWebアプリケーションを効率よく作成するためオープンソースのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/05/26/lowra-pixlib-low-level-rework-on-actionscript-3.html" title="LowRA(Pixlib): AS3でイベントハンドラ、ログ処理、メディア管理など機能がサポートされるフレームワーク">LowRA(Pixlib): AS3でイベントハンドラ、ログ処理、メディア管理など機能がサポートされるフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/05/18/mc-tween-open-source-actionscript-framework-save-your-time.html" title="MC Tween: Flashマイクロサイトを１日で制作可能となるオープンソースのASフレームワーク">MC Tween: Flashマイクロサイトを１日で制作可能となるオープンソースのASフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/04/23/asioc-simple-implementation-dependency-injection-di-pattern-also-known-as-inversion-of-control-ioc-written-in-actionscript.html" title="ASIoC: JavaのSpringらしいActionScript 2のオープンソースのフレームワーク">ASIoC: JavaのSpringらしいActionScript 2のオープンソースのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/04/21/asap-actionscript-application-framework-open-source-flash-actionscript-rich-internet-application-library.html" title="ASAP: オープンソースのFlash ActionScript 2.0/3.0 Flashアプリケーションの共通の挑戦に実用的で、再使用可能なパターンベースの解決を提供するフレームワーク">ASAP: オープンソースのFlash ActionScript 2.0/3.0 Flashアプリケーションの共通の挑戦に実用的で、再使用可能なパターンベースの解決を提供するフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html" title="JavaSWF2: JavaによるFlash解析、生成ライブラリ">JavaSWF2: JavaによるFlash解析、生成ライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html" title="Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ">Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/16/jswiff-an-open-source-pure-java-framework-for-adobe-flash-file-creation-and-manipulation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaSWF2: JavaによるFlash解析、生成ライブラリ</title>
		<link>http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html</link>
		<comments>http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html#comments</comments>
		<pubDate>Wed, 11 Feb 2009 09:48:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[JavaSWF2]]></category>
		<category><![CDATA[SWF]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[ライブラリ]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html</guid>
		<description><![CDATA[JavaSWF2とは、 JavaによるFlashを解析、生成するオープンソースライブラリです。おそらく何か頭中にそういうものがあるかというイメージがあるでしょう？そうそう、「はんにん」は、前回紹介した「Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ」です。
JavaSWF2の基本的な機能としては、FlashのSWFファイルからテキストに変換することです。オブジェクトモジュールを使ってテキストとか、JPEG画像などのロード、生成もできます。XMLファイルからSWFへの変換もできます。

上記のような機能は使いやすいと思いますが、残念なのは、JavaSWF2の開発者たち、最後の更新時刻は２００５年です。
以下はXMLからSWFに変換するソースコードです。ほかのサンプルソースは公式サイトに見つかれます。
import java.io.*;
import&#160;java.awt.*;
import&#160;com.anotherbigidea.flash.*;
import&#160;com.anotherbigidea.flash.movie.*;
import&#160;com.anotherbigidea.flash.interfaces.*;
import&#160;com.anotherbigidea.flash.writers.*;
import&#160;com.anotherbigidea.util.xml.Xerces;
&#160;
/**
 * Example of converting an XML file to a SWF file.
 * Key point is the use of the SWFSaxWriter class - this implements
 * the standard SAX2 ContentHandler interface (via its parents) and
 * can be driven directly from any compliant SAX2 XML parser.
 * 
 * SWFSaxWriter drives [...]]]></description>
			<content:encoded><![CDATA[<p>JavaSWF2とは、 JavaによるFlashを解析、生成するオープンソースライブラリです。おそらく何か頭中にそういうものがあるかというイメージがあるでしょう？そうそう、「はんにん」は、前回紹介した「<a href="http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html">Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ</a>」です。</p>
<p>JavaSWF2の基本的な機能としては、FlashのSWFファイルからテキストに変換することです。オブジェクトモジュールを使ってテキストとか、JPEG画像などのロード、生成もできます。XMLファイルからSWFへの変換もできます。</p>
<p><span id="more-313"></span>
<p>上記のような機能は使いやすいと思いますが、残念なのは、JavaSWF2の開発者たち、最後の更新時刻は２００５年です。</p>
<p>以下はXMLからSWFに変換するソースコードです。ほかのサンプルソースは公式サイトに見つかれます。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">awt</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">flash</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">flash</span><span style="color: Gray;">.</span><span style="color: Blue;">movie</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">flash</span><span style="color: Gray;">.</span><span style="color: Blue;">interfaces</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">flash</span><span style="color: Gray;">.</span><span style="color: Blue;">writers</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">anotherbigidea</span><span style="color: Gray;">.</span><span style="color: Blue;">util</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">Xerces</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;"> * Example of converting an XML file to a SWF file.</span></li>
<li><span style="color: #ffa500;"> * Key point is the use of the SWFSaxWriter class - this implements</span></li>
<li><span style="color: #ffa500;"> * the standard SAX2 ContentHandler interface (via its parents) and</span></li>
<li><span style="color: #ffa500;"> * can be driven directly from any compliant SAX2 XML parser.</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * SWFSaxWriter drives an implementation of the SWFTagTypes interface.</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * To convert SWF to XML use the main method of the </span></li>
<li><span style="color: #ffa500;"> * com.anotherbigidea.flash.readers.SWFSaxParser class.</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * The DTD for the XML is given in javaswf-dtd.txt</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * Uses the Apache Xerces XML parser - download from apache.org.</span></li>
<li><span style="color: #ffa500;"> * </span></li>
<li><span style="color: #ffa500;"> * Arg[0] = input xml filename</span></li>
<li><span style="color: #ffa500;"> * Arg[1] = output swf filename</span></li>
<li><span style="color: #ffa500;"> */</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Xml2Swf</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">throws</span><span style="color: Gray;"> </span><span style="color: Blue;">Exception</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">FileInputStream</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">in</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">FileInputStream</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SWFWriter</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swftags</span><span style="color: Gray;">&nbsp;&nbsp; = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">SWFWriter</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">TagWriter</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">tagwriter</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">TagWriter</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">swftags</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SWFSaxWriter</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">saxout</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">SWFSaxWriter</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">tagwriter</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Xerces</span><span style="color: Gray;">.</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">saxout</span><span style="color: Gray;">, </span><span style="color: Blue;">in</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p><strong>リソース</strong></p>
<p>・<a title="http://sourceforge.net/projects/javaswf/" href="http://sourceforge.net/projects/javaswf/">http://sourceforge.net/projects/javaswf/</a>　公式サイト</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html" title="Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ">Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html" title="swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール">swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール</a></li>
<li><a href="http://digitechlog.com/2010/04/19/fzip-actionscript-3-open-source-class-library.html" title="FZip: ZIP読込み、作成用AS3のライブラリ">FZip: ZIP読込み、作成用AS3のライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ AS3で非同期処理のオープンソースのライブラリ一覧</a></li>
<li><a href="http://digitechlog.com/2010/02/28/as3soundeditorlib-actionscript-3-library-for-sound-playback-spectrum-display-and-cue-point-display.html" title="as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ">as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/28/box2dflashas3-open-source-physics-library-box2d.html" title="Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ">Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/26/flartoolkit-open-source-augmented-reality-in-flash.html" title="FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ">FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/25/wow-engine-free-as3-open-source-physics-engine.html" title="WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ">WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ</title>
		<link>http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html</link>
		<comments>http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html#comments</comments>
		<pubDate>Wed, 11 Feb 2009 03:51:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Flagstone]]></category>
		<category><![CDATA[SWF]]></category>
		<category><![CDATA[Transform]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[ライブラリ]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html</guid>
		<description><![CDATA[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
トピック：　データ形式&#160;&#160; 動的コンテンツ&#160; フレームワーク
下記は公式サイトに公開されているメインな特徴です。

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 [...]]]></description>
			<content:encoded><![CDATA[<p>Transformとは、Javaフラッシュ(.swf)ファイルを分析し、符号化するオープンソースのライブラリです。機能から見ると前回紹介した「<a href="http://digitechlog.com/2009/02/10/ming-is-a-library-for-generating-adobe-macromedia-flash-files-swf-written-in-c.html">Ming: PHP、C/C++、Perl、Python、RubyからSWFフォーマットのFlashを作成するオープンソースのライブラリ（使用例を含む）</a>」と少し似てますね。SWFとFLVの読み込む操作をできます。サーバに入力された文字列をswfに変換して、Flashから読み込むといったこともできます。クラスおよびFlash(SWF)ファイル形式の指定のデータ構造はFlashファイルを発生させるために高レベルapiに実用的なクラスと共に提供されます。</p>
<p><span id="more-310"></span> </p>
<p>オープンソースのプロジェクトですから、以下は該当プロジェクトの一部の情報です。</p>
<p><strong>開発状況：</strong>　製品レベル/安定
<p><strong>想定利用者：</strong>　開発者
<p><strong>ライセンス：</strong>　BSD License
<p><strong>OS：</strong>　複数OS(ソースコード互換)
<p><strong>開発言語：</strong>　JAVA
<p><strong>トピック：</strong>　データ形式&nbsp;&nbsp; 動的コンテンツ&nbsp; フレームワーク
<p>下記は公式サイトに公開されているメインな特徴です。
<ul>
<li>Full support for Flash 7, with Flash 9 coming soon.
<li>Access to all of Flash giving full control of the Player.
<li>Generate Flash files for any version of the desktop Flash Player.
<li>Generate Flash Lite files for mobile phones and devices.
<li>Easy to use API allows you to edit any flash file.
<li>Comprehensive 2-D API to draw shapes from arbitrary complex paths.
<li>Use OpenType or TrueType fonts to display text.
<li>Direct support for generating images using JPEG, PNG and BMP files.
<li>Add Event and streaming sounds from WAV and MP3 files.
<li>Plugin architecture for adding decoders for new image and sound formats.
<li>Java JDK integration adds support for AWT Fonts and ImageIO readers.
<li>Open Source, BSD licence is free for commercial use. </li>
</ul>
<p>これを使用することで、管理側で入力された文字列をswfに変換し、Flash側で読み込み表示することでFlashにフォントを埋め込むことなく、軽量なアプリの作成が可能になります。</p>
<p>以下は簡単なサンプルソースです（本文最後のコックブックのURLでいろいろなサンプルを参照できます）。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">awt</span><span style="color: Gray;">.</span><span style="color: Blue;">Font</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">IOException</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">flagstone</span><span style="color: Gray;">.</span><span style="color: Blue;">transform</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">com</span><span style="color: Gray;">.</span><span style="color: Blue;">flagstone</span><span style="color: Gray;">.</span><span style="color: Blue;">transform</span><span style="color: Gray;">.</span><span style="color: Blue;">util</span><span style="color: Gray;">.*;</span></li>
<li><span class="hl-types">int</span><span style="color: Gray;"> </span><span style="color: Blue;">width</span><span style="color: Gray;"> = </span><span style="color: Maroon;">6000</span><span style="color: Gray;">;</span></li>
<li><span class="hl-types">int</span><span style="color: Gray;"> </span><span style="color: Blue;">height</span><span style="color: Gray;"> = </span><span style="color: Maroon;">1000</span><span style="color: Gray;">;</span></li>
<li><span class="hl-types">int</span><span style="color: Gray;"> </span><span style="color: Blue;">border</span><span style="color: Gray;"> = </span><span style="color: Maroon;">400</span><span style="color: Gray;">;</span></li>
<li><span class="hl-types">int</span><span style="color: Gray;"> </span><span style="color: Blue;">fontSize</span><span style="color: Gray;"> = </span><span style="color: Maroon;">240</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">FSMovie</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">movie</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">FSMovie</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">Font</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">font</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Font</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">Arial</span><span style="color: Gray;">”, </span><span style="color: Blue;">Font</span><span style="color: Gray;">.</span><span style="color: Blue;">PLAIN</span><span style="color: Gray;">, </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">txt</span><span style="color: Gray;"> = “</span><span style="color: Blue;">The</span><span style="color: Gray;"> </span><span style="color: Blue;">quick</span><span style="color: Gray;">, </span><span style="color: Blue;">brown</span><span style="color: Gray;">, </span><span style="color: Blue;">fox</span><span style="color: Gray;"> </span><span style="color: Blue;">jumped</span><span style="color: Gray;"> </span><span style="color: Blue;">over</span><span style="color: Gray;"> </span><span style="color: Blue;">the</span><span style="color: Gray;"> </span><span style="color: Blue;">lazy</span><span style="color: Gray;"> </span><span style="color: Blue;">dog</span><span style="color: Gray;">.”;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span class="hl-types">char</span><span style="color: Olive;">[]</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">characters</span><span style="color: Gray;"> = </span><span style="color: Blue;">txt</span><span style="color: Gray;">.</span><span style="color: Blue;">toCharArray</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">util</span><span style="color: Gray;">.</span><span style="color: Blue;">Arrays</span><span style="color: Gray;">.</span><span style="color: Blue;">sort</span><span style="color: Olive;">(</span><span style="color: Blue;">characters</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">FSTextConstructor</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">constructor</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">FSTextConstructor</span><span style="color: Olive;">(</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">newIdentifier</span><span style="color: Olive;">()</span><span style="color: Gray;">, </span><span style="color: Blue;">font</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">constructor</span><span style="color: Gray;">.</span><span style="color: Blue;">willDisplay</span><span style="color: Olive;">(</span><span style="color: Blue;">characters</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">FSDefineFont2</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">definition</span><span style="color: Gray;"> = </span><span style="color: Blue;">constructor</span><span style="color: Gray;">.</span><span style="color: Blue;">defineFont</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">FSDefineText2</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">text</span><span style="color: Gray;"> = </span><span style="color: Blue;">constructor</span><span style="color: Gray;">.</span><span style="color: Blue;">defineText</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">newIdentifier</span><span style="color: Olive;">()</span><span style="color: Gray;">, </span><span style="color: Blue;">txt</span><span style="color: Gray;">, </span><span style="color: Blue;">fontSize</span><span style="color: Gray;">, </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">FSColor</span><span style="color: Olive;">(</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">setFrameSize</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">FSBounds</span><span style="color: Olive;">(</span><span style="color: Gray;">-</span><span style="color: Blue;">border</span><span style="color: Gray;">, -</span><span style="color: Blue;">border</span><span style="color: Gray;">, </span><span style="color: Blue;">width</span><span style="color: Gray;">, </span><span style="color: Blue;">height</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">setFrameRate</span><span style="color: Olive;">(</span><span style="color: Maroon;">1.0</span><span style="color: Blue;">f</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">FSSetBackgroundColor</span><span style="color: Olive;">(</span><span style="color: Blue;">FSColorTable</span><span style="color: Gray;">.</span><span style="color: Blue;">lightblue</span><span style="color: Olive;">()))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Blue;">definition</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Blue;">text</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">FSPlaceObject2</span><span style="color: Olive;">(</span><span style="color: Blue;">text</span><span style="color: Gray;">.</span><span style="color: Blue;">getIdentifier</span><span style="color: Olive;">()</span><span style="color: Gray;">, </span><span style="color: Maroon;">1</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;"> , </span><span style="color: Maroon;">0</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">add</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">FSShowFrame</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">movie</span><span style="color: Gray;">.</span><span style="color: Blue;">encodeToFile</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">example</span><span style="color: Gray;">.</span><span style="color: Blue;">swf</span><span style="color: Gray;">”</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">catch</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">IOException</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">err</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">Cannot</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">write</span><span style="color: Gray;"> </span><span style="color: Blue;">to</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">”</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p><strong>リソース</strong>
<p>・<a title="http://sourceforge.net/projects/transform-swf" href="http://sourceforge.net/projects/transform-swf">http://sourceforge.net/projects/transform-swf</a>　公式サイト
<p>・<a title="http://www.flagstonesoftware.com/cookbook/index.html" href="http://www.flagstonesoftware.com/cookbook/index.html">http://www.flagstonesoftware.com/cookbook/index.html</a>　コックブック</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html" title="JavaSWF2: JavaによるFlash解析、生成ライブラリ">JavaSWF2: JavaによるFlash解析、生成ライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/04/19/fzip-actionscript-3-open-source-class-library.html" title="FZip: ZIP読込み、作成用AS3のライブラリ">FZip: ZIP読込み、作成用AS3のライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ AS3で非同期処理のオープンソースのライブラリ一覧</a></li>
<li><a href="http://digitechlog.com/2010/02/28/as3soundeditorlib-actionscript-3-library-for-sound-playback-spectrum-display-and-cue-point-display.html" title="as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ">as3soundeditorlib: オープンソースのActionScript 3サウンド編集ライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/28/box2dflashas3-open-source-physics-library-box2d.html" title="Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ">Box2DFlashAS3: 物理演算シミュレーションを可能にするActionScriptライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/26/flartoolkit-open-source-augmented-reality-in-flash.html" title="FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ">FLARToolKit: AR（拡張現実）ってのをFlashで簡単に作ることができるライブラリ</a></li>
<li><a href="http://digitechlog.com/2010/01/25/wow-engine-free-as3-open-source-physics-engine.html" title="WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ">WOW-Engine: オープンソースのActionScript3用3D物理エンジンライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/09/30/fluorine-flash-remoting-for-dot-net.html" title="FluorineFx: Flexと.NET間でAMF通信できるライブラリ">FluorineFx: Flexと.NET間でAMF通信できるライブラリ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール</title>
		<link>http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html</link>
		<comments>http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html#comments</comments>
		<pubDate>Sun, 01 Feb 2009 13:50:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[SWF]]></category>
		<category><![CDATA[swfmill]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[オープンソース]]></category>
		<category><![CDATA[ツール]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html</guid>
		<description><![CDATA[swfmillとは、swfファイルを解析してxmlファイルに変換したり、逆にxmlからswfファイルを生成することができるツールである。内部的にMTASC（前回紹介した：MTASC（Motion-Twin ActionScript2 Compiler）: フリーのコマンドラインActionScript(Flash)コンパイラを参照してください）を利用し、FlashのSWFファイルを生成とする。
SWF内に画像やフォントが埋め込まれている場合、それらを取り出してdataとしてXML内に出力することができる。なので、そのXMLを再度SWFにすると、画像も再現されるのだ。これができるのは凄い。とは言え、SWFからXMLを生成し、再度SWFを生成し直したときの再現は完璧ではない。アクションの一部はうまく動作しなくなった。だが、画像のスライドショー等、簡単なSWFであれば十分XMLをベースに生成できそうだ。簡単でと言えば、SWFMILLでできること：
 
・外部画像のシンボル化：このシンボルにリンケージを付けてAS2からアタッチムービーできるようになる。・外部SWFのシンボル化：このシンボルにリンケージを付けてAS2からアタッチムービーできるだけでなく、外部SWF内の子要素MCまでアクセスできる。・外部音声データのシンボル化・MCの生成：AS2を使わなくとも、ライブラリーからシンボルをステージにドロップしてインスタンスを生成するようにステージにMCを生成できる。・キーフレームの生成：タイムラインを生成できる。・フォントの埋め込み・テキストフィールドの生成
swfmillのインストール条件
swfmillはいくつかの依存ライブラリがあるため、必要なライブラリがインストールされていないとインストールできません。それぞれのライブラリがインストールされているかどうかは環境によって異なりますのでそれぞれ対応して下さい。たとえば、libxmlが不足していると別途インストールするひつようです。また、コンパイル及びインストールを行う必要がありますので、root権限とgccコンパイラのあるサーバー環境が必要です。
swfmillのインストール手順
swfmillをダウンロードします。
[root@host src]# wget http://swfmill.org/releases/swfmill-0.2.12.tar.gz
ダウンロードしたファイルを解凍し、解凍したディレクトリに移動します。
[root@host src]# tar xzf swfmill-0.2.12.tar.gz
[root@host&#160;src]# cd swfmill-0.2.12
Flash1.1に対応できるようにパッチをダウンロードして適用します。
[root@host swfmill-0.2.12]# wget http://lab.klab.org/files/flash/encoding.patch
[root@host&#160;swfmill-0.2.12]# patch -p1 &#60; encoding.patch
ビルドしてみます。
[root@host swfmill-0.2.12]# ./configure
…
checking for XML... configure: error: Package requirements (libxml-2.0) were not met:
No package 'libxml-2.0' found
xmlのライブラリが足りないようでしたので必要なライブラリをインストールします。
[root@host swfmill-0.2.12]# yum install libxslt-devel
再度ビルドします。
[root@host swfmill-0.2.12]# ./configure
ビルドが成功したのでインストールします。
[root@host swfmill-0.2.12]# make
[root@host&#160;swfmill-0.2.12]# make install
インストールが成功しました。
使い方：
SWFをXMLに変換する
$ swfmill swf2xml main.swf main.xml
XMLをSWFに変換する
$ swfmill xml2swf main.xml main.swf
画像・音声の入れ替え
元の画像ファイルと変更する画像ファイルを用意する(PHPソースコード)
$search = [...]]]></description>
			<content:encoded><![CDATA[<p>swfmillとは、swfファイルを解析してxmlファイルに変換したり、逆にxmlからswfファイルを生成することができるツールである。内部的にMTASC（前回紹介した：<a href="http://digitechlog.com/2009/01/23/actionscript-2-open-source-free-compiler-mtasc.html">MTASC（Motion-Twin ActionScript2 Compiler）: フリーのコマンドラインActionScript(Flash)コンパイラ</a>を参照してください）を利用し、FlashのSWFファイルを生成とする。</p>
<p>SWF内に画像やフォントが埋め込まれている場合、それらを取り出してdataとしてXML内に出力することができる。なので、そのXMLを再度SWFにすると、画像も再現されるのだ。これができるのは凄い。とは言え、SWFからXMLを生成し、再度SWFを生成し直したときの再現は完璧ではない。アクションの一部はうまく動作しなくなった。だが、画像のスライドショー等、簡単なSWFであれば十分XMLをベースに生成できそうだ。簡単でと言えば、SWFMILLでできること：</p>
<p><span id="more-284"></span> </p>
<p>・外部画像のシンボル化：このシンボルにリンケージを付けてAS2からアタッチムービーできるようになる。<br />・外部SWFのシンボル化：このシンボルにリンケージを付けてAS2からアタッチムービーできるだけでなく、外部SWF内の子要素MCまでアクセスできる。<br />・外部音声データのシンボル化<br />・MCの生成：AS2を使わなくとも、ライブラリーからシンボルをステージにドロップしてインスタンスを生成するようにステージにMCを生成できる。<br />・キーフレームの生成：タイムラインを生成できる。<br />・フォントの埋め込み<br />・テキストフィールドの生成</p>
<p><strong>swfmillのインストール条件</strong></p>
<p>swfmillはいくつかの依存ライブラリがあるため、必要なライブラリがインストールされていないとインストールできません。<br />それぞれのライブラリがインストールされているかどうかは環境によって異なりますのでそれぞれ対応して下さい。<br />たとえば、libxmlが不足していると別途インストールするひつようです。<br />また、コンパイル及びインストールを行う必要がありますので、root権限とgccコンパイラのあるサーバー環境が必要です。
<p><strong>swfmillのインストール手順</strong></p>
<p>swfmillをダウンロードします。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">src</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">wget</span><span style="color: Gray;"> </span><span style="color: Blue;">http</span><span style="color: Gray;">:</span><span style="color: #ffa500;">//swfmill.org/releases/swfmill-0.2.12.tar.gz</span></li></ol></div>
<p>ダウンロードしたファイルを解凍し、解凍したディレクトリに移動します。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">src</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">tar</span><span style="color: Gray;"> </span><span style="color: Blue;">xzf</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Gray;">.</span><span style="color: Blue;">tar</span><span style="color: Gray;">.</span><span style="color: Blue;">gz</span></li>
<li><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">src</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">cd</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span></li></ol></div>
<p>Flash1.1に対応できるようにパッチをダウンロードして適用します。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">wget</span><span style="color: Gray;"> </span><span style="color: Blue;">http</span><span style="color: Gray;">:</span><span style="color: #ffa500;">//lab.klab.org/files/flash/encoding.patch</span></li>
<li><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">patch</span><span style="color: Gray;"> -</span><span style="color: Blue;">p1</span><span style="color: Gray;"> &lt; </span><span style="color: Blue;">encoding</span><span style="color: Gray;">.</span><span style="color: Blue;">patch</span></li></ol></div>
<p>ビルドしてみます。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># .</span><span style="color: #8b0000;">/</span><span style="color: Red;">configure</span></li>
<li><span style="color: Red;">…</span></li>
<li><span style="color: Red;">checking for XML... configure: error: Package requirements (libxml-2.0) were not met:</span></li>
<li><span style="color: Red;">No package 'libxml-2.0' found</span></li></ol></div>
<p>xmlのライブラリが足りないようでしたので必要なライブラリをインストールします。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">yum</span><span style="color: Gray;"> </span><span style="color: Teal;">install</span><span style="color: Gray;"> </span><span style="color: Blue;">libxslt</span><span style="color: Gray;">-</span><span style="color: Blue;">devel</span></li></ol></div>
<p>再度ビルドします。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># .</span><span style="color: #8b0000;">/</span><span style="color: Red;">configure</span></li></ol></div>
<p>ビルドが成功したのでインストールします。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;"> </span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">make</span></li>
<li><span style="color: Olive;">[</span><span style="color: Blue;">root</span><span style="color: Gray;">@</span><span style="color: Blue;">host</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swfmill</span><span style="color: Gray;">-</span><span style="color: Maroon;">0.2.12</span><span style="color: Olive;">]</span><span style="color: Gray;"># </span><span style="color: Blue;">make</span><span style="color: Gray;"> </span><span style="color: Teal;">install</span></li></ol></div>
<p>インストールが成功しました。</p>
<p><strong>使い方：</strong></p>
<p><strong>SWFをXMLに変換する</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$ </span><span style="color: Blue;">swfmill</span><span style="color: Gray;"> </span><span style="color: Blue;">swf2xml</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;">.</span><span style="color: Blue;">swf</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span></li></ol></div>
<p><strong>XMLをSWFに変換する</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">$ </span><span style="color: Blue;">swfmill</span><span style="color: Gray;"> </span><span style="color: Blue;">xml2swf</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;">.</span><span style="color: Blue;">swf</span></li></ol></div>
<p><strong>画像・音声の入れ替え</strong></p>
<p>元の画像ファイルと変更する画像ファイルを用意する(PHPソースコード)</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #00008b;">$search</span><span style="color: Gray;"> = </span><span style="color: Blue;">base64_encode</span><span style="color: Olive;">(</span><span style="color: #00008b;">$befor_img</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$replace</span><span style="color: Gray;"> = </span><span style="color: Blue;">base64_encode</span><span style="color: Olive;">(</span><span style="color: #00008b;">$after_img</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$xml_str</span><span style="color: Gray;"> = </span><span style="color: Blue;">file_get_contents</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">main.xml</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$xml_str</span><span style="color: Gray;"> = </span><span style="color: Blue;">str_replace</span><span style="color: Olive;">(</span><span style="color: #00008b;">$search</span><span style="color: Gray;">, </span><span style="color: #00008b;">$replace</span><span style="color: Gray;">, </span><span style="color: #00008b;">$xml_str</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p>画像の抽出が上手く行かない場合</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #00008b;">$search</span><span style="color: Gray;"> = </span><span style="color: Blue;">base64_encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">\xFF\xD9\xFF\xD8</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">.</span><span style="color: #00008b;">$befor_img</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #00008b;">$replace</span><span style="color: Gray;"> = </span><span style="color: Blue;">base64_encode</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">\xFF\xD9\xFF\xD8</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">.</span><span style="color: #00008b;">$after_img</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
</ol></div>
<p><strong>テキストフィールドの書き換え</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DefineEditText</span><span style="color: Gray;"> @ </span><span style="color: Blue;">initialText</span><span style="color: Gray;"> = テキスト</span></li>
<li><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DefineEditText</span><span style="color: Gray;">-&gt;</span><span style="color: Teal;">color</span><span style="color: Gray;">-&gt;</span><span style="color: Teal;">Color</span><span style="color: Gray;"> @</span><span style="color: Blue;">red</span><span style="color: Gray;"> @</span><span style="color: Blue;">green</span><span style="color: Gray;"> @</span><span style="color: Blue;">blue</span><span style="color: Gray;"> = 色</span></li></ol></div>
<p>を書き換える</p>
<p><strong>アクションスクリプトを書き換える</strong></p>
<p>変数</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DoAction</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">actions</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">PushData</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">items</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">StackString</span><span style="color: Gray;"> @ </span><span style="color: Blue;">value</span><span style="color: Gray;"> = 変数名</span></li>
<li><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DoAction</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">actions</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">PushData</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">items</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">StackString</span><span style="color: Gray;"> @ </span><span style="color: Blue;">value</span><span style="color: Gray;"> = 値</span></li>
<li><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DoAction</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">actions</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">SetVariables</span></li></ol></div>
<p><strong>パスの色やムービークリップ等をそのままごっそり入れ替える</strong></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DefineShape2</span><span style="color: Gray;"> -&gt; グラフィックシンボル</span></li>
<li><span style="color: Blue;">tags</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">DefineSprite</span><span style="color: Gray;"> -&gt; </span><span style="color: Teal;">MovieClip</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">インスタンス化されている</span><span style="color: Olive;">)</span></li></ol></div>
<p><strong>リソース：<br /></strong>・<a title="http://swfmill.org/" href="http://swfmill.org/">http://swfmill.org/</a>&nbsp; ホームページ<br />・<a title="http://blogs.yahoo.co.jp/k3_labs/3077231.html" href="http://blogs.yahoo.co.jp/k3_labs/3077231.html">http://blogs.yahoo.co.jp/k3_labs/3077231.html</a>&nbsp; FlashDevelopからSWFMILLを巧く使うチュートリアル<br />・<a title="http://packages.ubuntu.com/ja/source/intrepid/swfmill" href="http://packages.ubuntu.com/ja/source/intrepid/swfmill">http://packages.ubuntu.com/ja/source/intrepid/swfmill</a>&nbsp; swfmill 関連パッケージ</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html" title="JavaSWF2: JavaによるFlash解析、生成ライブラリ">JavaSWF2: JavaによるFlash解析、生成ライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/10/15/alcon-a-lightweight-debugging-tool-for-actionscript-developers.html" title="Alcon: オープンソースのActionScript向けの軽量デバッギングツール">Alcon: オープンソースのActionScript向けの軽量デバッギングツール</a></li>
<li><a href="http://digitechlog.com/2009/06/22/silex-an-open-source-cms-ria-software-build-flash-websites.html" title="SILEX: WYSIWYGでFlashサイトを構築できるオープンソースのRIA開発ツール">SILEX: WYSIWYGでFlashサイトを構築できるオープンソースのRIA開発ツール</a></li>
<li><a href="http://digitechlog.com/2009/02/17/swf-tools-a-collection-of-swf-manipulation-and-creation.html" title="SWF Tools: PNG/JPEG/GIF/PDF/WAV/FONTからSWFに変換する便利なコマンド集">SWF Tools: PNG/JPEG/GIF/PDF/WAV/FONTからSWFに変換する便利なコマンド集</a></li>
<li><a href="http://digitechlog.com/2009/02/16/jswiff-an-open-source-pure-java-framework-for-adobe-flash-file-creation-and-manipulation.html" title="JSwiff: Adobe Flash fileの生成、操作のオープンソースのフレームワーク">JSwiff: Adobe Flash fileの生成、操作のオープンソースのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2009/02/11/transform-an-open-source-framework-for-reading-and-writing-flash-swf-and-flash-video-flv-files.html" title="Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ">Flagstone Transform: 文字列からswfを生成するオープンソースライブラリ</a></li>
<li><a href="http://digitechlog.com/2008/12/07/the-list-of-easy-to-be-used-actionscript-debug-tools-open-source-flash.html" title="使いやすいオープンソースのActionScriptデバッグツールリスト">使いやすいオープンソースのActionScriptデバッグツールリスト</a></li>
<li><a href="http://digitechlog.com/2011/11/08/php-screw.html" title="オープンソースソフトウェアPHP ScrewでPHPスクリプトを暗号化する">オープンソースソフトウェアPHP ScrewでPHPスクリプトを暗号化する</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

