そろそろ“Flex”とか“ActionScript 3”をやってみたいな~なんて思い始めました。その前に、今まで自分がやってきたAS2での開発をふり返ってみることに。
2008年03月27日 18時24分
自分がFlashに触れだしたのは、Macromedia Flash MX2004というオーサリングソフトからが始まりです。それでちょこちょこ作っていたのですが、どうも自分には“タイムライン”というものにあまり馴染めませんでした。なんというか…デザイナーさんには便利とされているものが、プログラムをかじっている自分には逆に不便というか、まどろっこしい感じがして面倒だったのです。
月日は流れ、Macromedia Flash 8が発売されても、自分はタイムライン上の作業を極力やらないように作っていました。といっても、かじった程度のスキルなので、全然使い倒しているわけではなかったのですが(苦笑)。
そんな中、ActionScriptに関して検索していると、あるひとつのサイトの存在を知ることに。今から2年とちょっと前の出来事です。
最初見たときは、あまり理解していなかったので「…ふ~ん」って感じだったのですが(苦笑)、サンプルの3Dビューアを見て、「オーサリングソフトに頼らなくてもこれができるのか」と少し驚きました。それに以前から悶々としていた、タイムラインを使わなくてもいい、というのも踏み込んだ要因として大きかったですね。
そんなこんなで“Open Source Flash”の世界へ足を踏み入れることになります。
2008年03月27日 18時24分
MTASCを含むOpen Source Flash(以下、OSFlash)プロジェクトは海外でアツいらしく、「ここが知りたい」と思った時、当時は検索してみても日本語のページがあまりなくて、結局英語のページにたどり着いてしまうことがほとんどでした(検索スキルがなかったのかも、苦笑)。
自分は英語が全然駄目なのですがそれでも、翻訳サイトで大まかな(本当に大まかな、笑)意味を知り、あとはソースを見て実践することで少しずつ把握していきました。
今でもお世話になっている、ActionScriptやコンポーネントなどの本家リファレンスに日本語版があったのはありがたかったです。途中、OpenLaszloに寄り道した時もありました。
MTASCでの開発はテキストエディタだけあれば大丈夫なんですが、いろんなサイトで他にもいろいろなツールがあることを知り、それを取り入れたりしていました。
こんなことを繰り返していくうちに、なんとか自分でも市販のオーサリングソフトを使わずにFlashを作れるようになりました。自分の開発環境が“FAMES”と呼ばれているものだというのを知るのは、だいぶ後になってからのことです。
2008年03月27日 18時24分
FAMESというのは、無料のツールを組み合わせたFlash用統合開発環境のことで、各ツールの頭文字をとって名前がつけられています。
Flash開発はこのFAMESじゃなきゃダメというわけではありませんが、FAMESにすることで市販のオーサリングソフトのようにGUIで開発することができます。たぶん、この組み合わせがよく使われているということなんでしょうか。
これから自分のFAMES具合を紹介していくのですが、先にいっておくと、あまり活用していない気がします(寄りかかるのが単に好きじゃないのかも、苦笑)。
コンパイル、swfファイルのプレビュー、ロギングなどをEclipse上でできるようにするEclipse用プラグインです(Eclipseついては後述)。コーディングから簡単なデバッグまで手軽に一連の作業ができるようになるので、特に入門者が流れをつかむのにいいと思います。今はまったく使っていませんが、自分も最初の頃はよく使っていました。
これもEclipse用のプラグインです。プロジェクト作成時の支援機能やコードの色付け、および補完機能など主にコーディングに役立つものがありますが、自分はおそらく色付け機能しか使っていません(汗)。
バージョン0.0.9(現時点ではBeta)を少し動かしてみた感じでは、ASファイルを保存したとき連動してコンパイルするだとか結構パワーアップしているようです。
特に個人的にはデバック関連が便利になっていてありがたいですね。
ロギング用ライブラリです。同じようなライブラリはほかにも何種類かあるようですが、よく自分はこれを使っています。ログレベルに対応していて、ビューア(FlashInspector.swf)も付属します。
日本語というか2バイト文字に対応していないのが少し残念です。
自分はLuminicBoxしか使いませんが、ライブラリが違うと、呼び出す関数やその引数なども違ってきてしまいます。zeroiはMTASCのtraceオプションと組み合わせることで、これらを馴染みのあるtrace関数で統一してくれ、切り替えも簡単です。
引数として渡す文字列の先頭でログレベルが変わるというのも、ほかの環境に配慮されてていいと思います。
trace("i これはログレベルがINFOになる");
trace("i ほかにも d(DEBUG)、w(WARN)、e(ERROR)、f(FATAL) がある");
初めて使った時は「なるほど、確かに“ぜろいんぱくと”だ!」と意味もわからないのに、ニュアンスだけで感心していました(笑)。
以前のバージョンでもデバッグ用ライブラリは用意されていて、“AS ロガー”というASDTが用意しているビューに表示できたのですが、ほかのライブラリにした場合、個別に用意したりビューアも自分で起動しなければいけなかったのです。ほんのちょっとの手間なんですが、自分には面倒でした(苦笑)。
これがないと始まらない、ActionScript2のコンパイラです。オプションはサンプルなどを参考にしているので、だいたいしか把握していないのですが最近、ASDT0.0.9がらみでtraceオプションの使い方を知りました。
traceオプションを使えば、デバッグ時にはtrace関数で表示できて、リリース時に-trace no
とすれば、コード中のtrace関数を無効化してくれます。
ちょっと前までLuminicBoxを直接呼び出してデバッグしていたので、これはとても便利です、ってか気づくの遅すぎですね(汗)。
FAMESの根幹となるツールです。もともとJava用統合開発環境のようですが、さまざまなプラグインがあって、何でも出来そうな感があります。
使用プラグインは先のASDTのほかに、日本語化するためのPleiades、ほかにEditorList、JStyle、CharsetConvです。あとPerlも書くのでEPICも。たぶんHTMLやXMLなどのWeb関連のも入ってると思いますが、あまりよく把握していません(苦笑)。
自分はJAVAをやったことがないので、Eclipse本来の使い方がどういうものなのかわかりませんが、インストールせずJREごと持ち運びが出来るのがいいのと、makeのXML版(?)みたいなAntが結構好きで使っています。最初に「FAMESをあまり活用してない」といいましたが、自分はASDTの便利機能を使わず、このAntで全部やっているため、WindowsのBATファイルでやっているのと大して変わらない気がします(笑)。
<property name="dirShare" value="/usr/eclipse/share" />
<property name="pathMTASC" value="/bin/mtasc/mtasc.exe" />
<property name="pathSwfmill" value="/bin/swfmill/swfmill.exe" />
<property name="dirSrc" value="${basedir}/src" />
<property name="dirDst" value="P:/usr/eclipse/kuroiwasanni/www/961832/share/flash/swfview4rss" />
<property name="optMTASC" value="
-version 8
-mx
-cp ${dirSrc}
-cp ${dirShare}/flash/package
-cp ${dirShare}/flash/ide/Classes
-trace no
" />
<target name="compile" description="">
<exec executable="${pathMTASC}">
<arg line="
${optMTASC}
-swf ${dirSrc}/res/classes.swf
${dirSrc}/Application.as
" />
</exec>
<exec executable="${pathSwfmill}">
<arg line="simple ${dirSrc}/library.xml ${dirDst}/${ant.project.name}.swf" />
</exec>
</target>
ちなみにMTASCでのコンパイルをAntにわかりやすく記述できる、AS2Antなんてのもありますが、自分は逆にこういうのを煩わしく感じてしまうタイプなので使っていません(苦笑)。
主に、画像などをSWFファイルへ埋め込みたい場合に使用します。埋め込める形式は、画像(JPG、PNG)や音(MP3)、フォント(TTF)、それからSWFに対応しています。フォントは指定した文字だけ埋め込むこともできます。
swfmillはコンポーネントを使用する場合にも必要なんですが、標準のコンポーネント部品ファイル(?)はZIP圧縮されていて、現時点のswfmillでは伸長してから埋め込まなければなりません。また、コンポーネントを複数埋め込んだ時に重複部分があっても、丸ごと埋め込んでしまうようです。そのため、コンポーネントを使用するとファイルサイズが結構大きくなってしまいます。
実際、コンポーネントの塊といっていい、自サイトで使用しているSWFView4RSSも現在550kB近くあります。ちなみにswfmillに渡す前のSWFファイルは50kB、埋め込みデータは画像が合計約10kBに、フォントが半角約100文字分だけなので、残りがコンポーネント分なんでしょうか(笑)。
これは、Aral Balkanというかたのサイトで見つけた、なんというか…MTASCとswfmillを使ったコーディング方法(?)です。swfmillが必須となりますが、確かにわかりやすい感じなので取り入れています。
ほかにもNetConnectionとNetStreamを使って動画を再生する場合に使えます。あと試したことはありませんが、タイムラインだとかswfmill単体でも色々できるようですね。
2008年03月27日 18時24分
む、現時点での自分の環境はFlashoutを使ってないのでAMESでした。といっても、その機能の大部分は使ってないんですが(苦笑)。
OSFlashには色々なツールやライブラリが紹介されているので、もっと便利な組み合わせがあるかもしれません。そういうのを見つけて、自分にあった環境にしていくのも楽しいです。
というわけで、ドバーッと何かをぶちまけたように書いてしまい、あまり役に立たないエントリーとなってしまいました(汗)。
でも、とてもスッキリしたので、これで“Flex”や“ActionScript 3”に気持ちよく挑めそうです。