さんまがおいしい季節だねー(´・ω・`)

ActionScript2 も使ってみたいから MTASC をインストールしてみたわ!!

Flash — タグ: , , — さくら @ 2009/03/25 20:09

さくらです、こんばんわ♪ミ☆

なんとなく MTASC もインスコしてみたので、インスコ方法とかを紹介するわ。
まず MTASC って何?ってとこから説明するわね。

MTASC って何?

MTASC はフリーの ActionScript2 コンパイラで、Motion-Twin ActionScript 2 Compiler の略よ。
mtasc.org からダウンロードできるわ。

Flex2/3 が対応してるのは ActionScript3 ね。
Adobe のツールで ActionScript2 に対応しているのは Flex1.5 だったはず。
フリーのツールで ActionScript2 のプログラムを作るんなら MTASC を使えってことだわ。

ちなみに携帯の FlashPlayer が対応してるのは ActionScript2 よ。
要は携帯 Flash アプリ作ろうと思ったらMTASC がマストってことね。とりあえず Flex3 じゃ作れないわ。

さくらが MTASC をインスコしようと思った理由は、携帯アプリのこともあるんだけど、Flex3 だけじゃ開発が不便になってきたってことの方が大きいわね。
さくらは今年になってから Flash アプリ作り方覚え始めたんだけど、この前 YouTube API いじくって もっと弄くって…さくらのア・ソ・コ たときに ActionScript2 もある程度理解してないと分かんないことが多いと思ったのね。
そんな感じなので実際に使うかどうか分かんないけど保険の意味で MTASC も突っ込んどく 違うわ、そこに突っ込まないで…やっぱイれて! ことにしたのよ。

MTASC のうっとおしいところは Objective Caml で書かれてるところね。
Objective Caml は関数型言語よ。ocaml と略されることが多いわね。
で、さくらは ocaml がどんな言語か知らないわww

実は最初に Flash を覚えようと思ったときに、MTASC にするか Flex3 するか悩んだんだけど、自分の知らない言語で書かれたツールはトラブったときうっとおしいから Flex3 にしたのね。
まあ実際インスコして微妙にトラブったんだけど、まあ特に大きな問題は無かったわ。なんでインスコ方法を報告するわね。

MTASC のインスコ

さくらが説明するのは MTASC をソースからインスコする方法よ。バイナリのインスコ方法は知らないから他をあたってちょうだい。
ちなみにソースからインスコする方法は http://tech.motion-twin.com/doc/mtasc/INSTALL.txt に書いてあるわ。
基本的にさくらはこの手順に従ってインスコしただけよ。

まず最初にすることは ocaml をインスコすることよ。
どの環境でもパッケージがあると思うから、それを入れなさい。さくらもそうしたわ。

ocaml がインスコできたら、MTASC Download から install.ml をダウンロードするのよ。
っつっても ocaml のソースがブラウザに表示されるだけだと思うから、右クリックでファイル名を付けて保存しなさい。保存先は空のディレクトリがいいわ。一応これからの説明では、~/mtasc に install.ml を保存したことにして話を進めるわね。
あと残念ながら、ソースの zip や tarball さくらは golden ball の方が好きよ は配布して無いみたい。この辺もうっとおしいのよね…

install.ml をダウンロードしたら、ダウンロードしたディレクトリに cd するの。
そしておもむろに ocaml から install.ml を実行して MTASC をビルドするのよ。

$ cd ~/mtacs
$ ocaml install.ml
*** Please hit enter on login (empty password) ***
> cvs -z3 -d:pserver:anonymous@cvs.motion-twin.com:/cvsroot login
Logging in to :pserver:anonymous@cvs.motion-twin.com:2401/cvsroot
CVS password: 

(省略)

> ocamlopt -o ../../bin/mtasc ../extLib.cmxa ../extc/extc.cmxa
../swflib/swflib.cmxa expr.cmx lexer.cmx parser.cmx typer.cmx
class.cmx plugin.cmx genSwf.cmx main.cmx
$ 

こんな感じで表示されたらビルド成功よ。
CVS の password は空だわ。一応上のメッセージにも表示されてるんだけど、わかりやすいように太字にしといたわ。

なんかコンパイルしてみる

ビルドに成功したら、なんか適当なサンプルを MTASC でコンパイルしてみるといいわね。
mtasc.org のチュートリアルにあるこのソースを使うのがいいと思うわ。

class Tuto {
	static var app : Tuto;
	function Tuto() {
		// creates a 'tf' TextField size 800x600 at pos 0,0
		_root.createTextField("tf",0,0,0,800,600);
		// write some text into it
		_root.tf.text = "Hello world !";
	}
	// entry point
	static function main(mc) {
		app = new Tuto();
	}
}

これを ~/mtasc/Tuto.as に保存して、~/mtasc ディレクトリからこんな風に mtasc コマンドを実行するのよ。

$ ./bin/mtasc -cp ./ocaml/mtasc/std -swf tuto.swf -main \
-header 800:600:20 Tuto.as

特に何もメッセージが表示されなかったらコンパイル成功よ。
tuto.swf ができてると思うわ。
flashplayer から tuto.swf を実行するとこんな感じで Hello World ! が表示されると思うわ。

MTASC Hello World! キャプチャ

デフォルト classpath の変更

まあここまではたぶん問題なく作業できると思うんだけど、実際に使えるようにするにはちょっと問題があるのよね。
さっき mtasc コマンドを動かしたときは、-cp で ocaml/mtasc/std ディレクトリを classpath に追加したんだけど毎回これを入力するのもうっとおしいし、デフォルトの classpath ぐらい適当に処理して欲しいの☆
なんで mtasc コマンドからの相対パスで ../ocaml/mtasc/std をデフォルトの classpath にするパッチを書いてみたわ。
ocaml_mtasc_mainml.diff にパッチを置いたから欲しい人は適当に持っていってちょうだい。
patch コマンドの使い方を知らない人は diff ファイルの中身見ながら ocaml/mtasc/main.ml をエディタで編集したらいいわ。

main.ml をパッチしたら install.ml をもう一度動かして、リコンパイルする必要があるわね。
リコンパイルするときは cvs でソースを取り直す必要はないから、install.ml の download() の呼び出しをコメントアウトした方がいいわね。ocaml のコメントは (* *) だから、install.ml の末尾部分をこんな感じで直したらいいと思うわ。

in
let startdir = Sys.getcwd() in
try
        (* download(); *)
        compile();
        Sys.chdir startdir;
with
        Failure msg ->
                Sys.chdir startdir;
                prerr_endline msg; exit 1

リコンパイルしたら ~/mtasc/bin と ~/mtasc/ocaml を /usr/local/mtasc とか適当なディレクトリに移動したらいいわ。

$ mkdir /usr/local/mtasc
$ mv ~/mtasc/bin ~/mtasc/ocaml /usr/local/mtasc

classpath を mtasc バイナリの相対パスにしてあるから、mtasc コマンドと ocaml/mtasc/std ディレクトリの位置関係が同じならどこにコピーしてもいいわよ。
あとは mtasc コマンドを移動したディレクトリに PATH を通して、コマンドを実行したらオプション少なめで実行できるわ。さっきの Tuto.as ならこんな感じね。

$ mtasc -swf tuto.swf -main -header 800:600:20 Tuto.as

最後に一つ言っとくけど、さくらは ocaml/mtasc/std ディレクトリをデフォルトの classpath に加えることの正当性については特に考慮してないわ。これが原因で何か問題が発生しても AS IS でお願いよ!
別にパッチしなくても -cp オプションを付けて mtasc コマンドを実行したらいいだけだし、そっちが好みならそうしたらいいわね。

さくら

P.S. MTACS でググるとガチムキ兄貴にあえるわよ!

1件のコメント »

  1. 魅力的な二重まぶたの作り方について詳しく記事にまとめました。
    ずっと一重まぶたで悩んでいたあなたに最もふさわしい二重まぶたの作り方を探してみてくださいね。

    コメント by 二重まぶた 作り方 — 2016 年 12 月 28 日 @ 16:21

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2017 さくらたんどっとびーず | powered by WordPress with Barecity