nazolabo

フリーランスのWebエンジニアが近況や思ったことを発信しています。

オープンソース環境でFlash作成

開発環境といえばEclipseですが、Eclipseオープンソースなものをいくつか組み合わせてFlashを作れます。
一般的には、EclipseMTASC、ASDT、FlashoutでFAMEと呼び、それにSwfmillを合わせてFAMESと呼ぶらしいです。
とりあえず、ここまでは、id:kambara:20060323の通りにやれば環境は作れます。
しかしFlashoutがなんか古いらしく、最近は外してAMESと呼んだりするらしいです。(http://actionscript.com/Article/tabid/54/ArticleID/Far-Beyond-Open-Source-Flash-Development/Default.aspx
Flashoutってのはビルドとかも担当してくれる便利なものなのですが、これの代わりに最近はas2antを使うらしいです。
http://www.as2lib.org/
からダウンロードできます。antは適当にインストールしておいてください。(All-In-One-Eclipseなら最初から入ってると思います)
以下説明(Eclipse上で操作するものとします)

  • とりあえずFAME環境をid:kambara:20060323の通りに作っておいてください。(Flashoutは無くても構いません)
  • ActionScript 2 Projectを作成します。名前はsampleとでもしておきます。
  • 直下にbuild、filesフォルダを作ります。buildはswf、filesは画像とかを入れることとします。(別に何でもいいです)
  • プロジェクト直下にbuild.xmlを作ります。
  • build.xmlを記述します。大体こんな感じです。*1EclipseXMLエディタが出てきてコピペできないよーって人は、build.xmlを右クリックで「アプリケーションから開く」-「テキスト・エディター」です。
<project name="Sample Project" default="sample" basedir=".">
  
  <taskdef name="swf" classname="org.as2lib.ant.Swf" />
  
  <property name="src.dir" location="src"/>
  <property name="build.dir" location="build"/>
  <property name="files.dir" location="files"/>
  
  <target name="sample" description="builds sample swf">
    <swf src="${src.dir}/Sample.as" dest="${build.dir}/sample.swf" width="300" height="100" framerate="31" bgcolor="FF8A00">
      <clip id="pict" import="${files.dir}/pict.jpg" />
    </swf>
  </target>
  
</project>
  • filesフォルダにpict.jpgとか適当に作って入れておいてください。
  • srcフォルダにSample.asファイルを作ります。こんな感じにしておきます。
class Sample {
	
	private var picture:MovieClip;
	
	public function Sample(container:MovieClip) {
		this.picture = container.attachMovie("pict", "pict", 1);
		this.picture._x = 10;
		this.picture._y = 10;
	}

	public static function main(container:MovieClip):Void {
		var sample:Sample = new Sample(container);
	}
	
}
  • swfmill.exeにパスを通しておきます。面倒だったらswfmill.exeをプロジェクト直下に置いておけばいいです。
  • build.xmlを右クリックして「実行」-「Ant ビルド」します。
  • sample.swfが多分出来上がっています。

*1:XMLですが、<?xml version="1.0" encoding="UTF-8"?>は特に必要ないみたいです。でもあったほうがいい気がします(as2antのサンプルに無かっただけ)。